四章指令系统.ppt
《四章指令系统.ppt》由会员分享,可在线阅读,更多相关《四章指令系统.ppt(126页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、四章指令系统 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望一、一、8086/8088指令系统的特点指令系统的特点1.指令系统的兼容性指令系统的兼容性2.指令格式的灵活性指令格式的灵活性3.寻址方式的多样性寻址方式的多样性4.可对多种类型的数据进行处理可对多种类型的数据进行处理5.可构成多处理机系统可构成多处理机系统2二、指令格式指令:指令:指令是指示计算机完成特定操作的命令指令是指示计算机完成特定操作的命令指令系统:指令系统:指令系统是计算机能够执行全部命令的集
2、合,指令系统是计算机能够执行全部命令的集合,它取决于计算机的硬件设计。指令系统它取决于计算机的硬件设计。指令系统因机而异,没有通用性。因机而异,没有通用性。指令中应包含的信息:指令中应包含的信息:执行的运算执行的运算运算结果的去向运算结果的去向运算数据的来源运算数据的来源3指令格式:指令格式:指令格式:指令格式:操作码操作码操作数操作数,操作数操作数执行何种操作执行何种操作目的操作数目的操作数源操作数源操作数参加操作的数据参加操作的数据源操作数:源操作数:指令加工之前的数据指令加工之前的数据目的操作数:指令加工之后形成的数据目的操作数:指令加工之后形成的数据4 指令中的操作数表征方法指令中的操
3、作数表征方法指令中的操作数表征方法指令中的操作数表征方法:表征参加操作的数据本身表征参加操作的数据本身立即数立即数表征数据存放的地址表征数据存放的地址 寄存器寄存器 存储器存储器5操作数类型操作数类型1、立即数操作数:、立即数操作数:表示参加操作的数据本身,可以是表示参加操作的数据本身,可以是8位或位或16位位例:例:MOVAX,1234H;AX1234HMOVBL,22H立即数无法作为目标操作数立即数无法作为目标操作数立即数可以是无符号或带符号数,其数值应在立即数可以是无符号或带符号数,其数值应在可取值范围内可取值范围内62、寄存器操作数:、寄存器操作数:表示参加运算的数存放在指令给出的寄存
4、器中,可表示参加运算的数存放在指令给出的寄存器中,可以是以是16位或位或8位。位。例:例:MOVAX,BXMOVDL,CH73、存储器操作数:、存储器操作数:l例:例:MOVAX,1200HMOVAL,1200H22H11H1200H偏移地址偏移地址AHAL8例如:例如:MOVAL,BP该指令生成的机器码是该指令生成的机器码是8A4600H9三、寻址方式三、寻址方式计算机可以对存储器、寄存器中的数据进行各种操计算机可以对存储器、寄存器中的数据进行各种操作,如取数、存数、加运算、减运算等,这就需要找到作,如取数、存数、加运算、减运算等,这就需要找到数据的存放地址,再对其中的数据执行相应的操作,最
5、数据的存放地址,再对其中的数据执行相应的操作,最后将运算结果送往指定的地址单元或寄存器。后将运算结果送往指定的地址单元或寄存器。指令的寻指令的寻址方式就是寻找指令操作数所在地址的方式址方式就是寻找指令操作数所在地址的方式,以确定数,以确定数据的来源和去处。熟练地掌握寻址方式对学习指令系统据的来源和去处。熟练地掌握寻址方式对学习指令系统和汇编语言程序设计具有重要作用。和汇编语言程序设计具有重要作用。下面介绍下面介绍8086/8088的几种寻址方式。的几种寻址方式。101.立即寻址立即寻址l指令操作数部分直接给出指令的操作数,它与指令操指令操作数部分直接给出指令的操作数,它与指令操作码相接,顺序存
6、放在代码段中。立即数有作码相接,顺序存放在代码段中。立即数有8位和位和16位之分。位之分。例例1:MOVAH,36H;AH立即数立即数36HMOVCX,2A50H;CX立即数立即数2A50H11注意:注意:(1)立即寻址方式只能用于源操作数,主要用于给寄立即寻址方式只能用于源操作数,主要用于给寄存器赋值。存器赋值。(2)立即寻址方式不执行总线周期,执行速度快。立即寻址方式不执行总线周期,执行速度快。2.寄存器寻址寄存器寻址l操作数放在寄存器内,由指令直接给出某个寄存器操作数放在寄存器内,由指令直接给出某个寄存器的名字,以寄存器的内容作为操作数。的名字,以寄存器的内容作为操作数。l寄存器可以是寄
7、存器可以是16位的位的AX、BX、CX、DX、SI、DI、SP、BP寄存器,也可以是寄存器,也可以是8位的位的AH、AL、BH、BL、CH、CL、DH、DL寄存器。寄存器。12例例2:MOVAX,CXDECAL注意:注意:(1)寄存器寻址方式的指令操作在寄存器寻址方式的指令操作在CPU内部执行,内部执行,不需要执行总线周期,执行速度快。不需要执行总线周期,执行速度快。(2)寄存器寻址方式既适用于指令的源操作数,也寄存器寻址方式既适用于指令的源操作数,也适用于目的操作数,并且可同时用于源操作数和目适用于目的操作数,并且可同时用于源操作数和目的操作数。的操作数。133.直接寻址直接寻址l操作数在存
8、储器中,指令中直接给出操作数所在存储操作数在存储器中,指令中直接给出操作数所在存储单元的有效地址单元的有效地址EA,即段内偏移地址,表示操作数所即段内偏移地址,表示操作数所在存储单元距离段首址的字节数。有效地址是一个无在存储单元距离段首址的字节数。有效地址是一个无符号的符号的16位二进制数。位二进制数。例例3:MOVAH,2100H;将将DS段中段中2100H单元的内单元的内容送给容送给AHMOVAX,2100H;将将DS段中段中2100H单元的内单元的内容送给容送给AL;2101H单元的单元的内容送给内容送给AH。MOV1000H,AH;DS:1000H(AH)14DS=3000HMOVAX
9、,2000H15注意:注意:(1)直接寻址方式的操作数所在存储单元的段地址直接寻址方式的操作数所在存储单元的段地址一般在数据段寄存器一般在数据段寄存器DS中。中。(2)如果操作数在其他段,则需要在指令中用段超如果操作数在其他段,则需要在指令中用段超越前缀指出相应的段寄存器名。越前缀指出相应的段寄存器名。例例4:MOVAH,ES 2000H将附加段寄存器将附加段寄存器ES的内容乘的内容乘16,再加上,再加上2000H作为操作数所在存储单元的地址,取作为操作数所在存储单元的地址,取出该存储单元的内容送到寄存器出该存储单元的内容送到寄存器AH中。中。164.寄存器间接寻址寄存器间接寻址l操作数在存储
10、器中,指令中寄存器的内容作为操作操作数在存储器中,指令中寄存器的内容作为操作数所在存储单元的有效地址数所在存储单元的有效地址EA(偏移地址)。寄存偏移地址)。寄存器仅限于器仅限于BX、BP,SI、DI。l当使用当使用BX、SI、DI时,操作数所在存储单元的段地时,操作数所在存储单元的段地址存在数据段寄存器址存在数据段寄存器DS中中l当使用当使用BP时,操作数所在存储单元的段地址存在时,操作数所在存储单元的段地址存在堆栈段寄存器堆栈段寄存器SS中。中。SIDIBXBPEA=17MOVBX,SI18例例5:已知:已知:DS=2100H,DI=2000H指令:指令:MOVAX,DI解:解:物理地址物
11、理地址=16DS+DI=162100H+2000H=23000H指令执行结果是将指令执行结果是将23000H和和23001H单元的内容送单元的内容送入寄存器入寄存器AX中。中。注意:注意:1.只有只有SI,DI,BX,BP可作为间址寄存器。可作为间址寄存器。2.若操作数所在存储单元不在数据段若操作数所在存储单元不在数据段DS中,需要在指中,需要在指令中用段超越前缀表明其所在段的段名。令中用段超越前缀表明其所在段的段名。195.基址寻址基址寻址l操作数在存储器内,指令中寄存器(操作数在存储器内,指令中寄存器(BX或或BP)的内容的内容与指令指定的位移量之和作为操作数所在存储单元的与指令指定的位移
12、量之和作为操作数所在存储单元的有效地址有效地址EA(偏移地址)。偏移地址)。l使用使用BX时,段地址为时,段地址为DS的内容;的内容;使用使用BP时,段地址为时,段地址为SS的内容。的内容。BX8位或位或16位位BP位移量位移量EA=+20例例6:SS=2000H,BP=1000H,COUNT=2000H(16位偏移量位偏移量)指令:指令:MOVAX,COUNTBP解:物解:物理地址理地址=16SS+BP+16位偏移量位偏移量=20000H+1000H+2000H=23000H指令执行结果是将指令执行结果是将23000H和和23001H单元的内容送单元的内容送入寄存器入寄存器AX中。中。MOV
13、BL,2BX或或MOVBL,BX+2;(DS:BX+2)BL216.变址寻址变址寻址l操作数在存储器内,指令将变址寄存器操作数在存储器内,指令将变址寄存器SI、DI内容与内容与指令指定的位移量之和作为操作数所在存储单元的有指令指定的位移量之和作为操作数所在存储单元的有效地址效地址EA(偏移地址)。段地址规定为偏移地址)。段地址规定为DS的内容。的内容。SI8位或位或16位位DI位移量位移量EA=+例例7:DS=3000H,SI=1000H,COUNT=2000H指令:指令:MOVAX,COUNTSI解:物理地址解:物理地址=16DS+SI+16位偏移量位偏移量=30000H+1000H+200
14、0H=33000H指令执行结果是将指令执行结果是将33000H和和33001H单元的内容送入单元的内容送入寄存器寄存器AX中。中。22MOVAX,2DI;AX(DS:(DI)+2)MOVAX,DI+2;AX(DS:(DI)+2)MOVBX,COUNTSI237.基址基址加变址寻址加变址寻址l操作数在存储器内。指令将基址寄存器操作数在存储器内。指令将基址寄存器BX、BP与变与变址寄存器址寄存器SI、DI的内容之和再加上偏移量(的内容之和再加上偏移量(8位或位或16位),得到操作数所在存储单元的有效地址位),得到操作数所在存储单元的有效地址EA。l当使用当使用BX时,段寄存器为时,段寄存器为DS。
15、当使用当使用BP时,段寄存器为时,段寄存器为SS。BXSI8位或位或16位位BPDI位移量位移量EA=+24例例8:已知:已知:DS=2000H,BX=1000H,SI=0500H,MK=1120H指令:指令:MOVAX,MKBXSI解:解:物理地址物理地址=20000H1000H0500H1120H=22620H指令执行结果是指令执行结果是将将22620H、22621H单元单元的内容送入寄存器的内容送入寄存器AX中。中。25MOVAX,BXSI268.字符串寻址字符串寻址l用于字符串操作指令。规定变址寄存器用于字符串操作指令。规定变址寄存器SI中的内容中的内容是源数据串的段内偏移地址,而变址
16、寄存器是源数据串的段内偏移地址,而变址寄存器DI中的中的内容是目标数据串的段内偏移地址。内容是目标数据串的段内偏移地址。l源数据串的段地址规定是数据段源数据串的段地址规定是数据段DS,目标数据串目标数据串的段地址规定是附加段的段地址规定是附加段ES。指令执行后指令执行后SI和和DI的的内容自动增量(或减量),增(或减)值为内容自动增量(或减量),增(或减)值为1或或2。例例:MOVSB执行后:执行后:DISISISI1DIDI127 9.9.I/OI/O端口寻址端口寻址l寻找输入输出设备的端口地址,可分为直接端口寻寻找输入输出设备的端口地址,可分为直接端口寻址址和间接端口寻址。和间接端口寻址。
17、直接端口寻址直接端口寻址:由指令直接给出:由指令直接给出I/O设备的端口地址。设备的端口地址。它规定端口地址为它规定端口地址为8位,能寻址位,能寻址256个端口个端口间接端口寻址间接端口寻址:由:由DX给出给出I/O设备的端口地址。由于设备的端口地址。由于DX是是16位,因此间接端口寻址能寻址多达位,因此间接端口寻址能寻址多达64K个端口。个端口。例:例:INAL,20H;将地址为;将地址为20H的外设内容读入的外设内容读入AL中中OUTDX,AL;AL中内容输出给以中内容输出给以DX的内容为地址的内容为地址的外设的外设2810、隐含寻址隐含寻址指令隐含了的一个或两个操作数的地址,即操作数指令
18、隐含了的一个或两个操作数的地址,即操作数在默认的地址中。在默认的地址中。例:例:AAA;对对ALAL中的内容进行十进制加法调整,并中的内容进行十进制加法调整,并 把调整后的结果放入把调整后的结果放入AHAH和和ALAL中。这条指中。这条指令的隐含操作数是令的隐含操作数是AHAH和和ALAL。29例例:设设BX=0158H,DI=10A5H,位位移移量量=1B57H,DS=2100H,求求各各寻寻址址方方式式下的有效地址和物理地址。下的有效地址和物理地址。1)直接寻址直接寻址MOVAX,1B57H有效地址有效地址=1B57H物理地址物理地址=21000H+1B57H=22B57H2)寄存器间接寻
19、址寄存器间接寻址MOVAX,BX有效地址有效地址=0158H物理地址物理地址=21000H+0158H=21158H3)基址寻址基址寻址MOVAX,BX+1B57H有效地址有效地址=0158H+1B57H=1CAFH物理地址物理地址=21000H+1CAFH=22CAFH4)变址寻址变址寻址MOVAX,DI+1B57HEA=10A5H+1B57H=2BFCH物理地址物理地址=21000H+2BFCH=23BFCH5)基址加变址寻址基址加变址寻址MOVAX,BX+DI+1B57HEA=0158H+10A5H+1B57H=2D54H物理地址物理地址=21000H+2D54H=23D54H304.2
20、 8086的指令系统的指令系统指令系统包括九大类、指令系统包括九大类、133种基本指令,通过寻址种基本指令,通过寻址方式的变化与数据形式(字节、字型)的组合,可构方式的变化与数据形式(字节、字型)的组合,可构成上千条指令。指令系统按功能分为数据传送类、算成上千条指令。指令系统按功能分为数据传送类、算术运算类、逻辑运算与移位类、串操作类、控制转移术运算类、逻辑运算与移位类、串操作类、控制转移类、处理机控制、输入输出、中断等类、处理机控制、输入输出、中断等,本节将分别说本节将分别说明。明。314.2.1数据传送指令数据传送指令数据传送类指令实现数据传送类指令实现CPU内部寄存器之间、内部寄存器之间
21、、CPU与存与存储器之间、储器之间、CPU与与I/O端口之间的数据传送。端口之间的数据传送。1.通用数据传送指令通用数据传送指令包括包括MOV、进栈、出栈指令、交换指令和换码指令。、进栈、出栈指令、交换指令和换码指令。(1)一般数据传送指令)一般数据传送指令MOV(8位位/16位)位)格式:格式:MOVOP目,目,OP源源功能:功能:OP源源OP目目要求:要求:OP目目可以是寄存器(除可以是寄存器(除CSCS外)、存储器外)、存储器OP源源可以是寄存器、存储器和立即数可以是寄存器、存储器和立即数3233例:例:MOVAL,BL;BL寄存器的内容送寄存器的内容送ALMOVSP,2AC0H;立即数
22、立即数2AC0H送送SPMOVDI,AX;AX中的中的16位数送位数送DI和和DI+1单元单元 MOVSI,ES:BP;附加段中附加段中BP所指向的两个单所指向的两个单元的内容送元的内容送SI寄存器寄存器MOVWORDPTRSI,6070H34注意:注意:lMOV指令的两个操作数(源、目的)均可采用不同的指令的两个操作数(源、目的)均可采用不同的寻址方式。寻址方式。l源操作数和目的操作数的类型必须一致源操作数和目的操作数的类型必须一致l不允许把立即数作目的操作数,也不允许向段寄存器不允许把立即数作目的操作数,也不允许向段寄存器送立即数。送立即数。l不允许在段寄存器之间、存储器单元之间传送数据。
23、不允许在段寄存器之间、存储器单元之间传送数据。lCS、IP寄存器不能用作目的操作数。寄存器不能用作目的操作数。MOVCS,AX l一般传送指令不影响标志位。一般传送指令不影响标志位。35例:判断下列指令正确与否:例:判断下列指令正确与否:MOVAL,BLMOVCX,BXMOVBX,DLMOVDX,34HMOVDS,1234HMOVES,AXMOVCS,BXMOVSI,CXMOVDI,SIMOV2000H,AX 类型不一致类型不一致类型不一致类型不一致类型不一致类型不一致立即数不能送段寄存器立即数不能送段寄存器类型不一致类型不一致立即数不能送段寄存器立即数不能送段寄存器类型不一致类型不一致立即数
24、不能送段寄存器立即数不能送段寄存器CS不能作目的操作数不能作目的操作数类型不一致类型不一致立即数不能送段寄存器立即数不能送段寄存器CS不能作目的操作数不能作目的操作数类型不一致类型不一致立即数不能送段寄存器立即数不能送段寄存器CS不能作目的操作数不能作目的操作数不能同时为存储器操作数不能同时为存储器操作数类型不一致类型不一致立即数不能送段寄存器立即数不能送段寄存器CS不能作目的操作数不能作目的操作数不能同时为存储器操作数不能同时为存储器操作数目的不能为立即数目的不能为立即数36(2)堆栈操作指令堆栈操作指令堆栈:是按堆栈:是按“后进先出后进先出”原则工作的一段存储器区域。原则工作的一段存储器区
25、域。堆栈寄存器堆栈寄存器SS段地址段地址堆栈指针堆栈指针SP始终当前栈顶所在的存储单元地址,始终当前栈顶所在的存储单元地址,即最新入栈数据所在的存储单元的地址。即最新入栈数据所在的存储单元的地址。l压栈操作:压栈操作:PUSHOP功能:把功能:把OP字数据压入栈中,结果字数据压入栈中,结果SP-2SP原则:高字节压在高地址,低字节压在低地址原则:高字节压在高地址,低字节压在低地址执行过程:执行过程:SPSP-1;SPOPHSPSP-1;SPOPL37例:例:PUSHAX(1)SP-1SP,压压AH(2)SP-1SP,压压ALSPSPSP-1SPAHALSPSP-138l出栈操作:出栈操作:PO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统
限制150内