- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IBM PC机的指令系统 80x86指令系统分成下列六大类: 数据传送指令 算术运算指令 逻辑运算和移位指令 控制转移指令 串操作指令 CPU控制指令与标志位处理指令 控制转移指令 无条件转移指令 条件转移指令 子程序调用和返回指令 中断指令 无条件转移指令 格式:JMP 地址表达式 功能:使程序的流程无条件跳到转移地址所指的地方。 转移目的地址=(CS)×16+(IP) 段内转移:改变IP的内容,CS的内容不变。 段间转移:IP、CS的内容都改变。 段内直接寻址:指令中直接给出到达的目标地址 例如:JMP PROG1 ;转移范围:-32768~+32767 JMP SHORT NEXT ;转移范围:-128~+127 段内间接寻址:指定某个寄存器的内容或某个字单元的内容作为转移地址的偏移地址。 例如:JMP BX ;(BX) ? IP JMP WORD PTR[1000H] ;(DS:1000H) ? IP JMP WORD PTR[SI+2] ;(DS:SI+2) ? IP JMP TABLE[BX] ;(DS:TABLE+(BX)) ? IP 段间直接寻址:通过标号直接给出转移地址 例如:JMP FAR PTR NEXTP;NEXTP的段址?CS,偏址?IP JMP NEXTP1 ;NEXTP1的段址? CS,偏址? IP 段间间接寻址:指定一个4字节的单元内容作为转移地址,其中低二字节内容?IP,高二字节内容?CS。 例如:JMP DWORD PTR[100H] JMP DWORD PTR[BX] Notice! 段内与段间直接寻址 可以有相同的格式 标号前可以有: SHORT、FAR(NEAR) PTR 机器指令中使用的是位移量 间接转移 注意类型 条件转移指令 标志位条件转移指令 二个无符号数比较转移指令 二个带符号数比较转移指令 标志位条件转移指令 JC 标号 ;当(CF)=1,则转移。 JNC 标号;当(CF)=0,则转移。 JZ/JE 标号;当(ZF)=1,则转移。 JNZ/JNE 标号;当(ZF)=0,则转移。 JS 标号;当(SF)=1,则转移。 JNS 标号;当(SF)=0,则转移。 JO 标号;当(OF)=1,则转移。 JNO 标号;当(OF)=0,则转移。 JP 标号;当(PF)=1,则转移。 JNP 标号;当(PF)=0,则转移。 二个无符号数比较转移指令 设A为被减数,B为减数。 CMP A,B JA 标号;当AB时转移; JAE 标号;当A≥B时转移; JB 标号;当AB时转移; JBE 标号;当A≤B时转移。 CF ZF 二个带符号数比较转移指令 JG 标号;当被减数大转移; JGE 标号;当被减数大于等于减数转移; JL 标号;当被减数小转移; JLE 标号;当被减数小于等于减数转移 SF OF ZF 例子1 完成分段函数 -1 AL 0 AH = 0 AL=0 1 AL0 JCXZ/ JECXZ条件转移指令 格式:JCXZ / JECXZ 标号 功能:当(CX) / (ECX)=0时,转向标号 循环控制指令LOOP/LOOPE/LOOPNE 格式:LOOP 标号; 功能:(CX)-1? CX,若(CX)≠0,则转移 功能等价 DEC CX JNZ 标号 格式:LOOPE/LOOPNE (CX0) and (ZF == 1/0) Notice! 除无条件转移指令只能使用标号; 条件转移指令在386前只能是段内直接短转移,即偏移量为-128~127; JCXZ、 JECXZ和LOOP只能是段内直接短转移。 使用LOOP指令,注意初始值是否为0。 (不同于rep) 习题 找出100个有符号字节数中间的最大数。 过程调用和返回指令 调用指令 CALL 格式:CALL 子程序/地址表达式 功能: 保护断点——将当前断点压入堆栈; 转入子程序——将子程序段的入口地址送入IP(/CS); 段内直接调用 CALL Subx 执行过程:PUSH IP ; Subx入口地址?IP 段内间接调用:子程序的入口偏移地址存放在Reg或者Mem中 CALL BX CALL WORD PTR [1000H] 执行过程:PUSH IP ;子程序入口地址? IP 段间直接调用 CALL Subf 或CALL FAR PTR Subf 执行过程:PUSH CS;PUSH IP;子程序入口地址? CS,IP 段
您可能关注的文档
最近下载
- 3.5.3 手卫生管理(Word版本).docx VIP
- 25、沈园二首教案.doc VIP
- 现场应急处置—典型事故现场应急处置.pptx
- 招标代理服务质量保障策略与措施.docx VIP
- 《中国民间故事》整本书阅读交流展示课ppt课件(完美版)-小学语文五年级必读书目快乐读书吧.pptx VIP
- 新时代中国特色社会主义理论与实践课件-2024年高教版研究生新中特教材.pdf VIP
- 10KV高压开关柜故障分析及处理.docx VIP
- 新22J06 楼梯 参考图集.docx VIP
- 消防应急响应.docx VIP
- 《水运工程标准施工监理招标文件》(JTS110-10-2012).pdf VIP
文档评论(0)