第3章-6微机原理.ppt

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

控制转移类 一、无条件、条件转移指令 二、循环指令   三、子程序调用及返回指令   四、中断指令   五、系统功能调用 一、无条件转移指令   JMP指令分成4种类型: ⑴ 段内直接转移 ⑵ 段内间接转移 ⑶ 段间直接转移 ⑷ 段间间接转移 解释段内涵义 (1)段内近转移(near) 在当前代码段64KB范围内转移( ±32KB范围) (2)段内短转移(short) 转移范围当前代码段±127B范围内转移(可用一个字节表达,在段内-128B~+127B范围的转移) 段内转移不需要更改CS段地址,只要改变IP偏移地址 解释段间涵义 段间转移——远转移(far) 从当前代码段跳转到另一个代码段,可以在1MB范围 需要更改CS段地址和IP偏移地址 目标地址必须用一个32位数表达,叫做32位远指针。 直接:转移地址象立即数一样,直接出现在指令中 间接:转移地址在寄存器或内存单元中 段内直接转移 JMP label 例如: jmp output   …… output:mov result,al 二、条件转移指令 功能:若指定的条件cc如果成立,程序转移到由标号label指定的目标地址去执行;若条件不成立,顺序执行下一条指令 说明:(1) Jcc?    (2)操作数label是采用段内短转移    (3) Jcc指令不影响标志,但要利用标志 1. 判断单个标志位状态 这组指令单独判断5个状态标志之一 ⑴ JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否为零(或相等)。 JZ/JE表示结果为零(或相等),则转移 ⑵ JS和JNS:利用符号标志SF,判断结果是正是负, JS表示结果为负,则转移。 ⑶ JO和JNO:利用溢出标志OF,判断结果是否产生溢出, JO表示溢出则转移 ⑷JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果中“1”的个数是偶是奇,JP表示偶数个1 ⑸JC和JNC:利用进位标志CF,判断结果是否进位或借位,进位或借位为1则转移 例:JZ/JNZ指令应用      test al,80h jz next0 mov ah,0ffh jmp done next0: mov ah,0 done: ... 例:JS/JNS指令 编写一程序段,实现将BX与AX相减的值的绝对值存入BX中 mov ax,X sub ax,Y jns nonneg neg ax ;neg是求补指令 nonneg: mov result,ax 例:JC/JNC指令 ;记录BX中1的个数 xor al,al ;AL=0,CF=0 again: test bx,0ffffh ;等价于 cmp bx,0 je next shl bx,1 jnc again inc al jmp again next: ... ;AL保存1的个数 记录BX中“1”的个数 xor al,al ;AL=0,CF=0 again: cmp bx,0 jz next shl bx,1 ;也可使用 shr bx,1 adc al,0 jmp again next: ... ;AL保存1的个数 2、比较无符号数高低 无符号数高低有4种关系: ⑴高于(不低于等于): JA ( JNBE ) ⑵高于等于(不低于): JAE (JNB) ⑶低于(不高于等于):JB(JNAE) ⑷低于等于(不高于):JBE(JNA) 例:编写一程序段,实现比较两个无符号数的大小,将较大者存放在AX寄存器中 cmp ax,bx ;比较ax和bx,(AX)-(BX) jae next ;若ax≥bx,转移 xchg ax,bx ;若ax<bx,交换 next: ... 3、比较有符号数大小 两数的大小分成4种关系: ⑴大于(不小于等于): JG ( JNLE ) ⑵大于等于(不小于): JGE (JNL) ⑶小于(不大于等于):JL(JNGE) ⑷小于等于(不大于):JLE(JNG) 三、循环指令 循环指令默认利用CX计数器,方便实现计数循环的程序结构 四、子程序指令 子程序是完成特定功能的一段程序 当主程序(调用程序)需要执行这个功能时,采用CALL调用指令转移到该子程序的起始处执行 当运行完子程序功能后,采用RET返回指令回到主程序继续执行 主程序与子程序 1、子程序调用指令 CALL指令分成4种类型 CALL 子程序名    ;段内直接调用 CALL WORD PTR r16/m16  ;段内间接调用 CALL far ptr子程序名 ;段间直接调用 CALL DWORD ptr mem ;段间间接调

文档评论(0)

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

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

1亿VIP精品文档

相关文档