微型计算机系统原理及应用指令系统.pptx





《微型计算机系统原理及应用指令系统.pptx》由会员分享,可在线阅读,更多相关《微型计算机系统原理及应用指令系统.pptx(143页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1一、概述指令:指令是指示计算机完成特定操作的命令指令系统:指令系统是计算机能够执行全部命令的集合,它取决于计算机的硬件设计。指令系统因机而异,没有通用性。指令中应包含的信息:指令中应包含的信息:执行的运算运算结果的去向运算数据的来源第1页/共143页2指令格式:操作码操作数,操作数执行何种操作目的操作数源操作数参加操作的数据源操作数:指令加工之前的数据目的操作数:指令加工之后形成的数据第2页/共143页3指令中的操作数表征方法:表征参加操作的数据本身立即数表征数据存放的地址寄存器存储器第3页/共143页4指令中的操作数表征方法:表征参加操作的数据本身立即数表征数据存放的地址寄存器存储器第4页
2、/共143页51、立即数操作数:表示参加操作的数据本身,可以是8位或16位例:MOVAX,1234H;AX1234HMOVBL,22H注意:1)立即数只能用作源操作数,如MOV AL,86H MOV 86H,AL 2)立即数必须和其他操作数位数相等MOV AL,3456H MOV AX,34H 3)立即数不能直接送段寄存器第5页/共143页62、寄存器操作数:表示参加运算的数存放在指令给出的寄存器中,可以是16位或8位。例:MOVAX,BXMOVDL,CH第6页/共143页73、存储器操作数表示当前参加运算的操作数存放在内存数据区中,指令中直接或间接的给出此操作数的地址。操 作 数 的 物 理
3、 地 址=段 地 址+偏 移 地 址=段 基 址16+偏移地址段基址一般由数据段寄存器DS的内容来确定;段内偏移地址(有效地址EA)由指令的操作数部分指明。EA是不带符号的16位数,表示操作数所在地址与所在段的首址之间的字节距离。第7页/共143页8例:MOVAX,1200HMOVAL,1200HMOVAL,BX22H11H1200H偏移地址AHAL不允许源操作数和目标操作数同时为存储器操作数注意存储器操作数类型存储单元个数字节 字双字1个2个4个第8页/共143页92.1寻址方式:寻找指令中操作数所在地址的方法1.立即寻址指令操作数部分直接给出指令的操作数,它与指令操作码相接,顺序存放在代码
4、段中。例1:MOVAH,36H;AH立即数36HMOVCX,2A50H;CX立即数2A50H第9页/共143页10注意:(1)立即数寻址方式只能用于源操作数,主要用于给寄存器或存储单元赋值。(2)立即数寻址方式不执行总线周期,执行速度快。2.寄存器寻址方式l操作数放在寄存器内,由指令直接给出某个寄存器的名字,以寄存器的内容作为操作数。l寄存器可以是16位的AX、BX、CX、DX、SI、DI、SP、BP寄存器,也可以是8位的AH、AL、BH、BL、CH、CL、DH、DL寄存器。第10页/共143页11例2:MOVAX,CXDEC AL注意:(1)寄存器寻址方式的指令操作在CPU内部执行,不需要执
5、行总线周期,执行速度快。(2)寄存器寻址方式既适用于指令的源操作数,也适用于目的操作数,并且可同时用于源操作数和目的操作数。第11页/共143页123.直接寻址方式操作数在存储器中,指令中直接给出操作数所在存储单元的有效地址EA,即段内偏移地址,表示操作数所在存储单元距离段首址的字节数。有效地址是一个无符号的16位二进制数。例3:MOVAH,2100H;将DS段中2100H单元的内容送给AHMOVAX,2100H;将DS段中2100H单元的内容送给AL;2101H单元的内容送给AH。MOV1000H,AH;DS:1000H(AH)第12页/共143页13DS=3000HMOVAX,2000H第
6、13页/共143页14注意:(1)直接寻址方式的操作数所在存储单元的段地址一般在数据段寄存器DS中。(2)如果操作数在其他段,则需要在指令中用段超越前缀指出相应的段寄存器名。例4:MOVAH,ES 2000H将附加段寄存器ES的内容乘16,再加上2000H作为操作数所在存储单元的地址,取出该存储单元的内容送到寄存器AH中。第14页/共143页154.寄存器间接寻址方式操作数在存储器中,指令中寄存器的内容作为操作数所在存储单元的有效地址EA(偏移地址)。寄存器仅限于BX、BP,SI、DI。当使用BX、SI、DI作为间址寄存器时,操作数所在存储单元的段地址存在数据段寄存器DS中,当使用BP时,操作
7、数所在存储单元的段地址存在堆栈段寄存器SS中。SIDIBXBPEA=第15页/共143页16MOVBX,SI第16页/共143页17例5:已知:DS=2100H,DI=2000H指令:MOVAX,DI解:物理地址=16DS+DI=162100H+2000H=23000H指令执行结果是将23000H和23001H单元的内容送入寄存器AX中。注意:1.只有SI,DI,BX,BP可作为间址寄存器,如MOVAX,CX2.若操作数所在存储单元不在数据段DS中,需要在指令中用段超越前缀表明其所在段的段名。第17页/共143页185.变址寻址方式操作数在存储器内,指令将变址寄存器SI、DI内容与指令指定的位
8、移量之和作为操作数所在存储单元的有效地址EA(偏移地址)。段地址规定为DS的内容。SI8位或16位DI位移量EA=+例7:DS=3000H,SI=1000H,COUNT=2000H指令:MOVAX,COUNTSI解:物理地址=16DS+SI+16位偏移量=30000H+1000H+2000H=33000H指令执行结果是将33000H和33001H单元的内容送入寄存器AX中。第18页/共143页19MOVAX,2DI;AX(DS:(DI)+2)MOVAX,DI+2;AX(DS:(DI)+2)MOVBX,COUNTSI第19页/共143页206.基址寻址方式操作数在存储器内,指令中寄存器(BX或B
9、P)的内容与指令指定的位移量之和作为操作数所在存储单元的有效地址EA(偏移地址)。使用BX时,段地址为DS的内容;使用BP时,段地址为SS的内容。BX8位或16位BP位移量EA=+第20页/共143页21例6:SS=2000H,BP=1000H,COUNT=2000H(16位偏移量)指令:MOVAX,COUNTBP解:物理地址=16SS+BP+16位偏移量=20000H+1000H+2000H=23000H指令执行结果是将23000H和23001H单元的内容送入寄存器AX中。MOVBL,2BX或MOVBL,BX+2;(DS:BX+2)BL第21页/共143页227.基址加变址寻址方式操作数在存
10、储器内。指令将基址寄存器BX、BP与变址寄存器SI、DI的内容之和再加上偏移量(8位或16位),得到操作数所在存储单元的有效地址EA。当使用BX时,段寄存器为DS。当使用BP时,段寄存器为SS。BXSI8位或16位BPDI位移量EA=+第22页/共143页23例8:已知:DS=2000H,BX=1000H,SI=0500H,MK=1120H指令:MOVAX,MKBXSI解:物理地址=20000H1000H0500H1120H=22620H指令执行结果是将22620H、22621H单元的内容送入寄存器AX中。第23页/共143页24MOVAX,BXSI第24页/共143页25例:设BX=0158
11、H,DI=10A5H,位移量=1B57H,DS=2100H,求各寻址方式下,有效地址和物理地址。MOVAX,1B57H直接寻址:MOVAX,BX寄存器间接寻址(寄存器为BX):MOVAX,BX+1B57H基址寻址:有效地址=1B57H物理地址=21000H+1B57H=22B57H有效地址=0158H物理地址=21000H+0158H=21158H有效地址=0158H+1B57H=1CAFH物理地址=21000H+1CAFH=22CAFH第25页/共143页26MOVAX,DI变址寻址(寄存器为DI):MOVAX,DI+1B57H 变址寻址:MOVAX,BX+DI+1B57H基址加变址的寻址(
12、BX为基址寄存器,DI为变址寄存器):EA=10A5H物理地址=21000H+10A5H=220A5HEA=10A5H+1B57H=2BFCH物理地址=21000H+2BFCH=23BFCHEA=0158H+10A5H+1B57H=2D54H物理地址=21000H+2D54H=23D54H第26页/共143页27寻址方式举例例:MOV AX,1000H;AX=1000H MOVDS,AX;DS=1000H MOVAX,3000H;AX=3000H MOVSS,AX;SS=3000HMOVAX,22A0H;AX=22A0H MOVBX,AX;BX=22A0H MOVBP,AX;BP=22A0H
13、MOVSI,AX;SI=22A0H MOVDI,AX;DI=22A0H MOVAX,22A0H;AX=2010H MOVAX,SS22A0H ;AX=6050H MOVAX,BX+100H ;AX=4030H MOVAX,BP+100H;AX=8070H MOVAX,DI+100H;AX=4030H MOVAX,BP+DI+100H ;AX=90H 122A0H122A1H 123A0H123A1H 322A0H322A1H 323A0H323A1H 34640H34641H10H20H 30H40H 50H60H 70H80H 90H00H第27页/共143页282.28086的指令系统指令
14、系统包括九大类、133种基本指令,通过寻址方式的变化与数据形式(字节、字型)的组合,可构成上千条指令。指令系统按功能分为数据传送类、算术运算类、逻辑运算与移位类、串操作类、控制转移类、处理机控制类,本节将分别说明。目标:熟练掌握8086系统常用指令及各类寻址方式读懂简单的程序第28页/共143页29数据传送指令数据传送类指令实现CPU内部寄存器之间、CPU与存储器之间、CPU与I/O端口之间的数据传送。1.通用数据传送指令包括MOV、进栈、出栈指令、交换指令和换码指令。(1)一般数据传送指令MOV(8位/16位)格式:MOVOP目,OP源功能:OP源OP目要求:OP目可以是寄存器(除CSCS外
15、)、存储器OP源可以是寄存器、存储器和立即数第29页/共143页30第30页/共143页31例:MOVAL,BL;BL寄存器的内容送ALMOVSP,2AC0H;立即数2AC0H送SPMOV DI,AX;AX中的16位数送DI和DI+1单元MOVSI,ES:BP;附加段中BP所指向的两个单元的内容送SI寄存器第31页/共143页32注意:MOV指令的两个操作数(源、目的)均可采用不同的寻址方式。源操作数和目的操作数的类型必须一致不允许把立即数作目的操作数,也不允许向段寄存器直接送立即数。不允许在段寄存器之间、存储器单元之间直接传送数据。CS、IP寄存器不能用作目的操作数。MOVCS,AX一般传送
16、指令不影响标志位。第32页/共143页33例:判断下列指令正确与否:MOVAL,BLMOVCX,BXMOVDX,34HMOVES,AXMOVSI,CXMOVDI,SIMOV2000H,AXMOVDS,1234HMOVBX,DLMOVCS,BX第33页/共143页34(2)堆栈操作指令堆栈:是按“先进后出”原则工作的一段存储器区域。堆栈寄存器SS段地址堆栈指针SP始终指向当前栈顶所在的存储单元地址,即最新入栈数据所在的存储单元的地址。压栈操作:PUSHOP功能:把OP字数据压入栈中,结果SP-2SP原则:高字节压在高地址,低字节压在低地址执行过程:SPSP-1;SPOPHSPSP-1;SPOPL
17、第34页/共143页35例:例:MOVAX,3456HPUSHAX(1)SP-1SP,压压AH(2)SP-1SP,压压ALSPSPSP-1SP3456SPSP-134 56AXAHAL第35页/共143页36l出栈操作:POPOP功能:从栈中弹出数据OP,结果SP+2SP执行过程:OPLSP;SPSP+1OPHSP;SPSP+1例:例:POPDX(1)弹出弹出ALDL,SP+1SP(2)弹出弹出AHDH,SP+1SPSPSPSP+1SPSP+1SP3456DXDHDL5634第36页/共143页37例:将CX的内容压入堆栈,然后,弹出栈顶至CX中,已知(SS)0200H,(SP)0008H,(
18、CX)12FAH。第37页/共143页38第38页/共143页39例:已知:AX=1122H,BX=3344H,SP=1010H执行指令:PUSHAXPUSHBXPOPAXPOPBX执行后AX,BX,SP的结果?解:执行结果为AX=3344HBX=1122HSP=1010H第39页/共143页40注意:堆栈操作总是按字(1616位)进行的。操作数可以是存储器、寄存器或段寄存器操作数(CS不能用于POP),不能是立即数。PUSH CS PUSH CS POP CS POP CS PUSH 1200H PUSH 1200H POP 2300H POP 2300H 这两条指令主要用来进行现场保护和恢
19、复,以保证子程序调用或中断程序的正常返回。第40页/共143页41(3)数据交换指令(8/16位)格式:XCHGOP1,OP2功能:实现OP1和OP2内容的相互交换。操作数:通用寄存器或存储器,但不能均为内存单元。注意:段寄存器和IP不能作为交换指令的操作数。例:XCHGAX,BXXCHGBH,BLXCHGAX,1122HXCHGDS,AXXCHGSI,BPXCHGSI,DI第41页/共143页4246(4)换码指令(查表指令、翻译指令)格式:XLAT功能:(BX+AL)ALEA说明:将BX和AL内容相加作为有效地址EA,在一个表格中找出此单元中的内容AL中。BX表格的首地址AL相对于表格首地
20、址的位移量(要转换的代码)第42页/共143页43例:数据段中存放有一张1616进制数的ASCIIASCII码转换表,设首地址为20002000H H,查表查出第1010个元素AA的ASCIIASCII码(设DS=4000HDS=4000H)。303132.394142.4546.42000H+042000H+100129ABEF可用如下指令实现:MOV BXMOV BX,2000H 2000H;BXBX表首地址MOV ALMOV AL,0AH 0AH ;ALAL序号XLAT XLAT ;查表转换 执行后得到:AL=41HAL=41H第43页/共143页442.输入输出指令 CPU对外设端口有
21、两种寻址方式,即直接寻址和间接寻址。直接寻址范围为00HFFH个端口;间接寻址范围为0000H0FFFFH共64K个端口。间接寻址时,只能用DX作间址寄存器。1.输入指令格式::IN累加器,端口功能:把一个字节/字由输入端口传送到AL/AX中.例:INAL,21H;将端口21H的8位数读到AL中INAX,21HMOVDX,201HINAL,DXINAX,DX第44页/共143页452.输出指令格式:OUT端口,累加器功能:把AX中的16位数或AL中的8位数输出到指定端口。例:OUT22H,AL;将AL中的数传到22H端口MOVDX,511HOUTDX,AX第45页/共143页463.目标地址传
22、送指令此类指令的功能是将操作数所在存储器的地址送入目标寄存器。注意:1.OP源必须是存储器操作数,OP目必须是16位的通用寄存器。2.地址传送指令不影响状态标志位。(1)取有效地址EA指令:格式:LEAOP目,OP源功能:将源操作数的有效地址EA送到目的操作数。例:LEAAX,5678H;AX5678HLEABX,BP+SI;BXBP+SI第46页/共143页47DATA112H34H1100H88H77HBX=1100H注意区分下列指令:LEASI,DATA1MOVSI,DATA1MOV SI,OFFSET DATA1 SI,OFFSET DATA1MOVBX,BXLEABX,BX符号地址第
23、47页/共143页48(2)指针送寄存器和DS指令格式:LDSOP目,OP源 功能:把OP源指定的4 4个字节内容取出,低地址的两字节OP目,高地址的两字节DSDS。例:LDS DILDS DI,2130H2130H;21302130H H和21312131H H单元中的内容DIDI;2132H2132H和21332133H H单元中的内容DSDS2130H2131H2132H2133HDI=1234HDS=5678H34H12H78H56H第48页/共143页49(3 3)指针送寄存器和ESES指令格式:LESOP目,OP源功能:本指令与LDS指令的操作基本相同,所不同的是将OP源4个字节中
24、高地址的两字节ES。例:LES DILES DI,2130H2130H;2130 2130H H和21312131H H单元中的内容DIDI;2132H 2132H和21332133H H单元中的内容ESES2130H2131H2132H2133HDI=1234HES=5678H34H12H78H56H第49页/共143页504.标志传送指令标志传送指令(1)(1)读取标志指令读取标志指令 格式:格式:LAHFLAHF ;AH标志寄存器低标志寄存器低8位位特点:特点:此指令操作结果不影响标志寄存器。此指令操作结果不影响标志寄存器。(2)(2)设置标志指令设置标志指令 格式:格式:SAHF SA
25、HF;标志寄存器低标志寄存器低8位位AH特点:特点:此指令直接为标志寄存器的低此指令直接为标志寄存器的低8位赋值。位赋值。SFPFAFZFCF.AH标志寄存器D15D7D0第50页/共143页51(3)(3)对标志寄存器的堆栈操作指令 格式:PUSHFPUSHF;将标志寄存器的值压栈。POPF POPF;从栈顶弹出一个字送标志寄存器。特点:1.1.PUSHFPUSHF不影响标志寄存器,而POPFPOPF直接为标志寄存器赋值。2.通常两指令成对出现,用来保护和恢复标志寄存器的内容。第51页/共143页52算术运算指令8086的算术运算类指令能够对二进制或十进制(BCD码)数进行加、减、乘、除运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 系统 原理 应用 指令系统

限制150内