网站大量收购独家精品文档,联系QQ:2885784924

(微机原理与接口技术知识)chapter06程序控制指令.ppt

(微机原理与接口技术知识)chapter06程序控制指令.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(微机原理与接口技术知识)chapter06程序控制指令.ppt

第 6章 程序控制指令;转移指令;无条件转移指令; 在80386~Pentium4微处理器中,位移量是32位,因此近转移指令是5字节长 保护模式下 的代码段长度达4GB,因此32位的位移量允许近转移到±2GB范围内的任何位置 远转移:如果微处理器(80286~Pentium 4)按保护模式操作,段地址寻址包含远转移段基地址的描述符 短转移和近转移 通常称为段内转移,远转移通常称为段间转移 ;;;例 2 例2给出了与例1相同的基本程序,只是转移的距离大些 字母R指示0200H为可重定位的转移地址 可重定义的0200H地址只由汇编程序内部使用 实际汇编成的机器语言指令为E9 F6 01,没有出现在汇编程序列表中 对应这个转移的实际位移量是01F6H;;;例 3 远转移指令有时用FAR PTR伪指令作为说明 获得远转移的另一种方法是定义标号为远标号 标号UP用EXTRN UP: FAR定义为远标号 当对程序文件进行连接时,连接程序把标号UP的地址插入JMP UP指令,也把段地址插入JMP START指令 ;;使用寄存器操作数的转移;例 4 给出了怎样访问代码段中的转移表 这个程序从键盘读入键值,然后修正ASCII码。AL中的00H,01H或02H分别对应1,2或3 如果键入1,2或3,AH清除为00H 因为转移表中包含16位的偏移地址,为了存取转移表中16位的地址,AX中的内容被加倍成0,2或4 然后,转移表的起始地址装入SI,与AX相加形成指向转移目标的地址 MOV AX, [SI]指令从转移表中获取地址,这样JMP AX指令就能转移到存储在转移表中(1,2或3)的地址;;;使用变址寻址方式的间接转移;;;条件转移和条件设置指令;;注意 条件转移指令测试以下标志位:符号(S), 零(Z),进位(C),奇偶(P)和溢出(O) 在无符号数集合中,FFH(255)大于00H,而有符号数FFH(-1)小于00H 比较有符号数时用JG, JL, JGE, JE和JNE指令 比较无符号数时用JA, JB, JAE, JBE, JE和JNE指令 ;;例 6 使用JCXZ条件转移指令搜素表内的0AH;条件设置指令;;LOOP指令;例 7 查看174页的例6.7;条件 Loop指令;控制汇编语言程序的流程;IF 的例子 参见表6.3 参见第175页的6.8 参见第176页的6.9 参见第176页的6.10 DO-WHILE的例子 参见第177页的6.11 参见第178页的6.12 参见第179页的6.13 REPEAT-UNTIL的例子 参见???180页的6.14 参见第181页的6.15 ;过程; RET指令从堆栈弹出地址,因此能够返回到CALL之后的指令 过程要以PROC 伪指令开始并且以ENDP伪指令结束 两个伪指令与过程的名字一起出现 PROC伪指令后面是过程的类型:NEAR或FAR NEAR或FAR过程后面可以用USES语句,USES语句使进入过程后将一些寄存器内容自动压入堆栈,退出过程前自动弹出堆栈;段内和段间两种过程的区别;CALL指令;远CALL指令: 5字节的指令,操作码后面跟随IP和 CS寄存器的值 远CALL指令转移到由第2~5字节指示的指令地址之前,先将IP和CS的内容压入堆栈 保护模式中的远CALL指令,寻址6个字节的内容,前4个字节是EIP,后2个字节是CS;;;使用寄存器操作数的CALL指令;使用间接存储器寻址的CALL指令;RET指令;例 14 参见第186页的例6.19;中断概述;中断指令;INT指令执行;IRET指令返回执行;例 15 中断服务程序;中断控制;机器控制指令; 第三次实验: 1、编程实现各种进制之间的转换,例如十进制到二进制、二进制到十进制,十六进制到二进制、二进制到十六进制等; 2、编写数字排序子程序,通过主程序调用实现数组数据的排序(升序或降序);

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档