首页 汇编语言基础知识总结

汇编语言基础知识总结

举报
开通vip

汇编语言基础知识总结1汇编语言基础知识汇编语言是直接在硬件之上工作的编程语言,首先要认识硬件系统的构造,才能有效地应用汇编语言对其编程,因此,本章对硬件系统构造的问题进行部分探讨,首先介绍了计算机的基本构造、Intel企业微办理器的发展、计算机的语言以及汇编语言的特点,在此基础上重点介绍寄存器、内存组织等汇编语言所波及到的基本知识。1.1微型计算机概括微型计算机由中央办理器(CentralProcessingUnit,CPU)、存储器、输入输出接口电路和总线组成。CPU好像微型计算机的心脏,它的性能决定了整个微型计算机的各项重点指标。...

汇编语言基础知识总结
1汇编语言基础知识汇编语言是直接在硬件之上工作的编程语言,首先要认识硬件系统的构造,才能有效地应用汇编语言对其编程,因此,本章对硬件系统构造的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 进行部分探讨,首先介绍了计算机的基本构造、Intel企业微办理器的发展、计算机的语言以及汇编语言的特点,在此基础上重点介绍寄存器、内存组织等汇编语言所波及到的基本知识。1.1微型计算机概括微型计算机由中央办理器(CentralProcessingUnit,CPU)、存储器、输入输出接口电路和总线组成。CPU好像微型计算机的心脏,它的性能决定了整个微型计算机的各项重点指标。存储器包括随机存储器(RandomAccessMemory,RAM)和只读存储器(ReadOnlyMemory,ROM)。输入输出接口电路用来连结外部设施和微型计算机。总线为CPU和其他零件之间提供数据、地点和控制信息的传输通道。如图1.1所示为微型计算机的基本构造。地点总线输入输出外部中央办理器存储器接口电路设施CPU数据总线控制总线图1.1微型计算机基本构造特别要提到的是微型计算机的总线构造,它使系统中各功能零件之间的相互关系变为各个零件面向总线的单调关系。一个零件只需切合总线构造 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,就能够连结到采用这种总线构造的系统中,使系统功能获得扩展。数据总线用来在CPU与内存或其他零件之间进行数据传送。它是双向的,数据总线的位宽决定了CPU和外界的数据传送速度,8位数据总线一次可传送一个8位二进制数据(即一个字节),16位数据总线一次可传送两个字节。在微型计算机中,数据的含义是广义的,数据总线上传送的不一定是真实的数据,而可能是指令代码、状态量或控制量。地点总线特意用来传送地点信息,它是单向的,地点总线的位数决定了CPU能够直接寻址的内存范围。如CPU的地点总线的宽度为N,则CPU最多能够寻找2N个内存单元。12控制总线用来传输控制信号,其中包括CPU送往存储器和输入输出接口电路的控制信号,如读信号、写信号和中止响应信号等;也包括其他零件送到CPU的信号,如时钟信号、中止恳求信号和准备就绪信号等。1.2Intel企业微办理器简介自20世纪70年月开始出现微型计算机以来,CPU经历了飞快的发展。1971年,Intel 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 成功了第一片4位微办理器Intel4004;随之又设计生产了8位微办理器8008;1973年推出了8080;1974年鉴于8080的个人计算机(PersonalComputer,PC)问世,Microsoft企业的首创人BillGates为PC开发了BASIC语言解释程序;1977年Intel推出了8085。自此之后,Intel又陆续推出了8086、80386、Pentium等80x86系列微办理器。各样微办理器的主要区别在于办理速度、寄存器位数、数据总线宽度和地点总线宽度。下面简要介绍不同时期Intel企业制造的几种主要型号的微办理器,这些微处理器都曾经或正在广为流行。1.80x86系列微办理器1)8088微办理器拥有多个16位的寄存器、8位数据总线和20位地点总线,能够寻址1MB的内存。虽然这些寄存器一次能够办理2个字节,但数据总线一次只能传送1个字节。该办理器只能工作在实模式。2)8086微办理器指令系统与8088完全相同,拥有多个16位的寄存器、16位数据总线和20位地点总线,能够寻址1MB的内存,一次能够传送2个字节。该办理器只能工作在实模式。3)80286微办理器比8086运行更快,拥有多个16位的寄存器、16位数据总线和24位地点总线,可以寻址16MB内存。它既能够工作在实模式,也能够工作在保护模式。4)80386微办理器拥有多个32位的寄存器、32位数据总线和32位地点总线,能够寻址4GB内存。它提供了较高的时钟速度,增加了存储器管理和相应的硬件电路,减少了软件开销,提高了效率。它既能够工作在实模式,也能够工作在保护模式。5)80486微办理器拥有多个32位的寄存器、32位数据总线和32位地点总线。它比80386增加了数字协办理器和8KB的高速缓存,提高了办理速度。它既能够工作在实模式,也能够工作在保护模式。6)Pentium(奔跑)拥有多个32位的寄存器、64位数据总线和36位地点总线。因为它采用了超标量体23系构造,所以每个时钟周期允许同时履行两条指令,办理速度获得了进一步提高,性能比80486优越得多。它既能够工作在实模式,也能够工作在保护模式。以上介绍了Intel80x86系列的一些主要微办理器,表1.1给出了该系列部分微处理器的数据总线和地点总线宽度。实际上80x86系列的功能还在精益求精和增强,它们的速度将会更快,性能将会更优越。但不论怎样变化,它们总会被设计成是完全向下兼容的,就像在8086上设计和运行的软件能够不加任何改变地在Pentium4机上运行一样。关于汇编语言编程人员来讲,掌握16位计算机的编程十分重要,它是学习高档计算机及保护模式编程的基础,也是掌握实模式程序设计的唯一方法。2.CPU的主要性能指标1)机器字长机器字长和CPU内部寄存器、运算器、内部数据总线的位宽相一致。如8086CPU,它的内部寄存器是16位的、运算器能达成两个16位二进制数的并行运算、数据总线的位宽为16位,则它的机器字长为16位,也称其为16位计算机。往常,机器字长越长,计算机的运算能力越强,其运算精度也越高。2)速度CPU的速度是指单位时间内能够履行指令的条数。速度的计算单位不一,若以单字长定点指令的平均履行时间计算,用每秒百万条指令(MillionIstructionsPerSecond,MIPS)作为单位;若以单字长浮点指令的平均履行时间计算,则用每秒百万条浮点运算指令(MillionFloating-pointOperationsPerSecond,MFLOPS)表示。现在,采用计算机中各样指令的平均履行时间和相应的指令运行权重的加权平均法求出等效速度作为计算机运算速度。3)主频主频又称为主时钟频次,是指CPU在单位时间内产生的时钟脉冲数,以MHz/s(兆赫兹每秒)为单位。由于计算机中的一切操作都是在时钟控制下达成的,因此,关于机器构造相同或邻近的计算机,CPU的时钟频次越高,运算速度越快。表1.1Intel80x86系列微办理器总线宽度CPU数据总线宽度地点总线宽度CPU数据总线宽地点总线宽度度80861620Pentium64368088820PentiumⅡ6436802861624PentiumⅢ643680386SX1624Pentium4643680386DX3232Itanium6444804863232341.3计算机语言及汇编语言特点1.3.1计算机语言概括计算机语言的发展经历了由机器语言、汇编语言到高级语言这样一个由初级到高级的发展过程。1.机器语言机器语言是计算机唯一能直接辨别和履行的计算机语言。由于计算机硬件本身只能辨别二进制代码,在计算机发展的初期,人们使用二进制代码组成机器指令来编写程序,这种二进制编码的计算机语言就是机器语言。机器语言描绘的程序称为目标程序,只有目标程序才能被CPU直接履行。指令用于指出计算机所进行的操作和操作对象的代码,一条指令往常由操作码和操作数两部分组成。其中,操作码指出计算机所进行的详细操作,如加法、减法等;操作数说明操作的对象。操作码比较简单,只需对每一种操作指定确定的二进制代码就能够了;操作数比较复杂,首先它能够有一个、两个或三个,分别称为单操作数、双操作数或三操作数,其次,操作数可能寄存在不同的地方,既能够寄存在寄存器中,也能够寄存在存储器中,甚至直接寄存在指令中,往常要用寻址方式来说明。一台计算机全部指令的会合组成该计算机的指令系统。指令系统是计算机基本功能的体现,不同的机器指令对应的二进制代码序列各不相同。机器语言是面向机器的,不同机器之间的语言是不通用的,这也是机器语言是“初级”语言的含义所在。用二进制代码编写程序相当麻烦,写出的程序也难以阅读和调试。2.汇编语言早期的程序员们很快就发现了使用机器语言带来的麻烦,它是如此难于鉴别和记忆,给整个产业的发展带来了障碍,于是产生了汇编语言。汇编语言是一种采用指令助记符、符号地点、标号等符号书写程序的语言,它便于人们书写、阅读和检查。汇编语言指令与计算机指令基本上是一一对应的,汇编语言与计算机有着密不可分的关系,处理器不同,汇编语言就不同,因此它是一种初级语言,同时它也是唯一能够充分利用计算机硬件特性并直接控制硬件设施的语言。利用汇编语言进行程序设计体现了计算机硬件和软件的联合。用汇编语言编写的程序称为汇编源程序(或称汇编语言程序),计算机不能直接识别,必须将其翻译成由计算机指令组成的程序后,CPU才能履行,这一过程称为“汇编”。用于将汇编源程序翻译成计算机语言的程序称为汇编程序,这种由源程序经过计算机翻译变换成的计算机语言程序也称为目标程序。目标程序还不能直接交给CPU履行,它还需要经过连结程序装配成可履行程序才能被履行。连结程序拥有将多个目标程序装配在一同的功能,它也能够将目标程序与预先编写好的一些放在子程序库中的子程序连结在45一同,组成较大的可履行程序。它们之间的关系如图1.2所示。图1.2汇编程序与目标程序、可履行程序之间的关系3.高级语言高级语言是一种与详细的计算机硬件无关,独立于计算机种类的通用语言,比较接近人类自然语言的语法,用高级语言编程不必认识和熟悉计算机的指令系统,更容易掌握和使用。高级语言采用靠近自然语言的词汇,其程序的通用性强,易学易用,这些语言面向求解问题的过程,不依靠详细计算机。高级语言也要翻译成机器语言才能在计算机上履行。其翻译有两种方式,一种是把高级语言程序翻译成机器语言程序,然后经过连结程序连结成可履行文件,再在计算机上履行,这种翻译方式称为编译方式,大部分高级语言如PASCAL语言、C语言等都是采用这种方式;另一种是直接把高级语言程序在计算机上运行,一边解释一边履行,这种翻译方式称为解释方式,如BASIC语言就采用这种方式。高级语言源程序是在未考虑计算机构造特点情况下编写的,经过翻译后的目标程序往往不够精练,过于冗长,加大了目标程序的长度,占用较大存储空间,履行时间较长。1.3.2汇编语言的特点汇编语言使用助记符和符号地点,所以它要比机器语言易于掌握,与高级语言相比较,汇编语言有以下特点。1)汇编语言与计算机关系亲密汇编语言中的指令是机器指令的符号表示,与机器指令是一一对应的,因此它与计算机有着亲密的关系,不同种类的CPU有不同的汇编语言,也就有各样不同的汇编程序。汇编语言源程序与高级语言源程序相比,其通用性和可移植性要差得多。2)汇编语言程序效率高由于组成汇编语言主体的指令是用机器指令的符号表示的,每一条指令都对应一条机器指令,且汇编语言程序能直接利用计算机硬件系统的很多特性,如它允许程序员利用寄存器、标志位等编程。用汇编语言编写的源程序在编译后获得的目标程序效率高,主要体现在空间效率和时间效率上,即目标程序短、运行速度快这两个方面,在采用相同算法的前提下,任何高级语言程序在这两个方面的效率与汇编语言相比都瞠乎其后。3)特殊的使用场合56汇编语言能够实现高级语言难以胜任甚至不能达成的任务。汇编语言拥有直接和简捷的特点,用它编制程序能精准地描绘算法,充散发挥计算机硬件的功能。在过程控制、多媒体接口、设施通信、内存管理、硬件控制等方面的程序设计中,用汇编语言直接方便,履行速度快,效率高。汇编语言提供了一些模块间相互连结的方法,一个大的任务能够分解成若干模块,将其中履行频次高的模块用汇编语言编写,能够大大提高大型软件的性能。1.4程序可见寄存器组80386(含80386)以上型号的CPU能够办理32位数据,其寄存器长度是32位的,但为了与早期的8086等16位机CPU保持优秀的兼容性,80386以上型号的CPU中程序可见寄存器组包括多个8位、16位和32位寄存器,如图1.3所示。1.通用寄存器8086~80286CPU各有8个16位通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。关于4个16位数据寄存器AX、BX、CX、DX,其每个又能够作为2个独立的8位寄存器使用,它们被分别命名为AH、AL、BH、BL、CH、CL、DH、DL。80386以上型号的CPU各有8个32位通用寄存器,它们是相应16位寄存器的扩展,被分别命名为EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI。在程序中每个8位、16位、32位寄存器都能够独立使用。图1.38086~PentiumCPU程序可见寄存器组67SP、ESP叫做堆栈指针寄存器,其中寄存目前堆栈段栈顶的偏移量,它们老是与SS堆栈段寄存器配合存取堆栈中的数据。在实模式方式下使用SP,在80386以上的保护模式下使用ESP。除SP、ESP堆栈指针不能任意改正、需要慎用外,其他通用寄存器都能够直接在指令中使用,用以寄存操作数,这是它们的通用之处。在后边议论指令系统时,能够看到某些通用寄存器在详细的指令中还有其他用途,比如EAX、AX、AL(往常分别被称为32位、16位、8位累加器),它们在乘除法、十进制运算、输入输出指令中有特意用途。此外有些通用寄存器也能够寄存地点用以间接寻址内存单元,比如在实模式中BX、BP、SI、DI能够作为间接寻址的寄存器,用以寻址64KB以内的内存单元。在保护模式中EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI能够作为间接寻址的寄存器,用以寻址4GB以内的内存单元,详尽内容见3.1节和6.3节。2.段寄存器在IBMPC机中存储器采用分段管理的方法,因此一个物理地点需要用段基地点和偏移量表示。一个程序能够由多个段组成,但关于8086~80286CPU,由于只有4个段寄存器,所以在某一时刻正在运行的程序只能够接见4个目前段,而关于80386及其以上的计算机,由于有6个段寄存器,则能够接见6个目前段。在实模式下段寄存器寄存目前正在运行程序的段基地点的高16位,在保护模式下寄存目前正在运行程序的段选择子,段选择子用以选择描绘符表中的一个描绘符,描绘符描绘段的基地点、长度和访问权限等,显然在保护模式下段寄存器仍旧是选择一个内存段,只是不像实模式那样直接寄存段基址罢了。代码段寄存器CS指定目前代码段,代码段中寄存目前正在运行的程序段。堆栈段寄存器SS指定目前堆栈段,堆栈段是在内存开辟的一块特殊地区,其中的数据接见按照后进先出(LastinFirstout,LIFO)的原则进行,允许插入和删除的一端叫做栈顶。IBMPC机中SP(或ESP)指向栈顶,SS指向堆栈段基地点。数据段寄存器DS指定目前运行程序所使用的数据段。附加数据段寄存器ES指定目前运行程序所使用的附加数据段。段寄存器FS和GS只对80386以上CPU有效,它们没有对应的中文名称,用于指定目前运行程序的此外两个寄存数据的存储段。虽然DS、ES、FS、GS(甚至于CS、SS)所指定的段中都能够寄存数据,但DS是主数据段寄存器,在默认情况下使用DS所指向段的数据。若要引用其他段中的数据,需要显式地说明。3.控制寄存器控制寄存器包括指令指针寄存器和标志寄存器。在程序中不能直接引用控制寄存器名。1)IP、EIP78IP、EIP叫做指令指针寄存器,它老是与CS段寄存器配合指出下一条要履行指令的地点,其中寄存偏移量部分。在实模式方式下使用IP,在80386以上的保护模式下使用EIP。2)标志寄存器(FLAGS)标志寄存器也被称为状态寄存器,由运算结果特点标志和控制标志组成。8086~80286CPU为16位,80386以上为32位。如图1.4所示,能够看出它们完全向下兼容。空白位为将来保存,暂未定义。图1.4标志寄存器(1)运算结果特点标志:用于 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 程序中运行结果的特点,8086~PentiumCPU的标志寄存器均含有这6位标志。CF(CarryFlag):进位标志,记录运算结果的最高位向前产生的进位或借位。若有进位或借位则置CF=1,否则清零。可用于检测无符号数二进制加减法运算时是否发生溢出(溢出时CF=1)。PF(ParityFlag):奇偶标志,记录运算结果中含1的个数。若个数为偶数则置PF=1,否则清零。可用于检测数据传送过程中是否发生错误。AF(AuxiliarycarryFlag):协助进位标志,记录运算结果最低4位(低半字节)向前产生的进位或借位。若有进位或借位则置AF=1,否则清零。只有在履行十进制运算指令时才关心此位。ZF(ZeroFlag):零标志,记录运算结果是否为零,若结果为零则置1,否则清零。SF(SignFlag):符号标志,记录运算结果的符号,若结果为负则置1,否则清零。OF(OverflowFlag):溢出标志,记录运算结果是否高出了操作数所能表示的范围。若高出则置1,否则清零。可用于检测带符号数运算时是否发生溢出。2)控制标志:控制标志控制办理器的操作,要经过特意的指令才能使控制标志发生变化。以下控制标志对8086~PentiumCPU均有效。IF(InterruptFlag):中止允许标志,当IF=1时允许CPU响应外部可障蔽中止请89求(INTR);当IF=0时禁止响应INTR。IF的控制只对INTR起作用。DF(DirectionFlag):方向标志,特意服务于字符串操作指令。当DF=1时,表示串操作指令中操作数地点为自动减量,这样使得对字符串的办理是从高地点向低地点方向进行;当DF=0时,表示串操作指令中操作数地点为自动增量。TF(TrapFlag):陷阱标志,用于程序调试。当TF=1时,CPU处于单步方式;TF=0时,CPU处于连续方式。状态标志位的符号表示见表1.2。表1.2状态标志位的符号表示标志位标志为1标志为0CF进位(有/否)CYNCPF奇偶(偶/奇)PEPOAF半进位ACNAZF全零(是/否)ZRNZSF符号(负/正)NGPLIF中止(允许/禁止)EIDIDF方向(增量/减量)DNUPOF溢出(是/否)OVNV②以下控制标志只对80286以上CPU有效。IOPL(I/OPrivilegeLevel):特权标志,占D13和D12两位。当在保护模式下工作时,IOPL指定 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 履行I/O指令的特权级。若目前任务的特权级比IOPL高(级数越小特权级越高,OO级是最高级),则履行I/O指令;否则会检查该任务的I/O许可位图,若位图中的值为1则发生一个保护异样,致使履行程序被挂起。NT(NestedTask):嵌套任务标志,用于保护模式操作,在履行中止返回指令IRET时要测试NT值。当NT=1时,表示目前履行的任务嵌套于另一任务之中,履行完该任务后要返回到另一任务,IRET指令的履行是经过任务切换实现的。当NT=0时,用堆栈中保存的值恢复标志寄存器、代码段寄存器和指令指针寄存器的内容,以履行惯例的IRET中止返回操作。③以下控制标志只对80386以上CPU有效。RF(ResumeFlag):重启动标志,该标志控制是否接受调试故障,它与调试寄存器一同使用。当RF=0时接受,RF=1时忽略。VM(Virtual8086Model):虚构方式标志,当CPU处于保护模式时,若VM=1则切换到虚构方式,以允许履行多个DOS程序,否则CPU工作在实模式或保护模式。④以下控制标志只对80486SX以上CPU有效。AC(AlignmentCheck):地点对齐检查标志,若AC=1时进行地点对齐检查,当出现地点不对齐时会惹起地点对齐异样,只有在特权级3运行的应用程序才检查惹起地点对齐故障。若AC=0时不进行地点对齐检查。只有80486SX微办理器使用该位,主要用910来同它配套的协办理器80487SX同步工作。所谓地点不对齐是指以下情形:1个字从奇地点开始,或1个双字不是从4的倍数的地点开始。⑤以下控制标志只对Pentium以上CPU有效。ID(Identification):表记标志,若ID=1,则表示Pentium支持CPUID指令,CPUID指令给系统提供Pentium微办理器相关版本号及制造商等信息。VIP(VirtualInterruptPending):虚构中止挂起标志,与VIF配合,用于多任务环境下,给操作系统提供虚构中止挂起信息。VIF(VirtualInterruptFlag):虚构中止标志,是虚构方式下中止标志位的映像。1.5存储器1.5.1基本观点计算机中存储信息的基本单位是1个二进制位,简称位(bit),可用小写字母b表示,一位可存储一位二进制数。IBMPC机中常用的数据种类如下。字节(byte):IBMPC机中存取信息的基本单位,可用大写字母B表示。1个字节由8位二进制数组成,其位编号自左至右为b7、b6、b5、b4、b3、b2、b1、b0。1个字节占用1个存储单元。字:1个字16位,其位编号为b15~b0。1个字占用2个存储单元。双字:1个双字32位,其位编号为b31~b0。1个双字占用4个存储单元。四字:1个四字64位,其位编号为b63~b0。1个四字占用8个存储单元。为了正确地域分不同的内存单元,给每个单元分派一个存储器地点,地点从0开始编号,次序递增1。在计算机中地点用无符号二进制数表示,可简写为十六进制数形式。一个存储单元中寄存的信息称为该单元的内容。比如2号单元中寄存了一个数字8,则表示为:(2)=8。关于字、双字、四字数据种类,由于它们每个数据都要占用多个单元,接见时只需给出最低单元的地点号即可,然后依次存取后续字节。注意按照Intel企业的习惯,关于字、双字、四字数据种类,其低地点中寄存低位字节数据,高地点中寄存高位字节数据,这就是有些资料中称为“逆序寄存”的含义。比如内存现有以下数据(后缀H表示是十六进制数)。地点:012345,内容:12H34H45H67H89H0AH,存储情况如图1.5所示,则关于不同的数据类型,从1号单元取到的数据是:图1.5存储单元的地点和内容10111)字节=34H1)字=4534H1)双字=89674534H1.5.2实模式存储器寻址IBMPC机的存储器采用分段管理的方法。存储器采用分段管理后,一个内存单元地址要用段基地点和偏移量两个逻辑地点来描绘,表示为段地点:偏移量,其段地点和偏移量的限定、物理地点的形成要视CPU工作模式决定。80386以上型号的CPU有3种工作模式:实模式、保护模式和虚构86模式。在实模式下,这些CPU就相当于一个迅速的8086办理器,DOS操作系统运行在实模式。计算机在启动时,也自动进入实模式。保护模式是它们的主要工作模式,提供了4GB的段尺寸、多任务、内存分段分页管理和特权级保护等功能,Windows和Linux等操作系统都需要在保护模式下运行。为了既能充散发挥办理器的功能,又能持续运行原有的DOS和DOS应用程序(向下兼容),还提供了一种虚构86模式(Virtual86模式),它实际上是保护模式下的一种工作方式。在V86模式下,存储器寻址近似于8086,能够运行DOS及其应用程序。显然,实模式是80x86CPU工作的基础,本节议论实模式存储器寻址。8086和8088微办理器只能工作在实模式,80286以上的微办理器既能够工作在实模式也能够工作在保护模式。在实模式下微办理器只能够寻址最低的1MB内存,即便计算机实际有64MB或更多的内存也是如此。在实模式下存储器的物理地点由段基址和偏移量给出。由于8086、8088、80286的寄存器均为16位,为了与它们兼容,不论是哪一种微办理器,其段基址必须定位在地址为16的整数倍上,这种段开端边界往常称做节或小段,其特点是:在十六进制表示的地点中,最低位为0。有了这样的规定,1MB空间的20位地点的低4位能够不表示出,而高16位就能够放入段寄存器了。同样由于16位长的原因,在实模式下段长不能超过64KB,可是对最小的段并没有限制,因此能够定义只包含1个字节的段。段间地点能够相邻、不相邻或重叠。存储器采用分段管理后,其物理地点的计算方法为:10H×段基址+偏移量(其中H表示是十六进制数)因为段基址和偏移量一般用十六进制数表示,所以简易的计算方法是在段基址的最低位补以0H,再加上偏移量。比如,某内存单元的地点用十六进制数表示为2345:6789,则其物理地点为29BD9H。如图1.6所示。1112图1.6物理地点的形成能够用不同的段基址:偏移量表示同一个物理地点。比如能够用1000:1F00、11F0:0000、1100:0F00,甚至1080:1700表示同一个物理地点,因为它们计算出来的物理地点都是11F00H。1.6外部设施计算机运行时需要的程序和数据及所产生的结果要经过输入输出设施与人交互,或者需要保存在大容量的外存储器中,因别的部设施(简称外设)是计算机不可缺少的重要组成部分,对外设进行驱动或接见是汇编语言的重要应用领域之一。外设与主机的信息互换是经过外设接口进行的,每个接口中都有一组寄存器,用来寄存要互换的数据、状态和命令信息,相应的寄存器也被称为数据寄存器、状态寄存器和命令寄存器。视外设工作的复杂程度,不同的外设接口中含有的寄存器个数有所不同。为了能划分这些寄存器并且便于主机接见,系统给每个接口中的寄存器赋予一个端口地址或称做端口号,由这些端口地点组成了I/O地点空间。在IBMPC系列机中,虽然CPU的型号不同致使了所提供的内存地点总线宽度不同,进而最大可寻址内存空间不同,但它所提供的I/O地点总线宽度老是16位的,所以允许最大的I/O寻址空间为64K。在IBMPC系列机中,由于I/O地点空间是独立编址的,因此系统需要提供独立的接见外设指令。往常在应用程序中经过调用DOS或BIOS中止来实现对外设的接见,以便降低程序设计的复杂程度,缩短开发周期。习题1.简述汇编语言源程序、汇编程序和目标程序的关系。12132.简述汇编语言的优缺点。3.CPU的寻址能力为8KB,那么它的地点总线的宽度为多少?4.1KB的存储器有多少个存储单元?5.指令中的逻辑地点由哪两部分组成?6.以下为用段基址:偏移量形式表示的内存地点,试计算它们的物理地点。(1)12F8:0100(2)1A2F:0103(3)1A3F:0003(4)1A3F:A1FF7.自12FA:0000开始的内存单元中寄存以下数据(用十六进制形式表示):030611A31301,试分别写出12FA:0002的字节型数据、字型数据及双字型数据的值。8.内存中某单元的物理地点是19318H,段基地点为1916H,则段内偏移地点为多少?若段内偏移地点为2228H,则段基地点为多少?9.在实模式环境中,一个段最长不能超过多少字节?10.实模式可寻址的内存范围是多少?13
本文档为【汇编语言基础知识总结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
漫步云端
暂无简介~
格式:doc
大小:183KB
软件:Word
页数:26
分类:
上传时间:2022-03-29
浏览量:0