最新微机系统与接口教学资料 第三章(2ppt课件.ppt
《最新微机系统与接口教学资料 第三章(2ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新微机系统与接口教学资料 第三章(2ppt课件.ppt(202页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机系统与接口教学资料微机系统与接口教学资料 第第三章(三章(2)一、一、IBMPC(8086/8088)指令系统指令系统8086/8088指令系统可分为六组:指令系统可分为六组:数据传送指令数据传送指令数据传送指令数据传送指令(DatatransfarDatatransfar););););算术指令算术指令算术指令算术指令(ArithmeticArithmetic););););逻辑指令逻辑指令逻辑指令逻辑指令(LogicLogic););););串处理指令串处理指令串处理指令串处理指令(StringmanipulationStringmanipulation););););控制转移指令控制
2、转移指令控制转移指令控制转移指令(ControltransfarControltransfar););););处理机控制指令处理机控制指令处理机控制指令处理机控制指令(ProcessorcontrolProcessorcontrol););););注意:注意:MOV指令可以传指令可以传8位或位或16位数据位数据例例:MOVES,AL;错错MOVCL,4321H;错错MOV指令的操作数中必用一个寄存器,不允许两存储单元指令的操作数中必用一个寄存器,不允许两存储单元之间传送数据之间传送数据MOV2000H,3000H;错错例例:MOVAL,SIMOVDI,AL不能用不能用CS,IP作目的操作数作目
3、的操作数不允许在段寄存器之间直接传送数据不允许在段寄存器之间直接传送数据例例:MOVDS,ES;错错不允许用立即数作目的操作数不允许用立即数作目的操作数MOV2000H,AL;错错不能向段寄存器送立即数不能向段寄存器送立即数MOVDS,3000H;错错例例:MOVAX,3000HMOVDS,AX*MOV指令不影响标志位。指令不影响标志位。例例1:把地址为把地址为AREA1(段内偏移量)的存储单元的内容,传(段内偏移量)的存储单元的内容,传送至同一送至同一段内的地址为段内的地址为AREA2的存储单元中。的存储单元中。AREA1AREA265F3020024E00500MovAREA2,AREA1
4、MovAL,AREA1MovAREA2,AL例例2:若要传送的不是一个字节,而是一个数据块,(例如内:若要传送的不是一个字节,而是一个数据块,(例如内有有100个字节),如何实现?个字节),如何实现?movsi,offsetarea1movdi,offsetarea2movcx,100Again:moval,si;movdi,alincsiincdideccxjnzagainint3AREA1AREA265F3020500100=Lea si,area2(2)(2)栈操作指令栈操作指令栈操作指令栈操作指令PUSHOPRDPUSHOPRDPOPOPRDPOPOPRD堆栈堆栈按照按照先进后出先进后
5、出先进后出先进后出的原则组织的一段内存区域。的原则组织的一段内存区域。8088中规定堆栈设中规定堆栈设置在堆栈段(置在堆栈段(SS段)内,堆栈指针段)内,堆栈指针SP的初值决定了堆栈的大小。的初值决定了堆栈的大小。SP始终指向堆栈的顶部,即始终指向最后推入堆栈的信息所在始终指向堆栈的顶部,即始终指向最后推入堆栈的信息所在的单元。的单元。操作数:操作数:16位通用寄存器;位通用寄存器;段寄存器;段寄存器;16位内存操作数(除立即数之外的位内存操作数(除立即数之外的任何寻址方式)。任何寻址方式)。00000SS:0000SS:SP堆堆栈栈段段方式:方式:(1)CPU通用寄存器入通用寄存器入/出栈,
6、如:出栈,如:PUSHAXPOPBX(2)段寄存器入段寄存器入/出栈,出栈,如如PUSHCSPOPDS(3)存储单元入存储单元入/出栈出栈PUSHBX+DIPOP2000HPUSHAXPUSHAX指令分两步执行:指令分两步执行:1.SP-2SP2.将将AH内容送至内容送至SP+1所指单元;所指单元;3.再再将将AL内容送至内容送至SP所指单元;所指单元;例:例:MOVAX,1234HPUSHAXPOPAXPOPAX指令分两步执行:指令分两步执行:1.先先将将SP所指单元内所指单元内容送至容送至AL,然后然后2.再再SP+1所指单元内所指单元内容送至容送至AH,然后然后3.SP+2SP4.例:例
7、:MOVAX,5678HPOPAX入栈和出栈指令性用于程序保存和恢复数据,或用入栈和出栈指令性用于程序保存和恢复数据,或用于转子或中断时保护现场和恢复现场。其主要注意:于转子或中断时保护现场和恢复现场。其主要注意:(1)堆栈操作指令中,有一个操作数是隐含了的堆栈操作指令中,有一个操作数是隐含了的,这个操作数就是这个操作数就是(SP)指示的栈顶存储单元指示的栈顶存储单元;(2)8086堆栈都是字操作堆栈都是字操作(3)每执行一条指令,(每执行一条指令,(SP)自动增减)自动增减2(4)CS寄存器可以入栈,但不能随意弹出一个数寄存器可以入栈,但不能随意弹出一个数据到据到CS(5)在使用堆栈指令时,
8、要按在使用堆栈指令时,要按“先进后出先进后出”原则来原则来编写程序编写程序(3)(3)交换指令交换指令交换指令交换指令XCHGOPRD1,OPRD2XCHGOPRD1,OPRD2在寄存器间或寄存器与存储器间交换信息(不允许在寄存器间或寄存器与存储器间交换信息(不允许使用段寄存器)。使用段寄存器)。源操作数:源操作数:寄存器、存储器寄存器、存储器目的操作数:寄存器、存储器目的操作数:寄存器、存储器执行的操作:执行的操作:(OPRD1)(OPRD1)(OPRD2)(OPRD2)例:例:XCHGBX,BP+SI(BX)=6F30H(BP)=0200H(SI)=0046H(SS)=2F00H(2F24
9、6H)=1234H结果:结果:(BX)=1234H(2F246H)=6F30H例如:例如:XCHGAL,BL;(;(AL)与()与(BL)间进行字节交换)间进行字节交换XCHG2200H,DX;(DX)与与(2200H)、(、(2201H)两)两单元间的字交换单元间的字交换使用时注意:使用时注意:(1)OPR1和和OPR2不能同时为存储器操作数;不能同时为存储器操作数;(2)任一个操作数都不能使用段寄存器,也不能使用立任一个操作数都不能使用段寄存器,也不能使用立即数。即数。用来对寻址机构进行控制的指令。指令传送到用来对寻址机构进行控制的指令。指令传送到16位目标寄存位目标寄存器中的是存储器操作
10、数的地址,而不是它的内容。器中的是存储器操作数的地址,而不是它的内容。1.1.地址传送指令地址传送指令地址传送指令地址传送指令LEA,LDS,LESLEA,LDS,LES把地址传送到指定寄存器。把地址传送到指定寄存器。(1)LEA(1)LEA有效地址送寄存器。有效地址送寄存器。有效地址送寄存器。有效地址送寄存器。LEAREG,SRCLEAREG,SRC(REG)REG)(SRC)(SRC)目的操作数目的操作数源操作数源操作数(16位通用寄存器)位通用寄存器)(内存操作数)(内存操作数)该地址常用来设置一个该地址常用来设置一个16位的寄存器作为地址指针;位的寄存器作为地址指针;该指令的执行效果与
11、该指令的执行效果与movreg,offsetsrc相同。相同。(三)地址(三)地址目标传送指令目标传送指令例:例:LEABX,BP+SI;执行后,;执行后,BX中为(中为(BP)+(SI)的值的值LEASP,0520H;执行后,使堆栈指针(;执行后,使堆栈指针(SP)=0520H例:例:leabx,bxsi执行前执行前(bx)=1000h(si)=2000h执行后执行后bx=1000h+2000h=3000h(2)LDS(2)LDS把源操作数指定的内存的把源操作数指定的内存的把源操作数指定的内存的把源操作数指定的内存的4 4个相继字节的内容送至指定寄存个相继字节的内容送至指定寄存个相继字节的内
12、容送至指定寄存个相继字节的内容送至指定寄存器及器及器及器及DSDS中中中中LDSREG,SRCLDSREG,SRC(REG)(REG)(SRC)(SRC)(DS)(DS)(SRC+2)(SRC+2)目的操作数目的操作数源操作数源操作数(16位通用寄存器)(内存操作数)位通用寄存器)(内存操作数)(1)该指令完成一个该指令完成一个32位地址指针的传送;位地址指针的传送;(2)该指令通常指定该指令通常指定SI作寄存器作寄存器REG。DS=1000h10100h000200200200h2000hSIDS例:例:ldsSI,100h(3)LES(3)LES把源操作数指定的内存的把源操作数指定的内存的
13、把源操作数指定的内存的把源操作数指定的内存的4 4个相继字节的内容送至指定寄存器个相继字节的内容送至指定寄存器个相继字节的内容送至指定寄存器个相继字节的内容送至指定寄存器及及及及ESES中。中。中。中。LESREG,SRCLESREG,SRC(REG)(REG)(SRC)(SRC)(ES)(ES)(SRC+2)(SRC+2)目的操作数目的操作数源操作数源操作数(16位通用寄存器)位通用寄存器)(内存操作数)(内存操作数)(1)该指令完成一个该指令完成一个32位地址指针的传送;位地址指针的传送;(2)该指令通常指定该指令通常指定DI作寄存器作寄存器REG。ES=1000h10100h000200
14、200200h2000hDIES例:例:lesdi,100h3.3.累加器专用指令累加器专用指令累加器专用指令累加器专用指令IN,OUT,XLATIN,OUT,XLAT 输入输出指令输入输出指令输入输出指令输入输出指令 PCPC机中,所有机中,所有机中,所有机中,所有I/OI/O端口与端口与端口与端口与CPUCPU之间的通信都有之间的通信都有之间的通信都有之间的通信都有IN,OUTIN,OUT指令完指令完指令完指令完成。成。成。成。长格式长格式(直接方式直接方式):INAL,PORTOUTPORT,ALPORT端口地址端口地址短格式短格式(间接方式间接方式):INAX,DX;从(;从(DX)和
15、()和(DX)+1所所指的两个端口输一个字到指的两个端口输一个字到AX,低地址端,低地址端口的值输口的值输入到入到AL,高地址端口的值输,高地址端口的值输到到AH 1输入输入/输出(输出(I/O)指令)指令输入指令输入指令长格式:长格式:INAL,PORT;将;将PORT端口字节数据输入到端口字节数据输入到AL短格式:短格式:INAX,DX;从(;从(DX)和()和(DX)+1所指的两个端所指的两个端口输一个字到口输一个字到AX低地址端口的值输低地址端口的值输到到AL,高地址端口的值输,高地址端口的值输到到AH输出指令:输出指令:长格式:长格式:OUTPORT,AL;将;将AL中的中的1个字节
16、数据输出个字节数据输出到到PORT端口端口短格式:短格式:OUTDX,AX;将;将AL中低位字节输出到(中低位字节输出到(DX)所指端口,同时将所指端口,同时将AH中的高位中的高位字节输出到(字节输出到(DX)+1所指的端口所指的端口例例33:欲将:欲将12位位A/D变换器所得数字量输入。这时,变换器所得数字量输入。这时,A/D变换变换器应使用一个字端口,设为器应使用一个字端口,设为20H。MOVDX,02F0HINAX,DX注意:注意:(1)指令只能用累加器指令只能用累加器AX/AL作作I/O过程机构,不能用过程机构,不能用其它寄存器;其它寄存器;(2)长格式的长格式的I/O指令端口范围为指
17、令端口范围为0FFH。(3)运行有运行有I/O指令的程序时,若无硬件端口的支持,机指令的程序时,若无硬件端口的支持,机器将出现死锁器将出现死锁(4)在使用短格式在使用短格式I/O指令时,端口地址只能赋给指令时,端口地址只能赋给DX。(2)(2)换码指令换码指令换码指令换码指令XLATXLAT功能:功能:将将AL指向的换码表中的一个字节的内容送到指向的换码表中的一个字节的内容送到AL中。中。操作数:隐含的寄存器操作数:隐含的寄存器BX,AL操作:操作:(AL)(BX)+(AL)应先将表格的首地址送入应先将表格的首地址送入BX寄存器,将待查的值(码)放入寄存器,将待查的值(码)放入AL中,用它来表
18、示表中某一项与表首址的距离。中,用它来表示表中某一项与表首址的距离。例例34:数字:数字0-9对应的格雷码为:对应的格雷码为:18H、34H、05H(见图)。(见图)。依次放在内存以依次放在内存以TABLE开始的区域,当开始的区域,当#10端口输入一位十进制端口输入一位十进制数时,要求将其转换为相应的格雷码再输出给该端口。数时,要求将其转换为相应的格雷码再输出给该端口。MOVBX,TABLE;BX指向指向TABLE的首址的首址INAL,10;从端口;从端口0AH输入待查值输入待查值XLATTABLE;查表转换;查表转换OUT10,AL;查表结果输出到;查表结果输出到0AH端口端口若若10端口输
19、入值为端口输入值为7,则查表转换后输出值为,则查表转换后输出值为11H如图所示:如图所示:4.4.标志寄存器传送指令标志寄存器传送指令标志寄存器传送指令标志寄存器传送指令 (1)(1)读取标志指令读取标志指令读取标志指令读取标志指令LAHFLAHF功能:功能:把把Flag的低字节内容装入寄存器的低字节内容装入寄存器AH中。中。操作数:隐含的操作数操作数:隐含的操作数标志寄存器标志寄存器Flag,AH执行的操作:执行的操作:AHAHFlagFlag的低位字节。的低位字节。的低位字节。的低位字节。ODITSZAPCD7D6D4D2D0FlagAH(2)(2)设置标志指令设置标志指令设置标志指令设置
20、标志指令SAHFSAHF功能:功能:把把Ah的内容装入的内容装入Flag的低字节。的低字节。操作数:隐含的操作数标志寄存器操作数:隐含的操作数标志寄存器Flag,AH执行的操作:执行的操作:FlagFlag的低位字节的低位字节的低位字节的低位字节 AHAHODITSZAPCFlagAHD7D6D4D2D0注:该指令影响标志位注:该指令影响标志位Z、A、P、C、S(3)(3)标志寄存器入栈指令标志寄存器入栈指令标志寄存器入栈指令标志寄存器入栈指令PUSHFPUSHF功能:将标志寄存器功能:将标志寄存器Flag的内容压入堆栈保存。的内容压入堆栈保存。(4)(4)标志寄存器出栈指令标志寄存器出栈指令
21、标志寄存器出栈指令标志寄存器出栈指令POPFPOPF功能:把栈中内容弹出至标志寄存器功能:把栈中内容弹出至标志寄存器Flag。PUSHF指令将标志寄存器内容推入堆栈顶部,同时修改堆栈指指令将标志寄存器内容推入堆栈顶部,同时修改堆栈指针:(针:(SP)(SP)-2。该指令执行后,标志寄存器内容不。该指令执行后,标志寄存器内容不变。变。POPF指令功能正好相反。指令功能正好相反。注:该指令影响标志位注:该指令影响标志位O、S、Z、A、P、C。三、算术运算指令三、算术运算指令分类分类分类分类名称名称名称名称格式格式格式格式功能功能功能功能OSZAPCOSZAPC加法指令加法指令ADDDST,SRCA
22、DDDST,SRC加法(字、字节)加法(字、字节)OSZAPCOSZAPC带进位加法指令带进位加法指令ADCDST,SRCADCDST,SRC带进位加法带进位加法(字、字节字、字节)OSZAPCOSZAPC加加1指令指令INCOPRDINCOPRD加加1(字、字节)(字、字节)OSZAPOSZAP减法指令减法指令SUBDST,SRCSUBDST,SRC减法(字、字节)减法(字、字节)OSZAPCOSZAPC带借位减法指令带借位减法指令SBBDST,SRCSBBDST,SRC带借位减法带借位减法(字、字节字、字节)OSZAPCOSZAPC减减1指令指令DECOPRDDECOPRD减减1(字、字节
23、)(字、字节)OSZAPOSZAP比较指令比较指令CMPDST,SRCCMPDST,SRC比较(字、字节)比较(字、字节)OSZAPCOSZAPC求补指令求补指令NEGOPRDNEGOPRD求补码求补码OSZAPCOSZAPC无符号数乘法无符号数乘法MULSRCMULSRC不带符号数乘法不带符号数乘法(字字,字节字节)OCOC带符号数乘法带符号数乘法IMULSRCIMULSRC带符号数乘法带符号数乘法(字字,字节字节)OCOC无符号数除法无符号数除法DIVSRCDIVSRC不带符号数除法不带符号数除法(字字,字节字节)带符号数乘法带符号数乘法IDIVSRCIDIVSRC带符号数除法带符号数除法
24、(字字,字节字节)符号扩展指令符号扩展指令CBWCBW扩展扩展AL中的符号中的符号不影响不影响符号扩展指令符号扩展指令CWDCWD扩展扩展AX中的符号中的符号不影响不影响加法加法加法加法指令指令指令指令减法减法减法减法指令指令指令指令乘法乘法乘法乘法指令指令指令指令除法除法除法除法指令指令指令指令十进制调整指令十进制调整指令十进制调整指令十进制调整指令1.1.加法指令加法指令加法指令加法指令ADDDST,SRCADDDST,SRC 源操作数:通用寄存器、存储器、立即数源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器目的操作数:通用寄存器、存储器执行的操作:执行的操作:DSTD
25、ST DSTDST+SRCSRC注:该指令影响标志位注:该指令影响标志位注意:注意:注意:注意:该指令适合有符号数和无符号数的运算。该指令适合有符号数和无符号数的运算。该指令适合有符号数和无符号数的运算。该指令适合有符号数和无符号数的运算。DST+SRCOSZAPC0010010001.1.加法指令加法指令加法指令加法指令ADDDST,SRCADDDST,SRC 源操作数:通用寄存器、存储器、立即数源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器目的操作数:通用寄存器、存储器执行的操作:执行的操作:DSTDST DSTDST+SRCSRC注:该指令影响标志位注:该指令影响标志
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新微机系统与接口教学资料 第三章2ppt课件 最新 微机 系统 接口 教学 资料 第三 ppt 课件
限制150内