




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Dalian University of Technology计算机原理计算机原理电信学院电信学院 自动化系自动化系 卢伟卢伟ADD:大黑楼:大黑楼B705 TEL:84706161 Email:卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分23.1 指令系统概述指令系统概述3.2 寻址方式寻址方式3.3 8086指令系统指令系统 3.3.1 数据传送指令数据传送指令 3.3.2 算术运算指令算术运算指令 3.3.3 逻辑运算与移位指令逻辑运算与移位指令 3.3.4 串操作指令串操作指令 3.3.5 控制转移指令控制
2、转移指令 3.3.6 处理器控制指令处理器控制指令 第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分33.1 指令系统概述指令系统概述 指令系统指令系统是一台计算机所能识别和执行的全部指令的集合。是一台计算机所能识别和执行的全部指令的集合。它与微处理器有着密切的关系它与微处理器有着密切的关系,不同的微处理器有不同的指令系统。不同的微处理器有不同的指令系统。 指令指令是使计算机执行某种特定操作的二进制编码。是使计算机执行某种特定操作的二进制编码。 指令一般包括两个部分:操作码域和地址域。
3、指令一般包括两个部分:操作码域和地址域。 操作码域操作码域存放指令的操作码存放指令的操作码,即指明该指令应由计算机完成何种即指明该指令应由计算机完成何种操作。操作。 地址域地址域确定操作数的值或地址、操作结果的地址确定操作数的值或地址、操作结果的地址,有的指令的地有的指令的地址域还指出下一条指令的地址。址域还指出下一条指令的地址。第三章 8086微处理器的指令系统第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分4 机器指令:机器指令:计算机能识别的代码计算机能识别的代码,机器指令是由二
4、进制数组成的。机器指令是由二进制数组成的。 例如例如: ADD CL,BH 机器指令为机器指令为0000001011001111B PUSH AX 机器指令为机器指令为01010000 汇编语言:汇编语言:汇编语言是一种符号语言汇编语言是一种符号语言,用助记符表示操作码用助记符表示操作码,用符号用符号或符号地址表示操作数或操作数地址或符号地址表示操作数或操作数地址,它与机器指令是一一对应的。它与机器指令是一一对应的。 汇编程序:汇编程序:MASM.EXE将汇编语言源程序翻译成机器语言将汇编语言源程序翻译成机器语言,即目标即目标程序。程序。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算
5、机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分5 根据指令内容确定操作数地址的过程根据指令内容确定操作数地址的过程,称为称为。 根据寻址方式计算所得到的地址叫做根据寻址方式计算所得到的地址叫做,也就是也就是。有效地址还需要与相应的段基地址组合才是。有效地址还需要与相应的段基地址组合才是20位位的的 ,该工作由微处理器来完成。该工作由微处理器来完成。 寻址方式在两种方式下被涉及:寻址方式在两种方式下被涉及:操作数的寻址方式操作数的寻址方式和和指令的指令的寻址方式寻址方式。如果没有特别说明如果没有特别说明, ,寻址方式是指源操作数的寻址方式。
6、寻址方式是指源操作数的寻址方式。第三章 8086微处理器的指令系统第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分61、隐含寻址隐含寻址 指令已经默认对微处理器中的某个寄存器进行操作指令已经默认对微处理器中的某个寄存器进行操作,不用在指不用在指令中指明所使用的寄存器令中指明所使用的寄存器,即隐含了规定的操作数即隐含了规定的操作数,这样的寻址方式这样的寻址方式称为隐含寻址。称为隐含寻址。例:例:DAA指令指令,只有操作码只有操作码,无操作数无操作数,但已经规定是对但已经规定是对AL中的内
7、容进中的内容进行十进制调整。行十进制调整。3.2寻址方式寻址方式操作数寻址操作数寻址第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分72、立即寻址立即寻址 操作数直接放在指令中。不需要访问存储器。操作数可以是操作数直接放在指令中。不需要访问存储器。操作数可以是8位的位的也可以是也可以是16位的位的,有时也称为立即数。有时也称为立即数。 立即数只能是源操作数。立即数只能是源操作数。例例3.1 MOV AL,34H MOV AX,1234H 需要注意在需要注意在16位操作时位操作时,两个字
8、节数据的高低位存储位置。两个字节数据的高低位存储位置。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分83、寄存器寻址寄存器寻址 操作数就放在微处理器的内部寄存器中操作数就放在微处理器的内部寄存器中,AX、BX、CX、DX、DI、SI、SP和和BP,不需要访问存储器。不需要访问存储器。 例例3.2: INC CX MOV AX,BX 若执行前若执行前(AX)=30A6H,(BX)=69EDH,(CX)=40D9H 则执行后则执行后,(AX)=69EDH,BX内容不变内容不变,(CX)=
9、40DAH。以上三种寻址方式都是直接在微处理器内部获得数据以上三种寻址方式都是直接在微处理器内部获得数据,因此操作因此操作速度快。速度快。 第三章 8086微处理器的指令系统第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分94、存储器寻址存储器寻址 操作数放在存储器中操作数放在存储器中,执行部件执行部件EU计算出存储器操作数的偏移量计算出存储器操作数的偏移量,即有效地址即有效地址EA。这是一个无符号数。这是一个无符号数,由总线接口部件由总线接口部件BIU的地址加法的地址加法器计算出物理
10、地址器计算出物理地址,然后执行存取该操作数所需的总线周期。然后执行存取该操作数所需的总线周期。 对于对于8086,有效地址有效地址EA有有3种成分:种成分: (1)位移量位移量 (2)基址基址 (3)变址变址 EA=基址基址+变址变址+位移量位移量第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分10(1)直接寻址直接寻址 有效地址由指令直接给出有效地址由指令直接给出,有效地址只包含有效地址只包含8位位/16位的位移量。位的位移量。 MOV AL,1234H 默认的段寄存器是默认的段寄存
11、器是DS,也可以在指令中使用段超越前缀也可以在指令中使用段超越前缀来指定段寄存器。来指定段寄存器。 例例3.3:MOV AL,ES:1234H 有效地址有效地址EA=1234H,在指令中直接给出。在指令中直接给出。 物理地址物理地址PA=(ES)10H+1234H 第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分11例例3.4 MOV AX,2000H 若若(DS)=3000H,则执行情况如图示。则执行情况如图示。 直接寻址也可用符号地址。直接寻址也可用符号地址。例例3.5:MOV A
12、X,VALUE/MOV AX,VALUE 这里这里,VALUE就是存放操作数单元的符号地址。就是存放操作数单元的符号地址。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分12 存储器存储器3032000H30000H代码段代码段AH5032001HAL(AX)=3050H数据段数据段例例3.4的执行过程的执行过程第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分13(2)寄存器间
13、接寻址和寄存器相对间接寻址寄存器间接寻址和寄存器相对间接寻址 操作数的地址在对应的寄存器中称为操作数的地址在对应的寄存器中称为若还有位若还有位移量移量(disp)则称为则称为。 EA取自基址寄存器取自基址寄存器BX,BP或变址寄存器或变址寄存器SI,DI中的一个中的一个,操作数在操作数在有效地址对应的存储单元中。有效地址对应的存储单元中。 即即EA=(BX、BP、SI、DI之一之一)+disp BX用于间接寻址时用于间接寻址时,默认段寄存器为默认段寄存器为DS,允许段超越允许段超越 BP用于间接寻址时用于间接寻址时,默认段寄存器为默认段寄存器为SS,允许段超越允许段超越 SI用于间接寻址时用于
14、间接寻址时,默认段寄存器为默认段寄存器为DS,允许段超越允许段超越 DI用于间接寻址时用于间接寻址时,只有在串操作指令中只有在串操作指令中,默认段寄存器为默认段寄存器为ES,其其余情况默认段寄存器均为余情况默认段寄存器均为DS,不允许段超越;不允许段超越; 第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分14注:注:IP只能在代码段中只能在代码段中(CS)寻址寻址,SP只能在堆栈段只能在堆栈段(SS)中寻址。中寻址。例例3.7 MOV AX,BX 若若(DS)=2000H,(BX)=1
15、000H 则则EA=(BX)=1000H 物理地址物理地址PA=20000H+1000H=21000H, 执行情况如下图示。执行情况如下图示。(AX)=(21000H)=5030H3021000H20000HAH5021001HAL(AX)=5030H第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分15 例例3.8 INC BYTE PTRBX EA=(BX) PA=(DS)10H+(BX) 若是寄存器相对间接寻址若是寄存器相对间接寻址,则要加上位移量。则要加上位移量。 例例3.9 I
16、NC BYTE PTRBX+disp EA=(BX)+disp PA=(DS)10H+(BX)+disp 例例3.10 MOV AX,COUNTSI/MOV AX,SICOUNT/MOV AX,SI+COUNT 若若COUNT=3000H,(DS)=3000H(SI)=2000H,则物理地址则物理地址=35000H,指令执行如上图所示指令执行如上图所示,指令执行后指令执行后(AX)=1234H.3435000H30000HAH1235001HAL(AX)=1234H32000H第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch
17、2022年年1月月17日日0时时26分分16(3)基址寻址和基址相对寻址基址寻址和基址相对寻址 操作数的地址在基址寄存器操作数的地址在基址寄存器BX,BP中称为中称为基址寻址基址寻址;若还有位;若还有位移量移量,则称为则称为基址相对寻址基址相对寻址。 位移量可以是位移量可以是8位或位或16位。位。例例3.11 MOV AX,BX+disp 使用使用BX,默认段寄存器是默认段寄存器是DS,而而BP则默认的段寄存器为则默认的段寄存器为SS。 EA=(BX)或或(BP)+disp PA=(DS)或或(SS)10H+ disp第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicr
18、ocomputerprinciple-ch2022年年1月月17日日0时时26分分17例例3.12 MOV AX,COUNTBX若若(DS)=3000H,(BX)=2000H,COUNT=3000H,(35000H)=1234H 则则 EA=2000H+3000H=5000H PA=30000H+5000H=35000H 执行该指令后执行该指令后,(AX)=1234H (4)变址寻址和变址相对寻址变址寻址和变址相对寻址 操作数的地址在变址寄存器操作数的地址在变址寄存器SI、DI中称为中称为变址寻址变址寻址;若还有位;若还有位移量移量,则称为则称为变址相对寻址变址相对寻址。 EA=(SI)或或(
19、DI)+disp 例例3.13 MOV AH,SI+disp第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分18(5)基址变址寻址和基址变址相对寻址基址变址寻址和基址变址相对寻址 EA=BX或或BP中的基址地址中的基址地址SI、DI中的变址地址中的变址地址disp;实际上;实际上这种寻址为这种寻址为(3)、(4)两种寻址的组合。两种寻址的组合。 例例3.14 MOV AX,BP+DI 此时隐含的段寄存器为此时隐含的段寄存器为SS,若用若用BX,则隐含的段寄存器为则隐含的段寄存器为DS.
20、 EA=(BX或或BP)+(SI或或DI)+disp PA=(DS)10H+(BX)+(SI或或DI)+disp PA=(SS)10H+(BP)+(SI或或DI)+disp第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分19例例3.10 MOV AX,BXDI若若(DS)=2100H,(BX)=0158H,(DI)=0002H,(2115AH)=1234H则则 EA=0158H+0002H=015AH PA=EA+21000H=2115AH 指令执行后指令执行后,(AX)=1234H例
21、例3.113.11:MOV AX,MASK+BX+SIMOV AX,MASK+BX+SI 若若(DS)=3000H,(BX)=2000H,(SI)=1000H,MASK=0250H (33250H)=34H,(33251H)=12H 则则 EA=2000H+1000H+0250H=3250H PA=30000H+2000H+1000H+0250H=33250H 指令执行如下图所示指令执行如下图所示,执行该指令后执行该指令后(AX)=1234H. .第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时
22、时26分分20低地址低地址高地址高地址CS段段操作码操作码50H02H34H12H34H12HAXDS段段3000033250BX025033250+MOV AX, BX+SIMOV AX, BX+SIMASKMASKDS3000 02000SI1000第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分21 8086采用采用I/O端口与存储器独立编址的方式。访问端口与存储器独立编址的方式。访问I/O 端口需端口需要专门指令要专门指令IN和和OUT,通过通过AX/AL来完成。来完成。(1)
23、直接寻址直接寻址 在指令直接给出在指令直接给出I/O端口地址端口地址,此地址应在此地址应在0255(0-FFH)之间之间. 例如:例如:IN AL,20H;从端口地址;从端口地址20H读入一个字节读入一个字节(2)间接寻址间接寻址,寄存器只能用寄存器只能用DX 由由DX给出给出I/O端口地址端口地址,此方式适用端口地址为此方式适用端口地址为065535(0-FFFFH)之间的任意值之间的任意值. 例如:例如:OUT DX,AL5、I/O端口寻址端口寻址 第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日
24、日0时时26分分22寻址方式的书写格式寻址方式的书写格式1、在方括号内部允许有一个或两个寄存器的名字、在方括号内部允许有一个或两个寄存器的名字,如果一对方括如果一对方括号内部有基址寄存器和变址寄存器号内部有基址寄存器和变址寄存器,使用使用“”作为连接。作为连接。2、在方括号内部允许有位移量、在方括号内部允许有位移量,使用或使用或- 号作为连接符号。号作为连接符号。3、在方括号外部允许有位移量、在方括号外部允许有位移量,可以在左边或右边。可以在左边或右边。 MOV AX,BX+SI+6 MOV AX,BX+SI6 MOV AX,6BX+SI MOV AX,BXSI6 MOV AX,BX+6SI第
25、三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分238086操作数寻址方式小结:操作数寻址方式小结:立即寻址立即寻址,操作数直接放在指令中。操作数直接放在指令中。隐含寻址隐含寻址,指令已经隐含了存放操作数的寄存器指令已经隐含了存放操作数的寄存器寄存器寻址寄存器寻址(8个通用寄存器个通用寄存器)直接寻址直接寻址,有效地址由指令直接给出有效地址由指令直接给出,即有效地址只包含位移量。即有效地址只包含位移量。寄存器间接寻址和寄存器相对间接寻址寄存器间接寻址和寄存器相对间接寻址(BX、BP、SI
26、、DI,位移量位移量)基址寻址和基址相对寻址基址寻址和基址相对寻址(BX、BP,位移量位移量)变址寻址和变址相对寻址变址寻址和变址相对寻址(SI、DI,位移量位移量)基址变址寻址和基址变址相对寻址基址变址寻址和基址变址相对寻址(BX、BP,SI、DI,位移量位移量) 其中其中1、2、3两种不用访问存储器。两种不用访问存储器。 disp可以是可以是8位位/16位的有符号数。位的有符号数。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分24(1)段内直接寻址段内直接寻址 不改变不改变CS,
27、在在IP上加一个位移量上加一个位移量,则则EA=(IP)+disp 例如:例如: JMP NEAR PTR PROGIA ;段内近转移;段内近转移 JMP SHORT QUEST ;段内短转移;段内短转移 JMP 25H ;段内短转移;段内短转移,-128+127 JMP 1025H ;段内近转移;段内近转移,-32768 +32767 其中其中PROGIA 和和QUEST是转向的符号地址是转向的符号地址,在机器指令中在机器指令中,用用位移量来表示。位移量来表示。指令寻址指令寻址第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-c
28、h2022年年1月月17日日0时时26分分25例例3.12:JMP BX;段内间接转移;段内间接转移(IP)=(BX) JMP WORD PTRBX+TABLE若若(BX)=1256H,(DS)=2000H,TABLE=20A0H,(232F6H)=3280H则执行则执行JMP BX后后,(IP)=EA=1256H 执行执行JMP WORD PTRBX+TABLE后后, EA=(BX)+disp=1256H+20A0H=32F6H (IP)=(PA)=(20000H+32F6H)=(232F6H)=3280H(2)段内间接寻址段内间接寻址 转向的有效地址是一个寄存器或一个存储单元的内容。这个寄
29、存转向的有效地址是一个寄存器或一个存储单元的内容。这个寄存器或存储单元的内容可用除立即数寻址以外的任何一种寻址方式得器或存储单元的内容可用除立即数寻址以外的任何一种寻址方式得到。转向的有效地址用来取代到。转向的有效地址用来取代IP,这时这时CS值不变。值不变。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分26例例3.13:JMP 3500H:080BH;段间直接转移段间直接转移 (CS)=3500H,(IP)=080BH例例3.14:JMP FAR PTR NEXT_PROG其中其中
30、NEXT_PROG是转向的符号地址是转向的符号地址;FAR PTR为段间转移的操作符。为段间转移的操作符。执行该指令后执行该指令后,NEXT_PROG所在段的段地址送所在段的段地址送CS,NEXT_PROG在该在该段内的偏移量送段内的偏移量送IP。 (3)段间直接寻址段间直接寻址 指令中提供了转向的段地址和偏移地址指令中提供了转向的段地址和偏移地址,所以用段地址取代所以用段地址取代CS,用偏移地址取代用偏移地址取代IP。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分27C1 SEGM
31、ENT JMP FAR PTR NEXT_PROG C1 ENDSC2 SEGMENT NEXT_PROG : C2 ENDS执行执行JMP FAR PTR NEXT_PROG后后,C2段的段地址送段的段地址送CS,在在C2段内段内NEXT_PROG的偏移量送的偏移量送IP。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分28(4)段间间接寻址段间间接寻址 用存储器中两个相继字的内容来取代用存储器中两个相继字的内容来取代IP和和CS,达到段间转移的目的。达到段间转移的目的。低地址中内容
32、送低地址中内容送IP,高地址中内容送高地址中内容送CS。例例3.15:JMP DWORD PTR INTERS+BX其中其中INTERS+BX说明寻址方式为基址相对寻址方式说明寻址方式为基址相对寻址方式; DWORD PTR是双字操作符。是双字操作符。例例3.16:JMP DWORD PTRBX+DI+ALPHA这是基址变址相对寻址。这是基址变址相对寻址。 EA=(BX)+(DI)+ALPHA PA=(DS)10H+EA (IP)=(PA) ;低地址内容送;低地址内容送IP (CS)=(PA+2) ;高地址内容送;高地址内容送CS 转移的物理地址是:转移的物理地址是:PA=(CS) 10H+(
33、IP)段间间接转移段间间接转移,目标地址存放在目标地址存放在PA开始的开始的4个连续单元中个连续单元中,其中低地址其中低地址两个单元放两个单元放IP内容内容,高地址两个单元放高地址两个单元放CS内容。内容。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分29寻址方式:寻址方式:1. 立即寻址立即寻址 MOV AX, 1234H2. 寄存器寻址寄存器寻址 MOV AX, BX3. 直接寻址直接寻址 MOV AX, 1234H4. 寄存器间接寻址寄存器间接寻址 MOV AX, BX 5.
34、基址寻址基址寻址 MOV AX, BX+100H6. 变址寻址变址寻址 MOV AX, SI+100H7. 基址加变址寻址基址加变址寻址 MOV AX, BX+SI+100H第三章 8086微处理器的指令系统第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分30操作数分类操作数分类立即数操作数:绿立即数操作数:绿注注1:立即数只能作为源操作数:立即数只能作为源操作数,不能作为目标操作数。不能作为目标操作数。注注2:不能用一条指令简单地将立即数传送到段寄存器。:不能用一条指令简单地将立即数
35、传送到段寄存器。寄存器操作数:红寄存器操作数:红注注3:有些指令没有指定使用的寄存器:有些指令没有指定使用的寄存器,但实际上隐含着特定的寄存但实际上隐含着特定的寄存器操作数。器操作数。存储器操作数:蓝存储器操作数:蓝注注4:不允许源操作数和目标操作数同时为存储器操作数。:不允许源操作数和目标操作数同时为存储器操作数。注注5:存储器操作数的物理地址的计算是将段基地址左移四位加上:存储器操作数的物理地址的计算是将段基地址左移四位加上有效地址有效地址EA(偏移地址偏移地址)得到的。但是段寄存器和有效地址的配对得到的。但是段寄存器和有效地址的配对是有规定的。是有规定的。注注6:执行速度:寄存器操作数:
36、执行速度:寄存器操作数 立即数操作数立即数操作数 存储器操作数存储器操作数第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分31机器码机器码:在在8086系统中系统中,任何一条指令都是以特定的若干个任何一条指令都是以特定的若干个(16)字节的代码形式存在存储器的码段中。同样的指令字节的代码形式存在存储器的码段中。同样的指令(如如MOV)由于由于寻址方式和操作数的不同寻址方式和操作数的不同,机器码的长度也不同。机器码的长度也不同。执行时间执行时间:指令的指令时间包括取址、译码和执行的时间指
37、令的指令时间包括取址、译码和执行的时间,跟该跟该指令的机器码的长短没有直接关系。指令的机器码的长短没有直接关系。 指令指令机器码机器码 字节数字节数 时钟数时钟数MOV AL,15HMOV AL,15HB0HB0H15H15H 2 2 4 4MOV AX,BXMOV AX,BX8BH8BHC3HC3H 2 2 2 2第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分321 数据传送指令数据传送指令(1)MOV指令指令 MOV dest,src ;(dest)(src)1)源操作数可以是源
38、操作数可以是8/16位的立即数、寄存器操作数、内存操作数。位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数目标操作数不允许为立即数,其余同源操作数。源、目的操作数不能其余同源操作数。源、目的操作数不能同时为内存操作数。同时为内存操作数。2)源、目的操作数类型必须匹配:源、目的操作数类型必须匹配:MOV BYTE PTR BX,12H3)不能向段寄存器写立即数:不能向段寄存器写立即数: MOV AX,2000 ;MOV DS,AX4) 以以CS为目标的一切传送指令都是非法的。为目标的一切传送指令都是非法的。通用传送指令通用传送指令第三章 8086微处理器的指令系统卢伟计算机原理卢伟
39、计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分33(2)堆栈操作指令堆栈操作指令 PUSH src ;(SP)(SP)-2 ;(SP)+1:(SP)(src) 进栈指令进栈指令,先调整堆栈指针先调整堆栈指针,再把源操作数压栈。再把源操作数压栈。 如:如:PUSH AX POP dest ;(dest)(SP)+1:(SP) ;(SP)(SP)+2 出栈指令出栈指令,先将栈顶先将栈顶2字节送目标操作数字节送目标操作数,再调整堆栈指针。再调整堆栈指针。 如:如:POP AX注注1:堆栈指令指对字进行操作堆栈指令指对字进行操作,不对字节进行
40、操作不对字节进行操作,一般成对使用。一般成对使用。注注2:堆栈主要应用于子程序调用、中断的现场保护和恢复及参数传堆栈主要应用于子程序调用、中断的现场保护和恢复及参数传 递等。递等。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分34高地址高地址低地址低地址12H34H34H12HAX堆栈段SSSP指向栈顶SP1SP1PUSH AX第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分
41、35高地址高地址低地址低地址12H34H34H12HAX堆栈段SSSP指向栈顶SP+1SP+1POP AX第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分36(3)交换指令交换指令 XCHG dest,src ;(dest)(src)交换指令交换指令,源、目不能同为内存操作数源、目不能同为内存操作数,只能在寄存器之间、寄存器只能在寄存器之间、寄存器和存储器之间交换和存储器之间交换,段寄存器不能作为一个操作数进行交换。段寄存器不能作为一个操作数进行交换。如:如: XCHG AX, SI+
42、0400H第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分37(4)XLAT 查表指令查表指令 XLAT src_table/XLAT ;(AL)(BX)+(AL)查表指令查表指令,用来取表中某指定数的值。用来取表中某指定数的值。执行指令前:序号执行指令前:序号 AL 表首址表首址 BX执行指令后:执行指令后:AL 表中序号对应的字节内容表中序号对应的字节内容例:例:TABLE DB 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 MOV BX, OFFS
43、ET TABLE MOV AL, 5 XLAT TABLE 执行后执行后AL=53第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分38完成累加器和完成累加器和I/O端口之间的数据传送端口之间的数据传送(1)IN acc,port ;(acc)(port) 端口号为端口号为8位时位时,直接寻址直接寻址,最多可访问最多可访问256个端口个端口 例:例:IN AL,60H(将将60H口地址的字节送给口地址的字节送给AL) IN AX,60H(将将60H口地址的字送给口地址的字送给AX)端口地
44、址为端口地址为16位时位时,间接寻址间接寻址,端口地址必须放在端口地址必须放在DX寄存器中寄存器中,最多可最多可访问访问65536个端口。个端口。例:例:MOV DX,3DAH IN AL,DX ;将;将3DAH口地址的字节送给口地址的字节送给AL(2)OUT port,acc ;(port)(acc)例:例:MOV DX,3DAH OUT DX,AX输入输出指令输入输出指令第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分39 LEA reg16,mem16 有效地址传送指令有效地址传
45、送指令,源操作数为内存操作数源操作数为内存操作数,将内存单元的有效地址将内存单元的有效地址(而不是内容而不是内容)传送到目标寄存器。传送到目标寄存器。例例: LEA SI, AREA1 MOV SI,OFFSET AREA1LDS/LES reg16,mem32指针传送指令指针传送指令,将传送一个将传送一个32位目标指针位目标指针(包含一个段地址和一个段包含一个段地址和一个段内偏移量内偏移量),从源操作数从源操作数(内存操作数内存操作数)传送至一对目的寄存器。其传送至一对目的寄存器。其中段地址送至中段地址送至DS(ES),偏移量送至指定的偏移量送至指定的16位寄存器中位寄存器中,通常是指通常是
46、指针寄存器或者变址寄存器。针寄存器或者变址寄存器。例:例:LDS SI,0100H34H34H12H12HCDHCDHABHABHDSDS:100H100H目标地址传送指令目标地址传送指令第三章 8086微处理器的指令系统DSDS:100H100H12H12HDSDS:100H100HABHABH12H12HDSDS:100H100HABHABH12H12HDSDS:100H100HABHABH12H12HDSDS:100H100H卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分40LAHF 不影响标志位不影响标志位S
47、AHF 影响标志寄存器低影响标志寄存器低8位位PUSHFPOPF16位标志寄存器进栈位标志寄存器进栈/出栈指令出栈指令数据传送指令中数据传送指令中,除除SAHF和和POPF外外,都不影响标志寄存器的内容。都不影响标志寄存器的内容。S ZAPCO D I TAHFLAGLAHF/ SAHF标志传送指令标志传送指令第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分412算术运算指令算术运算指令8086指令系统算术运算指令一共指令系统算术运算指令一共20条条 加法加法ADDADD减法减法SUB
48、SUBADCADCSBBSBBINCINCDECDECAAAAAANEGNEGDAADAACMPCMP除法除法DIVDIVAASAASIDIVIDIVDASDASAADAAD乘法乘法MULMULCBWCBWIMULIMULCWDCWDAAMAAM第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分42运算数据格式和对标志位的影响运算数据格式和对标志位的影响 数据类型数据类型类型类型字节字节字字不带符号的二进制数不带符号的二进制数0 02552550 06553565535带符号的二进制数带
49、符号的二进制数 ( (补码补码) )-128-128127127-32768-327683276732767不带符号的压缩十进制数不带符号的压缩十进制数0 099990 099999999不带符号的非压缩十进制数不带符号的非压缩十进制数0 09 90 09999第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分43 运算数据格式和对标志位的影响运算数据格式和对标志位的影响 对标志位的影响:所有算术运算指令都影响状态标志对标志位的影响:所有算术运算指令都影响状态标志CF 、PF、AF、ZF
50、、SF和和OF。 当无符号数运算结果溢出时当无符号数运算结果溢出时,CF=1。 当有符号数运算产生溢出时当有符号数运算产生溢出时,OF=1。 当运算结果中低当运算结果中低8位有偶数个位有偶数个1或或0个个1,则则PF=1。 若加法时第若加法时第3位给第位给第4位进位位进位,或减法时第或减法时第3位从第位从第4位借位位借位,则则AF=1。 若运算结果为若运算结果为0,则则ZF=1。 若运算结果为负数若运算结果为负数,则则SF=1。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分44 AD
51、D dest,src ;(dest)(dest)+(src) 加法指令:加法指令:ADD AL,27H ADC dest,src ;(dest)(dest)+(src)+(CF) 带进位位加法指令带进位位加法指令,主要用来实现多字节的加法运算。主要用来实现多字节的加法运算。例:做例:做4个字节的加法运算个字节的加法运算,两个数放在两个数放在SI和和DI开始的存储单元当中。开始的存储单元当中。 MOV AX,SI ADD DI,AX MOV AX,SI+2 ADC DI+2,AX;注意要用带进位的加法运算指令;注意要用带进位的加法运算指令 以上两条指令影响以上两条指令影响A,C,O,P,S,Z6
52、个标志位。注意带进位位加法中的个标志位。注意带进位位加法中的进位位的值是上一条运算指令产生的结果。进位位的值是上一条运算指令产生的结果。加法运算指令加法运算指令第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分45例3.20:ADD WORD PTRBX+106BH,1234H(CS)=1000H,(IP)=0300H,(DS)=2000H,(BX)=1200H第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年
53、年1月月17日日0时时26分分46 INC dest ;(dest)(dest)+1 自加自加1指令指令,影响影响A,O,P,S,Z 5个标志位个标志位 AAA 加法的加法的ASCII调整指令调整指令,它不能单独使用它不能单独使用,总是跟在加法指令后总是跟在加法指令后,对在对在AL中的由两个非压缩的中的由两个非压缩的BCD码相加的结果进行校正码相加的结果进行校正,结果仍以非压结果仍以非压缩缩BCD码的形式存放码的形式存放,个位在个位在AL,十位在十位在AH。 DAA 加法的十进制调整指令加法的十进制调整指令,它不能单独使用它不能单独使用,总是跟在加法指令后总是跟在加法指令后,对对在在AL中的由
54、两个压缩的中的由两个压缩的BCD码相加的结果进行校正码相加的结果进行校正,产生一个正确产生一个正确的的BCD码的和。码的和。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分47AAA指令的具体算法如下:指令的具体算法如下: IF (AL AND 0FH)9 OR (AF=1)THEN AL=AL+6 AH=AH+1 AF=1 AL=AL AND OFH CF=1 ELSE AF=0 CF=0 ENDIF第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocom
55、puterprinciple-ch2022年年1月月17日日0时时26分分48DAA指令的算法如下:指令的算法如下: IF(AL AND 0FH)9 OR(AF=1)THEN AL=AL+6 AF=1 ENDIF IF (AL9FH)OR(CF=1)THEN AL=AL+60H CF=1 ENDIF第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分49例例3.21:求:求6+7 (非压缩十进制数非压缩十进制数) 指令如下:指令如下: MOV AL,06 MOV BL,07 ADD AL,
56、BL AAA 00000110 + 00000111 (AL)= 00001101 因为因为(AL)9,要调整要调整 + 00000110 (AL)= 00010011 (AH)=1,(AL)=AL AND 0FH=03 第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分50例例3.22:求:求48+29(压缩的十进制数压缩的十进制数) 程序如下:程序如下: MOV AL,48H ADD AL,29H DAA 01001000 + 00101001 01110001 AF=1 调整调整
57、+ 00000110 01110111例例3.23:上例中若是非压缩的十进制数:上例中若是非压缩的十进制数,两个数放在存储单元两个数放在存储单元UP1、UP2中中,运算结果放在运算结果放在DX中中,则设则设(UP1)=08,(UP2)=09,(UP1+1)=04,(UP2+1)=02,这里这里UP1、UP2是存储单元的符号地址是存储单元的符号地址,编程计算编程计算48+29。第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分51 SUB dest,src ;(dest)(dest)-(s
58、rc) 减法指令减法指令:SUB AL,65H SBB dest,src ;(dest)(dest)-(src)-(CF) 带借位位减法指令带借位位减法指令以上两条指令影响以上两条指令影响A,C,O,P,S,Z6个标志位。个标志位。 DEC dest ;(dest)(dest)-1 自减自减1指令指令,影响影响A,O,P,S,Z5个标志位个标志位 AAS 减法的减法的ASCII调整指令调整指令,对在对在AL中的由两个非压缩的中的由两个非压缩的BCD码相减的码相减的结果进行校正结果进行校正,结果仍以非压缩结果仍以非压缩BCD码的形式存放码的形式存放,个位在个位在AL,十位在十位在AH。 DAS
59、减法的十进制调整指令减法的十进制调整指令,对在对在AL中的由两个压缩的中的由两个压缩的BCD码相减的结码相减的结果进行校正果进行校正,产生一个正确的产生一个正确的BCD码的差。码的差。减法运算指令减法运算指令第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分52AAS指令的具体算法如下:指令的具体算法如下: IF (AL AND 0FH)9 OR (AF=1)THEN AL=AL-6 AH=AH-1 AF=1 AL=AL AND OFH CF=1 ELSE AF=0 CF=0 ENDIF
60、第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分53DAS指令的算法如下:指令的算法如下: IF(AL AND 0FH)9 OR(AF=1)THEN AL=AL-6 AF=1 ENDIF IF (AL9FH)OR(CF=1)THEN AL=AL-60H CF=1 ENDIF第三章 8086微处理器的指令系统卢伟计算机原理卢伟计算机原理themicrocomputerprinciple-ch2022年年1月月17日日0时时26分分54例例3.24:若:若(AL)=9AH,执行指令执行指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 派送花束活动方案
- 医院质量管理目标体系构建与实施路径
- 2025届邢台市柏乡县三上数学期末考试模拟试题含解析
- 行政管理经济法概论试题及答案集锦
- 2025年中级经济师复习重点试题及答案
- 掌握公共关系学的思维方式试题及答案
- 2025年市政工程项目实践试题及答案
- 防范恶劣天气安全教育
- 林业有害生物防治协议
- 心理学社会现象分析试题集
- 餐饮抽成合同协议书
- 2025年江西省安福县事业单位公开招聘辅警36名笔试题带答案
- 大神心理测试题及答案
- 2025初级《银行业法律法规与综合能力》高分必会试题库1000题-单选500题
- 低值易耗品试题及答案
- 2025春季学期国开河南电大本科《行政管理理论与实践专题讲座》一平台无纸化考试(作业练习+我要考试)试题及答案
- 10.1 认识民法典 课件-2024-2025学年统编版道德与法治七年级下册
- 2025年新高考地区数学名校地市选填压轴题好题汇编(八)(解析版)
- 全球汽车产业发展现状与趋势
- 机械制造质量整改报告范文
- 2025贵州毕节市七星关区招聘城市社区工作者186人笔试备考题库及答案解析
评论
0/150
提交评论