欢迎来到天天文库
浏览记录
ID:48237609
大小:394.00 KB
页数:21页
时间:2020-01-18
《第3章_6 8086指令系统(分支CPU指令)及习题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.3指令系统按功能分为:数据传送指令算术运算指令逻辑运算指令移位指令串操作指令位操作指令(386以上)控制转移指令处理机控制指令源、目的操作数的字长一致源、目的操作数不能同为内存单元立即数不能作目的操作数指令构成原则:控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变控制转移类指令用于实现分支、循环、过程等程序结构,是仅次于传送指令的常用指令3.3指令系统相对寻址方式指令代码中提供目的地址相对于当前IP的位移量,转移到的目的地址(转移后的IP值)就是当前IP值加上位移量直接寻址方式指令代码中提供目的逻辑地址
2、,转移后的CS和IP值直接来自指令操作码后的目的地址操作数间接寻址方式指令代码中指示寄存器或存储单元,目的地址从寄存器或存储单元中间接获得代码段段内转移——近转移(near)在当前代码段64KB范围内转移(±32KB范围)不需要更改CS段地址,只要改变IP偏移地址段内转移——短转移(short)转移范围可以用一个字节表达,在段内-128~+127范围的转移代码段代码段实际编程时,汇编程序会根据目标地址的属性,自动处理成短转移、近转移或远转移程序员可用操作符short、nearptr或farptr强制成为需要的转移类型段间
3、转移——远转移(far)从当前代码段跳转到另一个代码段,可以在1MB范围需要更改CS段地址和IP偏移地址,目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址五、程序转移指令—无条件转移和条件转移无条件转移:转移发生不需要状态信息,执行JMP指令发生的转移。Part1JMPAAPart2AAXXXXPart3无条件转移指令转移跳过的地址下一条执行指令条件转移:当条件满足是发生转移,否则顺序执行下一条指令。Part1JCCAAXXXXPart2AAXXXPart3条件转移指令转移跳过的地址下一条执行指令条件成立
4、?NoYes转移指令及寻址方式五、程序转移指令—无条件转移1、JMP指令格式:JMPdest功能:无条件转移到操作数(dest)所指示的地址,不影响标志。段内转移:直接转移:JMPSTART(IP)←START16位立即数NERA标号例如:JMP1234H指令跳转到CS:1234H执行。Part1JMP1234HPart21234HXXXPart3CS:0100H跳过1134HCS:1234H转移指令及寻址方式五、程序转移指令—无条件转移段内转移:直接短转移:JMPSHORTSTARTSHORTSTART为8位位移量(-
5、128~+127)执行操作:(IP)←(IP)+2±位移量例如:JMPSHORTSTART(=12H)指令跳转到CS:(IP+2+12H)执行。Part1JMP12HPart2XXXXXPart3CS:1220H12H+2H=14HCS:1234HJMP—12HPart1Part2Part3XXXXXCS:1234H2H—12H=—10HCS:1224H例如:JMPSHORTSTART(=-12H)指令跳转到CS:(IP+2-12H)执行五、程序转移指令—无条件转移执行操作:(IP)←DEST段内转移:间接转移:JMPD
6、EST——DEST为16寄存器或内存操作数例如:(SI)=0100HJMPSI指令跳转到CS:0100H执行。例如,(BX)=100H,DS:0100H=1234HJMP[BX]指令跳转到CS:1234H执行。Part1JMP[BX]Part21234HXXXPart3CS:0100H跳过1134HCS:1234H12H34HDS:0100HIP=1234H例如:JMP1234:5678H指令跳转到1234:5678H执行五、程序转移指令—无条件转移段间转移:32位立即数直接转移:JMPDEST(IP)←低16位(CS)
7、←高16位FAR标号32内存操作数例如:DI=200H双字(DS:0200H)=12345678HJMPDWORDPTR[DI]指令执行:低位字:(IP)=5678H高位字:(CS)=1234HPart1JMPDWORDPTR[DI]Part2XXXPart3CS:0100H1234H:5678H34H56HDS:0200HIP=5678H78H12HCS=1234H五、程序转移指令—条件转移条件转移都是短转移,转移距离只能在(-128~+127)内完成。简单转移:条件是由标志寄存器中的标志的状态决定的转移。复杂转移:条
8、件是由有有符号数和无符号数的大小决定的转移。简单转移:FRJC标号CF=1有进位则转移到标号所在地址JNC标号CF=0无进位则转移到标号所在地址CFJZ标号ZF=1结果为零则转移到标号所在地址JNZ标号ZF=0结果为非零则转移到标号所在地址ZFJS标号SF=1结果为负则转移到标号所在地址JNS标号SF=0结果非负则转
此文档下载收益归作者所有