版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机原理与应用计算机原理与应用夏战国夏战国第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-172第三章第三章 8086/8088指令系统指令系统一、一、指令格式与寻址方式指令格式与寻址方式二、二、数据传送类指令数据传送类指令三、三、算术运算指令算术运算指令四、四、逻辑运算指令逻辑运算指令五、五、移位指令移位指令 作业作业六、六、串操作指令串操作指令七、七、控制转移指令控制转移指令八、八、处理器控制指令处理器控制指令 作业作业第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-173一、指令格式与寻址方式一、指令格式与寻址方式
2、 指令指令(Instruction)是指示是指示CPU执行某种操作的执行某种操作的命令;命令; 指令系统指令系统(Instruction Set)是某一是某一CPU所能执所能执行的全部指令的集合,也称为指令集;行的全部指令的集合,也称为指令集; 8086/8088的指令系统完全相同。的指令系统完全相同。 指令是构成指令是构成程序程序的基础,程序是指令的有序组的基础,程序是指令的有序组合,合,CPU执行程序就是执行一条条指令。执行程序就是执行一条条指令。 1、指令格式指令格式 2、寻址方式寻址方式 第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-174二、数据
3、传送类指令二、数据传送类指令1、通用数据传送指令通用数据传送指令2、地址传送指令地址传送指令3、状态标志传送指令状态标志传送指令第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-175三、算术运算指令三、算术运算指令1、加法运算指令加法运算指令2、减法指令减法指令3、乘法指令乘法指令4、除法指令除法指令 例题例题第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-176四、逻辑运算指令四、逻辑运算指令1、“与与”运算指令运算指令AND2、“或或”运算指令运算指令OR3、“非非”运算指令运算指令NOT4、“异或异或”运算指令运算指
4、令XOR5、测试指令测试指令TEST第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-177五、移位指令五、移位指令1、逻辑移位指令逻辑移位指令2、算术移位指令算术移位指令3、循环移位指令循环移位指令4、通过进位位循环移位指令通过进位位循环移位指令 例题例题 第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-178七、控制转移指令七、控制转移指令1、控制转移指令的寻址方式控制转移指令的寻址方式2、无条件转移指令无条件转移指令3、条件转移指令条件转移指令4、循环控制指令循环控制指令5、过程调用和返回指令过程调用和返回指令第三章第
5、三章 8086/8088 8086/8088指令系统指令系统2021-10-179八、处理器控制指令八、处理器控制指令1、标志位操作指令标志位操作指令2、与外部事件协调同步的指令与外部事件协调同步的指令3、空操作指令空操作指令第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17101、指令格式、指令格式(1)操作码操作码指定指定CPU执行某种操作,如传送、运算执行某种操作,如传送、运算等;等;(2)操作数操作数为参与操作的数据,如寄存器中的数据为参与操作的数据,如寄存器中的数据或内存单元中的数据等。或内存单元中的数据等。 包含一个操作数的指令称为包含一个操作
6、数的指令称为单操作数指令单操作数指令; 包含两个操作数的指令称为包含两个操作数的指令称为双操作数指令双操作数指令; 在指令执行过程中使用的操作数,保持原值不变的称为在指令执行过程中使用的操作数,保持原值不变的称为源操作数源操作数; 不保留原值而将处理结果存入其中的称为不保留原值而将处理结果存入其中的称为目的操作数目的操作数 。 操作码操作码 操作数操作数 一条指令通常包括两部分:一条指令通常包括两部分:操作码操作码和和操作数操作数。格式:格式:第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17112、寻址方式(、寻址方式(Addressing Mode)
7、(1)指令寻址方式)指令寻址方式 指令通常是顺序存放的,因此只要通过对指令指令通常是顺序存放的,因此只要通过对指令指针自动加指针自动加1,便形成下条指令地址;,便形成下条指令地址; 只有当遇到转移指令或调用指令时,根据转移只有当遇到转移指令或调用指令时,根据转移目标去修改目标去修改IP或或CS。(2)操作数寻址方式)操作数寻址方式 所谓操作数寻址方式,就是寻找指令中所需操所谓操作数寻址方式,就是寻找指令中所需操作数的方法作数的方法。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17122、寻址方式(、寻址方式(Addressing Mode) 操作数的来源
8、操作数的来源 包含在指令中,紧跟在操作码之后,称为包含在指令中,紧跟在操作码之后,称为立即数; 操作数在操作数在CPU的某个寄存器中;的某个寄存器中; 操作数在内存的某单元中,这时指令中给出操作数在内存的某单元中,这时指令中给出的是操作数所在单元的地址,或者是产生该地址的的是操作数所在单元的地址,或者是产生该地址的计算方法;计算方法; 操作数在某操作数在某I/O端口中。端口中。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17132、寻址方式(、寻址方式(Addressing Mode) 由于操作数的不同来源,产生了三大类寻址方由于操作数的不同来源,产生了
9、三大类寻址方式。式。(1)立即数寻址立即数寻址(2)寄存器寻址寄存器寻址(3)内存寻址内存寻址 例题例题第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1714(1)立即(数)寻址立即(数)寻址 当操作数就在指令中时,称为立即(数)寻址。当操作数就在指令中时,称为立即(数)寻址。这种操作数称为这种操作数称为立即数立即数,8位或位或16位均可。如:位均可。如: MOV AL,12H说明:这条指令的功能就是将立即数说明:这条指令的功能就是将立即数12H传送到寄存传送到寄存器器AL中。中。 执行完该条指令后,执行完该条指令后, (AL)=12H或表示成或表示成 :
10、 AL=12H第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1715(1)立即(数)寻址立即(数)寻址 MOV AX,1234H 说明:这条指令的功能就是将立即数说明:这条指令的功能就是将立即数1234H传送传送到寄存器到寄存器AX中。中。 执行完该条指令后,执行完该条指令后, (AX)=1234H或表示成:或表示成: AX=1234H第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1716(1)立即(数)寻址立即(数)寻址 MOV AL,12H 这是一条这是一条双操作数指令双操作数指令。其中:。其中:* MOV就是操作
11、码,就是操作码,* 立即数立即数12H称为称为源操作数源操作数;* 寄存器寄存器AL称为称为目的操作数目的操作数。 特特 点点:* 源操作数在执行指令后,它的值不会发生变化;源操作数在执行指令后,它的值不会发生变化;* 立即数不能作为目的操作数。立即数不能作为目的操作数。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1717(2)寄存器寻址)寄存器寻址(Segment Addressing) 当操作数在寄存器中时为当操作数在寄存器中时为寄存器寻址寄存器寻址(或称寄(或称寄存器直接寻址)。如存器直接寻址)。如: MOV AL,12H 说明:目的操作数说明:目
12、的操作数AL即为寄存器寻址。即为寄存器寻址。 MOV AX,BX 说明:这条指令的功能就是将寄存器说明:这条指令的功能就是将寄存器BX的内容的内容传送到寄存器传送到寄存器AX中。中。 执行完该条指令后,执行完该条指令后,AX的内容和的内容和BX的内容一样,的内容一样,表示成表示成AX=BX;第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1718(3)内存寻址)内存寻址 (Memory Addressing) 当操作数在内存中时为内存寻址,称其为内存当操作数在内存中时为内存寻址,称其为内存操作数。操作数。 注意:一条指令中只允许有一个内存操作数!注意:一条指
13、令中只允许有一个内存操作数!* 内存寻址时,指令中给出的是操作数的内存寻址时,指令中给出的是操作数的有效地址有效地址EA或产生或产生EA的计算方式。的计算方式。* EA即是逻辑地址中的偏移地址即是逻辑地址中的偏移地址。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1719(3)内存寻址)内存寻址 (Memory Addressing)直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址基址变址寻址相对基址变址寻址相对基址变址寻址第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1720直接寻
14、址直接寻址 EA由指令中直接给出的由指令中直接给出的16位偏移量单独构成位偏移量单独构成时称为内存寻址中的直接寻址。时称为内存寻址中的直接寻址。* 16位偏移量应带有方括号。如:位偏移量应带有方括号。如:(1)MOV AL,1234H 说明:说明: 根据指令根据指令EA=1234H,段地址即取当前数据段段地址即取当前数据段DS(设设DS=2000H), 20位物理地址位物理地址=DS10H+1234H=21234H, 该指令的功能就是将内存单元该指令的功能就是将内存单元(21234H) 的的字节内容字节内容传送到传送到寄存器寄存器AL中,中,或表示为或表示为: (2000H:1234H)=A1
15、H也即将也即将A1H送送AL,当执行完该指令后,当执行完该指令后, AL=A1H21234H20000H当前数据段A1H21235H66HFFH内存单元地址内存单元地址 内存单元内容内存单元内容第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1721直接寻址直接寻址(2)MOV AX,1234H 说明:说明: 根据指令根据指令EA=1234H,段地址即取当前数据段段地址即取当前数据段DS, 设设DS=2000H,则则 20位物理地址位物理地址=DS10H+1234H=21234H, 该指令的功能就是将内存单元该指令的功能就是将内存单元(21234H)的的字内
16、容字内容传送到传送到寄存器寄存器AX中,也可表示为中,也可表示为: ( 2000H:1234H)=66A1H,也就是将也就是将66A1H送送AX,因此,当执行完该指令后因此,当执行完该指令后, AX=66A1H21234H20000H当前数据段A1H21235H66HFFH内存单元地址内存单元地址 内存单元内容内存单元内容第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1722寄存器间接寻址寄存器间接寻址 有效地址有效地址EA的内容由寄存器内容给出,称为内的内容由寄存器内容给出,称为内存寻址中的寄存器间接寻址。存寻址中的寄存器间接寻址。 * 寄存器应带有方括
17、号。如寄存器应带有方括号。如 MOV AX,BX ;EA=BX MOV AX,SI ;EA=SI MOV AX,DI;EA=DI *求物理地址的方法与内存寻址中的直接寻址方求物理地址的方法与内存寻址中的直接寻址方法一样。法一样。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1723寄存器相对寻址寄存器相对寻址EA由指令中给出的寄存器中的内容和位移量组成。由指令中给出的寄存器中的内容和位移量组成。如:如:MOV AX,BX+0120H ;EA=BX+0120H通式(其中通式(其中D为位移量):为位移量): 注意:求物理地址的方法与内存寻址中的直接注意:求物理
18、地址的方法与内存寻址中的直接寻址方法一样。注意对应的段!寻址方法一样。注意对应的段!EA=+DBPDISIBX第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1724基址变址寻址基址变址寻址有效地址有效地址EA由由基址寄存器和和变址寄存器组成。如:组成。如: MOV AX,BX+SI ;EA=BX+SI或或 MOV AX,BXSI ;EA=BX+SI通式:通式:EA=DISI+BPBX 注意:求物理地址的方法与内存寻址中的直接注意:求物理地址的方法与内存寻址中的直接寻址方法一样。注意对应的段!寻址方法一样。注意对应的段!第三章第三章 8086/8088 80
19、86/8088指令系统指令系统2021-10-1725相对基址变址寻址相对基址变址寻址EA由基址寄存器、变址寄存器和位移量组成。如:由基址寄存器、变址寄存器和位移量组成。如: MOV AX,BP+DI+20H ; EA=BP+DI+20H或或MOV AX,20HBPDI ; EA=BP+DI+20H通式:通式:EA=DISIDBPBX+ 注意:求物理地址的方法与内存寻址中的直接注意:求物理地址的方法与内存寻址中的直接寻址方法一样。注意对应的段!寻址方法一样。注意对应的段!第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1726例题例题1、指出各指令中源操作数
20、和目的操作数的寻址方、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。式,并说明操作数的类型(字节或字数据)。(1)MOV SI,1000H答:答: 源操作数是立即数寻址;目的操作数是寄存器寻址;传送的是字数据。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1727例题例题1、指出各指令中源操作数和目的操作数的寻址方式,、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。并说明操作数的类型(字节或字数据)。(2)MOV BL,1000H答:答:源操作数是内存寻址中的源操作数是内存寻址中的直接寻址
21、直接寻址EA=1000H;目的操作数是目的操作数是寄存器寻址寄存器寻址;传送的是传送的是字节数据字节数据。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1728例题例题1、指出各指令中源操作数和目的操作数的寻址方式,、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。并说明操作数的类型(字节或字数据)。(3)MOV BX+0100H,CX答:答:源操作数是源操作数是寄存器寻址寄存器寻址;目的操作数是内存寻址中的目的操作数是内存寻址中的相对基址寻址相对基址寻址,EA=BX+0100H;传送的是传送的是字数据字数据。第三章第三章
22、8086/8088 8086/8088指令系统指令系统2021-10-1729例题例题1、指出各指令中源操作数和目的操作数的寻址方式,、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。并说明操作数的类型(字节或字数据)。(4)MOV BYTE PTRBXSI,100答:答:源操作数是源操作数是立即数寻址立即数寻址,十进制数,十进制数100;目的操作数是内存寻址中目的操作数是内存寻址中基址变址寻址基址变址寻址,EA=BX+SI;传送的是传送的是字节数据字节数据。说明:斜体字是伪指令,表示是字节说明:斜体字是伪指令,表示是字节第三章第三章 8086/8088 808
23、6/8088指令系统指令系统2021-10-1730例题例题1、指出各指令中源操作数和目的操作数的寻址方、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。式,并说明操作数的类型(字节或字数据)。(5)MOV AX,BX+DI+0004H答:答:源操作数是内存寻址中的源操作数是内存寻址中的相对基址变址寻址相对基址变址寻址,EA=BX+DI+0004H;目的操作数是目的操作数是寄存器寻址寄存器寻址;传送的是传送的是字数据字数据。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1731例题例题1、指出各指令中源操作数和目的操作数的寻
24、址方式,、指出各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(字节或字数据)。并说明操作数的类型(字节或字数据)。(6)MOV AX,BX答:答:源操作数是内存寻址中的源操作数是内存寻址中的寄存器间接寻址寄存器间接寻址,EA=BX;目的操作数是目的操作数是寄存器寻址寄存器寻址;传送的是传送的是字数据字数据。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17321、通用数据传送指令、通用数据传送指令(1)MOV指令指令 注意点注意点(2)PUSH和和POP指令指令(3)交换指令)交换指令XCHG(4)换码指令)换码指令XLAT第三章第三章 808
25、6/8088 8086/8088指令系统指令系统2021-10-1733换码指令换码指令XLAT指令格式指令格式: XLAT 表首址表首址(表首址可省略)(表首址可省略)指令功能指令功能:将:将AL中的值转换为内存表格中某一值后,中的值转换为内存表格中某一值后,再送回再送回AL。 这条指令完成一个字节的查表转换,指令隐含这条指令完成一个字节的查表转换,指令隐含规定用规定用BX和和AL,两者之和为访问的内存单元。两者之和为访问的内存单元。例题例题 第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1734换码指令换码指令XLAT 例题:设计一个例题:设计一个09
26、的平方表,通过换码指令求出对应的平方表,通过换码指令求出对应的的09的数的平方。的数的平方。解:解: SQUR_TAB DB 0,1,4,9,16,25,36,49,64,81 ;首先在内存中首先在内存中 ;设一个数据表;设一个数据表 ;开始使用开始使用 LEA BX, SQUR_TAB ;将表首偏移地址装入将表首偏移地址装入BX MOV AL, 05H ;求求5的平方的平方 XLAT ;换码,此时换码,此时AL内的值即为内的值即为25第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17352、地址传送指令、地址传送指令 地址传送指令主要用来将地址指针装入有
27、关寄地址传送指令主要用来将地址指针装入有关寄存器。存器。(1)装入有效地址指令装入有效地址指令(2)装入数据段寄存器指令装入数据段寄存器指令(3)装入附加段寄存器装入附加段寄存器第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1736(1)装入有效地址指令)装入有效地址指令(Load Effective Address) 指令格式指令格式:LEA dst,src 指令功能指令功能:EASRCdst(通用寄存器)通用寄存器) 这条指令用来将源操作数(内存操作数)的有效地址这条指令用来将源操作数(内存操作数)的有效地址EA装入通用寄存器。装入通用寄存器。 不影响
28、标志位。不影响标志位。LEA AX,1000H 执行指令后,执行指令后,AX=1000H;LEA AX,BX 执行指令后,执行指令后,AX=BX;(注意区别:注意区别:MOV AX,BX )LEA BX, data ;data是一个变量,或称为符号地址是一个变量,或称为符号地址 执行指令后,执行指令后,BX等于变量等于变量data的偏移地址。的偏移地址。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1737(2)装入数据段寄存器指令)装入数据段寄存器指令(Load Data Segment Register) 指令格式指令格式:LDS dst,src 指令
29、功能指令功能:src给出的是有效地址,低字送给出的是有效地址,低字送dst ,高字送高字送DS。 这条指令用来将内存中的双字数据(这条指令用来将内存中的双字数据(4个字节)个字节)装入通用寄存器和数据段寄存器装入通用寄存器和数据段寄存器DS。例:已知例:已知DS=1000H,(,(11500H)=2345H,(11502H)=ABCDH请问,执行指令请问,执行指令LDS SI,1500H,SI=?DS=?答:答:SI=2345H,DS=ABCDH第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1738(3)装入附加段寄存器)装入附加段寄存器(Load Ext
30、ra Segment Register) 指令格式指令格式:LES dst,src 指令功能指令功能 :src给出的是有效地址,低字送给出的是有效地址,低字送dst ,高字送高字送ES。 这条指令用来将内存中的双字数据装入通用寄这条指令用来将内存中的双字数据装入通用寄存器和附加段寄存器存器和附加段寄存器ES。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1739(1)MOV指令指令 是基本传送类指令,实现字或字节数据的复制。是基本传送类指令,实现字或字节数据的复制。指令格式:指令格式:MOV dst,src指令功能:将源操作数指令功能:将源操作数src,传
31、送到目的操作数传送到目的操作数dst中。中。如:如:MOV AL,12H 功能:执行指令就是将立即数功能:执行指令就是将立即数12H传送到传送到AL中,中,执行完指令后执行完指令后AL=12H。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1740(1)MOV指令指令MOV传送类指令可以实现六种形式的传送:传送类指令可以实现六种形式的传送:立即数送寄存器;立即数送寄存器;如:如:MOV BX,1122H ;BX=1122H立即数送存储单元;立即数送存储单元;如:如: MOV BX,1122H ;将将1122H送到送到EA=BX ;的内存单元中的内存单元中第
32、三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1741(1)MOV指令指令通用寄存器之间的传送;通用寄存器之间的传送;如:如: MOV BX,AX ;BX=AX MOV AL,AH ;AL=AH通用寄存器和段寄存器之间的传送;通用寄存器和段寄存器之间的传送;如:如:MOV DS,AX ;DS=AX MOV AX,ES ;AX=ES第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1742(1)MOV指令指令通用寄存器和存储单元之间的传送;通用寄存器和存储单元之间的传送;如:如: MOV AL,BX ;将将EA=BX的内存单元
33、的内存单元 ;的内容送寄存器;的内容送寄存器AL MOV 1400H,BX ;将将BX的内容送的内容送EA=1400 ;的内存单元;的内存单元段寄存器和存储单元之间的传送。段寄存器和存储单元之间的传送。如:如: MOV 1400H,CS ;将将CS的内容送的内容送EA=1400 ;的内存单元;的内存单元 MOV DS,BX ;将将EABX的内存单元内容的内存单元内容 ;送;送DS第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1743例题例题设设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=
34、1352H,SI=1354H,(11350H)=0A5H,(11351H)3CH,(11352H)=0FFH ,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H,求以下各指令执行后的值。求以下各指令执行后的值。(1)MOV AX,1352H AX=?答:答:AX=1352H第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1744例题例题设设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH
35、,BP=1200H,SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H,求以下各指令执行后的值。求以下各指令执行后的值。(2)MOV AX,1352H AX=?答:答:EA=1352H, DS=1000H,内存单元地址内存单元地址=DS10H+EA=11352H,所以,所以,AX=26FFH第三章第三章 8086/8088 8086/8088指令系统
36、指令系统2021-10-1745例题例题设设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H,求以下各指令执行后的值。求以下各指令执行后的值。(3)MOV 0150HBX,CH (11350H)=?(?(11351H)=?答:答:因为因为 E
37、A=BX+0150H=1350H,CH=33H,内存单元地址内存单元地址=DS10H+1350H=11350H,所以,(所以,(11350H)=33H, (11351H)=3CH第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1746例题例题设设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H
38、)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H,求以下各指令执行后的值。求以下各指令执行后的值。(4)MOV AX,0150HBP AX=?答:答:因为因为 EA=BP+0150H=1350H,内存单元的地址内存单元的地址=SS10H+1350H=21350H所以,所以,AX=5188H第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1747使用使用MOV的的注意点注意点(1)两个操作数的类型必须一致;)两个操作数的类型必须一致;(2)两个操作数不能同时为存储器操作数两个操作数不能同时为存储器操作数;(3)不能用)不
39、能用CS做目的操作数;做目的操作数;(4)不允许用立即数做目的操作数;)不允许用立即数做目的操作数;(5)不允许用立即数直接向段寄存器传送数据;)不允许用立即数直接向段寄存器传送数据;(6)不允许在段寄存器之间直接传送数据;)不允许在段寄存器之间直接传送数据;传送指令不影响标志位!传送指令不影响标志位!第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1748两个操作数不能同时都是存储器操作数两个操作数不能同时都是存储器操作数 如图所示,如果想将(如图所示,如果想将(21233H)的内容的内容传送到(传送到(21235H),),必须通过寄存器中转。必须通过寄存
40、器中转。 通过两条指令实现:通过两条指令实现: MOV AH,1233H21233H20000H当前数据段当前数据段A1H21235HFFH内存单元地址内存单元地址 内存单元内容内存单元内容21234HAHFFHFFHMOV 1235H, AH第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1749(2)PUSH和和POP指令(堆栈操作指令)指令(堆栈操作指令) 堆栈段是用来保存数据和地址的一个存储区。堆栈段是用来保存数据和地址的一个存储区。堆栈堆栈段寄存器用段寄存器用SS表示,堆栈段栈顶指针是表示,堆栈段栈顶指针是SP(隐隐含)。含)。 由于堆栈段只有一个
41、出入口,堆栈操作按由于堆栈段只有一个出入口,堆栈操作按先入先入后出后出的方式工作。的方式工作。 入栈指令入栈指令PUSH 出栈指令出栈指令POP不影响标志位!不影响标志位!第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1750入栈指令入栈指令PUSH指令格式指令格式:PUSH src指令功能指令功能:SP2SP(隐含操作)隐含操作) ; 将将字数据字数据src送到送到EA=SP的堆栈段内的堆栈段内;如:如:PUSH AX第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1751入栈指令入栈指令PUSH指令指令PUSH AX
42、的执行情况的执行情况堆堆栈栈段段低地址低地址高地址高地址SP执行执行 PUSH AX指令前指令前YYYY.设设 AX3412H设设 SP 1000H堆堆栈栈段段低地址低地址高地址高地址SP1234YYYY执行执行PUSH AX指令后指令后.SP 0FFEH第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1752出栈指令出栈指令POP指令格式指令格式:POP dst指令功能指令功能:将:将EA=SP的的字字送到目的操作数送到目的操作数dst中,中, SP+2SP(隐含操作)。隐含操作)。如:如:POP BX例题例题第三章第三章 8086/8088 8086/8
43、088指令系统指令系统2021-10-1753例题例题设设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21352H)=88H,(21353H)=51H,求以下各指令执行后的值。求以下各指令执行后的值。(1)POP AX AX=?SP=?答:答:出栈指令先传送字数据,出栈指令先传送字数
44、据, 因为因为SP=1352H,SS=2000H,字地址字地址=SS10H+SP=21352H,所以,所以,AX=5188H, 再修改再修改SP=SP+2=1354H第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1754(3)XCHG指令指令指令格式指令格式:XCHG dst, src指令功能指令功能:dst src,8位、位、16位均可位均可如:如:XCHG AX,BX XCHG CL,BX+DI不影响标志位!不影响标志位!注意注意: 不能使用段寄存器和立即数;不能使用段寄存器和立即数; 不能在两个存储单元之间进行。不能在两个存储单元之间进行。第三章第三
45、章 8086/8088 8086/8088指令系统指令系统2021-10-17553、状态标志传送指令、状态标志传送指令(1)标志位装入寄存器标志位装入寄存器AH指令指令(2)寄存器寄存器AH送标志寄存器指令送标志寄存器指令(3)标志寄存器进栈指令标志寄存器进栈指令(4)标志寄存器出栈指令标志寄存器出栈指令第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1756(1)标志位装入寄存器)标志位装入寄存器AH指令指令不影响标志位。不影响标志位。ZFSFCFAFPF指令格式指令格式:LAHF指令功能指令功能:将标志寄存器的低:将标志寄存器的低8位送位送AH。即即第
46、三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1757(2)寄存器)寄存器AH送标志寄存器指令送标志寄存器指令 指令格式指令格式:SAHF 指令功能指令功能:将寄存器:将寄存器AH的值送标志寄存器的的值送标志寄存器的低字节低字节。 即设置即设置SF、ZF、AF、PF和和CF的值。的值。ZFSFCFAFPF第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1758(3)标志寄存器进栈指令)标志寄存器进栈指令指令格式指令格式:PUSHF指令功能指令功能:SP2SP; 将将16位标志寄存器的值入栈;位标志寄存器的值入栈;不影响标志
47、位。不影响标志位。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1759(4)标志寄存器出栈指令)标志寄存器出栈指令指令格式指令格式:POPF指令功能指令功能:先将:先将EA=SP所指内存的字送标志寄存器;所指内存的字送标志寄存器; SP+2SP。标志位发生变化标志位发生变化。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17601、加法运算指令、加法运算指令(1)加法指令加法指令ADD(2)带进位加法指令带进位加法指令ADC(3)加加1指令指令INC(4)压缩的压缩的BCD码加法调整指令码加法调整指令DAA(5)非压
48、缩的非压缩的BCD码加法调整指令码加法调整指令AAA第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17612、减法指令、减法指令(1)减法指令减法指令SUB(2)带借位的减法指令带借位的减法指令SBB(3)减减1指令指令DEC(4)求补指令求补指令NEG(5)比较指令比较指令(6)压缩压缩BCD码减法调整指令码减法调整指令DAS(7)非压缩非压缩BCD码减法调整指令码减法调整指令AAS第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17623、乘法指令、乘法指令(1)无符号数乘法指令无符号数乘法指令MUL(2)带符号数乘
49、法指令带符号数乘法指令IMUL(3)非压缩非压缩BCD码乘法调整指令码乘法调整指令第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-17634、除法指令、除法指令(1)无符号数除法指令无符号数除法指令DIV(2)带符号数除法指令带符号数除法指令IDIV(3)字节扩展指令字节扩展指令CBW(4)字扩展成双字指令字扩展成双字指令CWD(5)非压缩非压缩BCD码除法调整指令码除法调整指令AAD第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1764(1)加法指令加法指令ADD指令格式:指令格式:ADD dst,src指令功能指令功
50、能: (dst)+(src)(dst) 所有标志位随运算结果发生变化。如:所有标志位随运算结果发生变化。如: ADD AX,3A5FH;AX+3A5FHAXADD AL,BX;将将EA=BX的内存单元的的内存单元的;内容;内容+ALALADD BX,AX;将将EA=BX的内存内容的内存内容; +AX 该内存单元该内存单元第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1765(2)带进位加法指令带进位加法指令ADC指令格式指令格式:ADC dst,src指令功能指令功能: (dst)+(src)+CF(dst) 所有标志位随运算结果变化。如:所有标志位随运算
51、结果变化。如:ADC AX,BX;AX+BX+CFAXADC AL,BX;将将EA=BX的内存单元的的内存单元的;内容;内容+AL+CFALADC BX,AX;将将EA=BX的内存内容的内存内容+AX ; +CF 该内存单元该内存单元例题例题第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1766例例1 设原设原AL=79H,BH=0B3H,求执行指令求执行指令ADD AL,BH后,后, AL=? BH=? 各个标各个标志位的值志位的值?解:解: 79H= 0111 1001B+) B3H= 1011 0011B0010 1100B1所以,所以,AL=001
52、0 1100B=2CH,BH=0B3HSF=0, ZF=0,AF=0,PF=0,CF=1,OF=0。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1767例例2求两个双字数据相加。假设求两个双字数据相加。假设数据数据1在在DX(高字高字)和和AX(低字低字)内,为内,为12345678H,数据数据2在在BX(高字高字)和和CX(低字低字)内,为内,为6789ABCDH。解:解:因为因为8086/80888086/8088的指令只能进行字的指令只能进行字/ /字节运算,字节运算, 所以对于双字必须分两步进行所以对于双字必须分两步进行。第三章第三章 8086/
53、8088 8086/8088指令系统指令系统2021-10-1768例2求两个双字数据相加。求两个双字数据相加。数据数据1在在DX(高字高字)和和AX(低字低字)内,为内,为12345678H,数据数据2在在BX(高字高字)和和CX(低字低字)内,为内,为6789ABCDH。解:解:因为因为8086/8088的指令只能进行字的指令只能进行字/字节运算,字节运算, 所以对于双字必须分两步进行。所以对于双字必须分两步进行。第一步,低字和低字相加:第一步,低字和低字相加: ADD AX, CXAX= 5 6 7 8H+) CX= ABCDHAX= 0 2 4 5HCF= 1第三章第三章 8086/8
54、088 8086/8088指令系统指令系统2021-10-1769例例2求两个双字数据相加。求两个双字数据相加。数据数据1在在DX(高字高字)和和AX(低字低字)内,为内,为12345678H,数据数据2在在BX(高字高字)和和CX(低字低字)内,为内,为6789ABCDH。解解:第二步,高字和高字相加,同时考虑低字之和第二步,高字和高字相加,同时考虑低字之和向高字进位:向高字进位:ADC DX, BXDX= 1 2 3 4HBX= 6 7 8 9H+) CF= 1DX= 7 9 B EH CF= 0所以双字之和是所以双字之和是79BE 0245H, CF=0第三章第三章 8086/8088
55、8086/8088指令系统指令系统2021-10-1770例例2求两个双字数据相加。求两个双字数据相加。数据数据1在在DX(高字高字)和和AX(低字低字)内,为内,为12345678H,数据数据2在在BX(高字高字)和和CX(低字低字)内,为内,为6789ABCDH。解:解: 因此,本题要求的双字相加,由两条指令完成:因此,本题要求的双字相加,由两条指令完成: ADD AX, CX ADC DX, BX第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1771(3)加加1指令指令INC指令格式:指令格式:INC dst指令功能指令功能: (dst)+1(dst
56、) CF不受影响,其他标志位随运算结果变化。如:不受影响,其他标志位随运算结果变化。如:INC AX;AX+1AXINC CL;CL+1CLINC BX;将将EA=BX的内存单元内容的内存单元内容; +1 该内存单元该内存单元第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1772(4)压缩的压缩的BCD码加法调整指令码加法调整指令DAA指令格式指令格式:DAA指令功能指令功能:对:对AL中的中的压缩压缩BCD数加法结果数加法结果自动调整,自动调整,分两种情况进行:分两种情况进行: 当当AL低低4位位9或或AF=1时,时, AL+06HAL, 1AF; 当当
57、AL的高的高4位位9或或CF=1时,时, AL+60H AL, 1 CF。 例题例题第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1773例题例题已知两个压缩已知两个压缩BCD码码AL=38H和和BL=24H,对其求对其求和。和。解:解: 第一步第一步 ADD AL,BL 38BCD = 0011 1000B +) 24BCD = 0010 0100B0101 1100B (=5CH)62BCD 显然,执行加法指令与实际结果不符合。显然,执行加法指令与实际结果不符合。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-177
58、4例题例题解:第二步解:第二步 DAA ;注意隐含操作,只对注意隐含操作,只对AL进进;行调整;行调整0101 1100B (=5CH,则低则低4位位9) 0110B (=06H)0110 0010B (=62H即为即为62BCD)+) 所以所以,对于压缩,对于压缩BCD码,在进行加法运算后,码,在进行加法运算后,必须紧跟一条调整指令必须紧跟一条调整指令DAA,以保证计算结果正确。以保证计算结果正确。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1775例题例题已知两个压缩已知两个压缩BCD码码AL=38H和和BL=24H,对其求和。对其求和。解:解: 因
59、此,对两个压缩因此,对两个压缩BCD码进行加法,需要如下码进行加法,需要如下两条指令完成:两条指令完成: ADD AL,BL DAA ;对对AL进行调整进行调整第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1776(5)非压缩的非压缩的BCD码加法调整指令码加法调整指令AAA 指令格式:指令格式: AAA 指令功能:指令功能: 对对AL中的两个中的两个非压缩非压缩BCD码码加法加法结果进行调整,使之成为正确的结果。结果进行调整,使之成为正确的结果。 对于非压缩对于非压缩BCD码,在进行加法运算后,必码,在进行加法运算后,必须紧跟一条调整指令须紧跟一条调整指
60、令AAA,以保证运算结果的正以保证运算结果的正确性。确性。第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1777(1)减法指令减法指令SUB指令格式指令格式:SUB dst, src指令功能指令功能: (dst)(src)(dst)例如:例如:SUB AX,3A5FH ;AX3A5FHAXSUB AL,BX;将将AL (EA=BX)的内存的内存;单元的内容;单元的内容ALSUB BX,AX;将将EA=BX的内存内容的内存内容AX ; 该内存单元该内存单元第三章第三章 8086/8088 8086/8088指令系统指令系统2021-10-1778(2)带借位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小微企业货运司机劳动合同范本
- 2026 湖南 事业单位政府服务中心结构化面试高频强化训练卷含解析
- 2026 事业单位政府服务中心含解析
- 2026下半年高中语文教资面试古诗文重难点题库
- 2026年安全驾驶教练职业技能等级认定操作技能历年真题
- 2026年普通高等学校招生全国统一考试(全国乙卷)化学答案
- 2025年吉林省公主岭市高考历史模拟卷含答案【基础题】
- 2025年吉林省大安市高二生物下册期末考试模拟检测卷(各地真题)附答案
- 2026宠物经济产业链延伸与高端化发展趋势预测
- 2026光刻胶残留物清洗剂环保替代方案与成本效益分析报告
- 2026中国进出口银行招聘考试(专业知识)历年参考题库含答案详解
- (2026秋新版)部编版道德与法治四年级上册全册教案
- 2026年4月自考00037美学试题及答案含评分参考
- (新教材)2026年部编人教版一年级上册语文 6 j q x 课件
- 挖掘机租赁合同标准范本下载
- 减震垫片施工方案
- 责任心和执行力培训课件
- 2025年山西省教师职称考试(思想政治/道德与法治)历年参考题库含答案详解(5卷)
- 桉树买卖合同(2025版)
- 第9谭《艺术与科技的新结合》课件-2024-2025学年赣美版(2024)初中美术九年级上册
- DZ/T 0054-2014定向钻探技术规程
评论
0/150
提交评论