欢迎来到天天文库
浏览记录
ID:45034774
大小:108.00 KB
页数:17页
时间:2019-11-08
《微机原理总汇编指令集合》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文档微机原理及接口技术常用编指令一.寄存器(用来存放存储单元的段地址或偏移地址、参与运算的数据、状态标志等)相关指令8086CPU中有14个16位的寄存器,这14个寄存器按照功能分为四类:通用寄存器、段寄存器组、指令指针、标志位寄存器FR。1.通用寄存器(8个)㈠数据寄存器:①AX(accumulator):寄存器(累加器)它的由来来源于EAX寄存器(32位):EAX累加寄存器EAX分为高16位和低16位。其中低16位又可单独访问,命名为AX,16位寄存器AX又可单独访问,可分为高、低分别为AH、AL字节个8位。AX常用于运算;在乘法和除
2、法中指定用来存放操作数,另外所有的I/O指令都使用这一个寄存器与外接设备传送数据。②BX(base):基址寄存器,寄存器(基址寄存器)它的由来来源于EBX寄存器(32位):EBX累加寄存器EBX分为高16位和低16位。其中低16位又可单独访问,命名为BX,16位寄存器BX又可单独访问,可分为高、低分别为BH、BL字节个8位。BX常用于地址索引,查表和间接寻址时存放基地址。③CX(count):计数寄存器,寄存器(计数寄存器)它的由来来源于ECX寄存器(32位):ECX累加寄存器ECX分为高16位和低16位。其中低16位又可单独访问,命名为CX
3、,16位寄存器CX又可单独访问,可分为高、低分别为CH、CL字节个8位。常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.④DX(data):数据寄存器,寄存器(数据寄存器)它的由来来源于EDX寄存器(32位):EDX累加寄存器EDX分为高16位和低16位。其中低16位又可单独访问,命名为DX,16位寄存器DX又可单独访问,可分为高、低分别为DH、DL字节个8位。常用于数据传递。㈡指针和变址寄存器这些寄存器存放的是段内的偏移量,用来形成操作数的存储地址。SP(StackPointer):堆栈指针,与S
4、S配合使用,可指向目前的堆栈位置,SP指向栈顶。BP(BasePointer):基址指针寄存器,可用作SS的一个相对基址位置,BP指向栈的任何一单元。SI(SourceIndex):源变址寄存器可用来存放相对于DS段之源变址指针。DI(DestinationIndex):目的变址寄存器,可用来存放相对于ES段之目的变址指针,指令中SI对应DS,DI对应ES不能互换。实用文档2.指令指针IP(InstructionPointer)(1个)16位的指令指针IP,用来存放下一条指令在CS(代码段寄存器)中的偏移量。当发现中断或调用时BIU【(Bus
5、InterfaceUnit)总线部件,功能是取指令、读操作数和送出结果】自动将IP的偏移量压入堆栈保存,并调整IP的内容。程序不能直接访问IP,但可以通过中断、转移等指令来修改IP的内容。3.段寄存器(SegmentRegister)(4个)为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(CodeSegment):代码段寄存器;存放当前执行的指令在内存中的地址段。CS和IP决定了当前指令的逻辑地址。DS(DataSegment):数据段寄存器;存放当前数据段的段地址。DS和SI决定了字符串操作时目的操作数的地址。
6、SS(StackSegment):堆栈段寄存器;存放当前数据段的堆栈地址,SS与SP决定了当前堆栈的顶部,所谓堆栈是以“后进后出”规则保存信息的一种存储机构。8086CPU的堆栈段地址在SS寄存器中,堆栈当前偏移地址在SP寄存器中,SP的初值代表了堆栈区的大小。ES(ExtraSegment):附加段寄存器。附加段是一个附加的数据段。ES和DI决定了字符串操作时目的操作数的地址。 4.标志位寄存器FR(FlagRegise)8086CPU设置了一个16位的标志寄存器FR,用来显示微机的运行结果或控制机制操作,规定了其中的9位,标志的设置,FR
7、的九个标志按作用可分为两大类:一类叫状态标志,用来表示运算结果的特征,他们是:CF、PF、AF、ZF、SF、OF。另一类叫做控制标志,用来控制CPU的操作,它们是:IP、DF、TF。CF(carrierflag)进位标志位:运算中高四位中发生进位或错位时,CF=1;否则CF=0;STC指令可置CF=1,CLR指令对CF求反;循环指令也会影响该标志位。DF(directionflag)方向标志位:控制串指令对字符串处理的方向。DF=0时,变址地址指针SI、DI作增量操作,即由低地址向高地址进行串操作,字节操作增量为1,字操作增量为2;DF=1时
8、,作减量操作,即由高地址向低地址进行串操作。STD指令可置DF=1,CLD指令置DF=0。OF(overflowflag)溢出标志位:当运算结果超出机器的的表示范围
此文档下载收益归作者所有