微机原理与接口技术-第4章指令系统.ppt
《微机原理与接口技术-第4章指令系统.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术-第4章指令系统.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4 4.3 80.3 80 x x8686指令系统指令系统可分成如下可分成如下7 7类:类:n n 数据传送指令数据传送指令数据传送指令数据传送指令n n 算术运算指令算术运算指令算术运算指令算术运算指令n n 逻辑运算和移位指令逻辑运算和移位指令逻辑运算和移位指令逻辑运算和移位指令n n 串操作指令串操作指令串操作指令串操作指令n n 程序控制指令程序控制指令程序控制指令程序控制指令n n 处理器控制指令处理器控制指令处理器控制指令处理器控制指令n n 中断指令中断指令中断指令中断指令1 14.3.4 4.3.4 程序控制指令程序控制指令用于控制指令流程的指令有转移、循环、过用于控制指令流程
2、的指令有转移、循环、过程调用和中断调用等指令。程调用和中断调用等指令。分类分类按转移条件分:无条件转移和有条件转移;按转移条件分:无条件转移和有条件转移;按转移条件分:无条件转移和有条件转移;按转移条件分:无条件转移和有条件转移;按转移的范围分:段内转移和段间转移;按转移的范围分:段内转移和段间转移;按转移的范围分:段内转移和段间转移;按转移的范围分:段内转移和段间转移;按获取地址的方法分:直接转移和间接转移。按获取地址的方法分:直接转移和间接转移。按获取地址的方法分:直接转移和间接转移。按获取地址的方法分:直接转移和间接转移。2 2转移指令的实质:改变转移指令的实质:改变IP(IP(或或CS
3、)CS)的内容。的内容。所有转移指令不会影响标志位。所有转移指令不会影响标志位。分为分为无条件转移无条件转移和和条件转移条件转移两种。两种。1.1.转移指令转移指令3 31)无条件转移指令无条件转移指令-JMP本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。根据设置CS、IP的方法,JMP指令分成4种情况。4 4格式:格式:格式:格式:JMP LableJMP LableJMP LableJMP Lable功能:跳转到功能:跳转到功能:跳转到功能:跳转到LableLableLableLable处开始执行下一跳指令。处开始执行下一跳指令。处开始执行下一跳指令。处开始执行下一跳指令。
4、指令代码中给出的目标地址实际上是一个指令代码中给出的目标地址实际上是一个指令代码中给出的目标地址实际上是一个指令代码中给出的目标地址实际上是一个相对于相对于相对于相对于IPIPIPIP的位移量的位移量的位移量的位移量:位移量位移量位移量位移量 转移范围转移范围转移范围转移范围 汇编语言中格式汇编语言中格式汇编语言中格式汇编语言中格式 8 8 8 8位位位位 -128-128-128-128+127+127+127+127 JMP SHORT OPRDJMP SHORT OPRDJMP SHORT OPRDJMP SHORT OPRD 16 16 16 16位位位位 -3276832768327
5、6832768+32767327673276732767 JMP NEAR PTR OPRD JMP NEAR PTR OPRD JMP NEAR PTR OPRD JMP NEAR PTR OPRD例:例:例:例:JMPJMPJMPJMP0120H0120H0120H0120H ;直接转向直接转向直接转向直接转向0120012001200120H H H H JMP JMP JMP JMPSHORT LPSHORT LPSHORT LPSHORT LP ;转向转向转向转向LPLPLPLP JMP JMP JMP JMPNEAR PTR BBBNEAR PTR BBBNEAR PTR BBBN
6、EAR PTR BBB;转向转向转向转向BBBBBBBBBBBB由于是由于是由于是由于是段内段内段内段内转移转移转移转移,故转移后故转移后故转移后故转移后CSCSCSCS内容保持不变内容保持不变内容保持不变内容保持不变 段内直接转移段内直接转移 Lable=IP5 5格式:格式:格式:格式:JMP reg/memJMP reg/memJMP reg/memJMP reg/mem功能:跳转到由功能:跳转到由功能:跳转到由功能:跳转到由寄存器寄存器寄存器寄存器或或或或存储单元存储单元存储单元存储单元的内容给出目标的内容给出目标的内容给出目标的内容给出目标地址处执行。地址处执行。地址处执行。地址处执
7、行。例例例例1 1:JMP SIJMP SI若若若若(SI)=1200HSI)=1200HSI)=1200HSI)=1200H,则指令执行后,则指令执行后,则指令执行后,则指令执行后,(,(,(,(IP)=1200H,IP)=1200H,IP)=1200H,IP)=1200H,于是转于是转于是转于是转向代码段的偏移地址向代码段的偏移地址向代码段的偏移地址向代码段的偏移地址1200H1200H1200H1200H处开始执行。处开始执行。处开始执行。处开始执行。说明:寄存器、内存单元存放的是有效地址。所说明:寄存器、内存单元存放的是有效地址。所说明:寄存器、内存单元存放的是有效地址。所说明:寄存器
8、、内存单元存放的是有效地址。所谓谓谓谓“间接间接间接间接”,是指当,是指当,是指当,是指当CPUCPU执行指令时,将寄存器或执行指令时,将寄存器或执行指令时,将寄存器或执行指令时,将寄存器或内存单元内的有效地址写入内存单元内的有效地址写入内存单元内的有效地址写入内存单元内的有效地址写入IPIP或或或或EIPEIP,从而实现转,从而实现转,从而实现转,从而实现转移。移。移。移。段内间接转移段内间接转移 (reg/mem)16=IP6 6例例例例2 2:JMP BX+DIJMP BX+DI设指令执行前设指令执行前设指令执行前设指令执行前:DS=3000H,BX=1300H,DS=3000H,BX=
9、1300H,DS=3000H,BX=1300H,DS=3000H,BX=1300H,DI=1200H,32500H=2350H DI=1200H,32500H=2350H DI=1200H,32500H=2350H DI=1200H,32500H=2350H;则指令执行后则指令执行后则指令执行后则指令执行后:IP=2350HIP=2350HIP=2350HIP=2350H在汇编语言中在汇编语言中在汇编语言中在汇编语言中,段内间接寻址通常写成:段内间接寻址通常写成:段内间接寻址通常写成:段内间接寻址通常写成:JMPJMPJMPJMPWORD PTRWORD PTRWORD PTRWORD PTR
10、BX+DIBX+DIBX+DIBX+DI表示所取得的目标地址是一个字。表示所取得的目标地址是一个字。表示所取得的目标地址是一个字。表示所取得的目标地址是一个字。7 7DSDS:POINTERPOINTERDW P11 DW P11 DW P12 DW P12 CSCS:.MOV MOV BXBX,OFFSET POINTEROFFSET POINTERJMP JMP WORD PTRWORD PTR BX BX MOV MOV SISI,OFFSET POINTER+2OFFSET POINTER+2JMP JMP WORD PTRWORD PTR SI SI P11P11:P12P12:YY
11、HYYHXXHXXHPOINTER+2POINTER P12的地址信息的地址信息P11的地址信息的地址信息P107例子(改错)例子(改错)8 8格式:格式:格式:格式:JMP LableJMP LableJMP LableJMP Lable功能:跨段跳转到功能:跨段跳转到功能:跨段跳转到功能:跨段跳转到far_Lablefar_Lablefar_Lablefar_Lable处执行。指令中直接处执行。指令中直接处执行。指令中直接处执行。指令中直接给出要转移到的目的段地址和偏移地址。给出要转移到的目的段地址和偏移地址。给出要转移到的目的段地址和偏移地址。给出要转移到的目的段地址和偏移地址。例:例:
12、例:例:JMPJMP 2000H:1000H 2000H:1000H执行时执行时执行时执行时,IP1000H,CS2000HIP1000H,CS2000HIP1000H,CS2000HIP1000H,CS2000H注:直接地址为符号地址时,段间直接转移指令中注:直接地址为符号地址时,段间直接转移指令中注:直接地址为符号地址时,段间直接转移指令中注:直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符的符号地址前应加操作符的符号地址前应加操作符的符号地址前应加操作符FAR PTRFAR PTRFAR PTRFAR PTR。例:例:例:例:JMP JMP FAR PTRFAR PTR l
13、abel label在模块设计时,从一个模块转移到另一个模块,在模块设计时,从一个模块转移到另一个模块,在模块设计时,从一个模块转移到另一个模块,在模块设计时,从一个模块转移到另一个模块,用段间直接转移。用段间直接转移。用段间直接转移。用段间直接转移。段间直接转移段间直接转移Lable低低16=IPLable高高16=CS9 9格式:格式:格式:格式:JMPJMPJMPJMP mem32323232功能:跨段跳转到由一个双字内存单元的内容确功能:跨段跳转到由一个双字内存单元的内容确功能:跨段跳转到由一个双字内存单元的内容确功能:跨段跳转到由一个双字内存单元的内容确定的地址处执行。例如:定的地址
14、处执行。例如:定的地址处执行。例如:定的地址处执行。例如:JMPJMPJMPJMPDWORD PTRSIDWORD PTRSIDWORD PTRSIDWORD PTRSI设指令执行前设指令执行前设指令执行前设指令执行前:DS=4000H,SI=1212H,DS=4000H,SI=1212H,DS=4000H,SI=1212H,DS=4000H,SI=1212H,41212H=1000H,41214H=4A00H 41212H=1000H,41214H=4A00H 41212H=1000H,41214H=4A00H 41212H=1000H,41214H=4A00H则指令执行后则指令执行后则指令
15、执行后则指令执行后:IP=1000H,CS=4A00HIP=1000H,CS=4A00HIP=1000H,CS=4A00HIP=1000H,CS=4A00H于是转到于是转到于是转到于是转到4 4 4 4B000HB000HB000HB000H处开始执行指令。处开始执行指令。处开始执行指令。处开始执行指令。例中的例中的例中的例中的DWORD PTRDWORD PTRDWORD PTRDWORD PTR表示转移地址是一个双字。表示转移地址是一个双字。表示转移地址是一个双字。表示转移地址是一个双字。段间间接转移段间间接转移mem低低16=IPmem高高16=CS1010DS:SI0010004A10
16、004A00IPCS段间间接转移操作示意图段间间接转移操作示意图1111111111101100JMP DWORD PTR SI的机器码DS:SI41212H41212H41214H41214H1111条件转移指令可实现程序的条件分支。条件转移指令可实现程序的条件分支。条件转移指令可实现程序的条件分支。条件转移指令可实现程序的条件分支。条件转移指令根据标志位的状态来决定是否进行分条件转移指令根据标志位的状态来决定是否进行分条件转移指令根据标志位的状态来决定是否进行分条件转移指令根据标志位的状态来决定是否进行分支转移。支转移。支转移。支转移。格式:格式:格式:格式:J JXX XX labell
17、abel;xxxx为条件名称缩写为条件名称缩写为条件名称缩写为条件名称缩写指令的转移范围为指令的转移范围为指令的转移范围为指令的转移范围为-128-128-128-128+127+127+127+127字节。字节。字节。字节。2)2)条件转移指令条件转移指令-Jxx分类分类分类分类判断单个标志的条件转移指令判断单个标志的条件转移指令判断单个标志的条件转移指令判断单个标志的条件转移指令判断无符号数大小的条件转移指令判断无符号数大小的条件转移指令判断无符号数大小的条件转移指令判断无符号数大小的条件转移指令判断有符号数大小的条件转移指令判断有符号数大小的条件转移指令判断有符号数大小的条件转移指令判断
18、有符号数大小的条件转移指令循环控制转移循环控制转移循环控制转移循环控制转移1212表表4-4 判断单个标志的条件转移指令判断单个标志的条件转移指令标标标标志志志志为为为为1 1时转时转时转时转移移移移为为为为0 0时转时转时转时转移移移移ZFZFJZ(JE)JZ(JE)JNZ(JNE)JNZ(JNE)SFSFJSJSJNSJNSOFOFJOJOJNOJNOPFPFJP(JPE)JP(JPE)JNP(JPO)JNP(JPO)CFCFJC(JB/JNAE)JC(JB/JNAE)JNC(JNB/JAE)JNC(JNB/JAE)教材教材P1081313表表4-5 判断无符号数大小的条件转移指令判断无符
19、号数大小的条件转移指令操作码助记符操作码助记符操作码助记符操作码助记符指令功能指令功能指令功能指令功能等价助记符等价助记符等价助记符等价助记符JAJA被减数大于减数转被减数大于减数转被减数大于减数转被减数大于减数转JNBEJNBEJNAJNA被减数小于或等于减数转被减数小于或等于减数转被减数小于或等于减数转被减数小于或等于减数转JBEJBEJNCJNC被减数大于或等于减数转被减数大于或等于减数转被减数大于或等于减数转被减数大于或等于减数转JNB/JAEJNB/JAEJCJC被减数小于减数转被减数小于减数转被减数小于减数转被减数小于减数转JB/JNAEJB/JNAE教材教材P1081414表表4
20、-6 判断有符号数大小的条件转移指令判断有符号数大小的条件转移指令助记符助记符助记符助记符指令功能指令功能指令功能指令功能助记符助记符助记符助记符JGJG被减数被减数被减数被减数(真值真值真值真值)大于减数大于减数大于减数大于减数(真值真值真值真值)转转转转JNLEJNLEJGEJGE被减数被减数被减数被减数(真值真值真值真值)大于或等于减数大于或等于减数大于或等于减数大于或等于减数(真值真值真值真值)转转转转JNLJNLJLJL被减数被减数被减数被减数(真值真值真值真值)小于减数小于减数小于减数小于减数(真值真值真值真值)转转转转JNGEJNGEJLEJLE被减数被减数被减数被减数(真值真值
21、真值真值)小于或等于减数小于或等于减数小于或等于减数小于或等于减数(真值真值真值真值)转转转转JNGJNG教材教材P1091515根据根据根据根据CXCXCXCX内容来决定是否转移的转移指令内容来决定是否转移的转移指令内容来决定是否转移的转移指令内容来决定是否转移的转移指令 JCXZ labelJCXZ labelJCXZ labelJCXZ label 若若若若CX=0,CX=0,CX=0,CX=0,则转移到则转移到则转移到则转移到labellabellabellabel处开始执行。处开始执行。处开始执行。处开始执行。1616例例 P109设有设有10个字节属性的个字节属性的无符号无符号数据
22、存放在以数据存放在以2000H单元为首地址的数据缓冲器中,编程单元为首地址的数据缓冲器中,编程找出其中的最大数,并存入找出其中的最大数,并存入2100H单元。单元。1717找最大数的程序找最大数的程序MOV MOV BXBX,2000H2000H MOV MOV ALAL,BXBX MOV MOV CXCX,9 9;正确取值应为正确取值应为正确取值应为正确取值应为9 9LAB:LAB:INC INC BXBX CMP CMP ALAL,BXBX JAE JAE LABLELABLE MOV MOV ALAL,BXBXLABLE:LABLE:DEC DEC CXCX JNZ JNZ LABLAB
23、 MOV MOV BXBX,2100H2100H MOV MOV BXBX,ALAL1818找最大数找最大数MOV BX,2000HMOV AL,BX2000H2000H36H36H2001H2001H28H28H2002H2002H48H48H2003H2003H33H33H2004H2004H51H51H2005H2005H37H37H2006H2006H39H39H2007H2007H42H42H2008H2008H76H76H2009H2009H59H59H2100H2100H36HAL1919找最大数INC BXINC BXCMP AL,BXCMP AL,BXJAE LABLEJAE
24、 LABLEMOV AL,BXMOV AL,BX2000H2000H36H36H2001H2001H28H28H2002H2002H48H48H2003H2003H33H33H2004H2004H51H51H2005H2005H37H37H2006H2006H39H39H2007H2007H42H42H2008H2008H76H76H2009H2009H59H59H2100H2100H36HAL36H28HALBXPK;条件成立,转移;条件成立,转移;这条指令不执行;这条指令不执行2020找最大数INC BXINC BXCMP AL,BXCMP AL,BXJAE LABLEJAE LABLEM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 指令系统
限制150内