资源描述:
《汇编语言指令集.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计1.18086微处理器的寻址方式为了找到操作数所存放的位置的操作成为寻址方式。8086汇编语言共有四种寻址方式。8086CPU内部寄存器可用助记符表示如下:8位寄存器名称;AL,AH,BL,BH,CL,CH,DL,DH.16位寄存器名称;AX,BX,CX,DX,SI,DI,SP,BP.段寄存器名称:CS,DS,ES,SS。3.2.1立即数寻址立即数寻址方式指令中包含有操作数,此类指令一般用于对CPU中的寄存器赋值。例如:MOVAL,8;将8位数据送到寄存器AL中MOVAX,16H;将16位的数据0016H送到寄存器AX中,因为AX寄存器
2、;是16位的,它由AH和AL组成,执行这条指令后AH中内;容为00,AL中内容为16H。所以(AX)=0016H立即数寻址的特点是数据直接在指令中给出,操作直接在CPU中进行,不需要总线周期。3.2.2寄存器寻址寄存器寻址指操作数在指令的寄存器中。此类指令的操作都在CPU内部的寄存器中进行,所以执行时间短。例如:ADDAL,BL;把寄存器AL中内容和寄存器BL中内容相加的结果送AL寄存器寄存器寻址的特点是,操作在CPU的寄存器间进行,不需要总线周期。3.2.3直接寻址直接寻址指操作数在CPU外部的存储器中.需要通过数据总线才能把数据取出进行操作。例如:
3、MOVAL,[2010];把内存2010单元中的内容送到CPU的AL寄存器中直接寻址的特点是指令中有个操作数在内存中,指令执行时需要总线周期操作。3.2.4寄存器间接寻址寄存器间接寻址指操作数以寄存器中的内容作为地址指向内存的某一单元。例如:MOVAL,[BX];以BX中的内容作为内存单元的地址,把该内存单元中的可用于寄存器间接寻址的寄存器为BX,BP,DI,SI.3.38086汇编指令系统3.3.1可执行指令1,传送类指令传送指令用于实现CPU个寄存器之间,CPU的各寄存器和存储器之间,CPU的各寄存器和输入/输出的个端口之间进行数据传递。除了取标志
4、指令外,传送类v执行后不对标识寄存器产生影响。1)基本转移类指令指令形式;MOVDST,SRC;功能:SRC内容送到DST中。SRC可以是常数、CPU中的寄存器、内存地址。DST可以是CPU中的寄存器、内存地址,但不能是代码段寄存器CS或指令指针IP。8086CPU中的寄存器可以按8位方式,也可以按16位方式操作,传送语句中的源操作数和目的操作数的位数必须一致。如果要把一个常数传送到存储器中,必须用伪指令WORDPTR或BYTEPTR来指定要传送的常数是以字节(8位)还是字(16位)方式传送。源操作数和目的操作数不允询同时为存储器地址。不允许向段寄存器
5、或指令指针直接传送数据。如果耍向除CS外的寄存器传送数据,可以通过CPU中的其他寄存器进行。例如:MOVAX,1024;先把常数送到AX寄存器,MOVDS,AX;然后再把AX寄存器中的数据送入DS用DI、SI和BX作间接寻址时,默认的段寄存器为数据段寄存器DS,用BP作间接寻址时,默认的段寄存器为SS。2)堆栈操作指令PUSHSRC;POPDST;堆栈是内存中的一块区域,该区域可定位在内存的任何地方,地址由堆栈段寄存器SS和堆栈指针SP决定。堆栈按先进后出(或后进先出)方式工作。指令形式:PUSHSRCPOPDST功能:PUSH指令用于把源操作数中的内
6、容压到堆栈中,具体过程为:SP=(SP)-2,(SRC)-[SP],即:先把堆栈指针SP寄存器中的内容减2后送回到SP寄存器中,再把源操作数SRC中自内容送到由Ss和SP构成的内存单元中;POP指令用于把堆栈中内容弹出到目的操作数中,具体过程为;[SP]--DST,SP=(SP)+2,即:先把由SS寄存器和堆栈指针SP寄存器构成的内存单元中的内容送到DST中,然后把SP中的内容加2后送回到SP中。SRC和DST可以是寄存器或存储器,DST不允许用CS,SRC和DST都必须是16位的操作。1)交换指令XCHGDST,SRC;功能:把DST和SRC中的内容
7、交换SRC和DST不能同时为内存的地址,也不可以是CS或IP寄存器。2)换码指令XLAT功能:把BX和AL中的内容相加后作为内存的地址,然后把该地址所指向的内存单元中的内容取到AL寄存器中去。3)取地址指令LEADST,SRC;LEA指令用于把SRC所指向的内存地址的偏移量取到DST中LDSDST,SRC;LDS指令用于把SRC内存地址的第一个字取到DST中,并将内存地址的第二个字取到DS寄存器中;LESDST,SRC;LES指SRC所指向的内存地址的第一个字取到DST中,并将内存地址的第二个字取到ES寄存器中。4)取标志指令LAHFSAHFPUSHF
8、POPF功能:LAHF把标志寄存器的低8位取到AH,标志寄存器中的各位位置与AH各位位置对应。