微机原理与接口技术 ( 7~8章 西安交通大学 --吴宁)


7. 程序控制指令


  • 转移指令

    1.无条件转移指令

      格式:   JMP OPRD
          
          1>  无条件段内转移 (目标地址在当前代码段内,段地址不变,即目标地址为16位偏移地址)
              
              1.段内直接转移:转移目标地址直接由指令给出(下一条指令地址 = IP + 位移量) 
                  
                      JMP Lable(近地址标号)
                      
              2.段内间接转移:转移目标地址存放在某个16位寄存器或存储器的某两个单元中
              
                      例1: MOV BX,1200H
                           JMP BX
                      例2: MOV BX,1200
                           JMP WORD PTR[BX]
                           (取1200和1201作为转移的目)
                           
          2>无条件段间转移(转移的目标地址不在当前的代码段,目标地址为32位,包括段地址和偏移地址)
             
              1.段间直接转移:转移目标地址由指令直接给出
                  
                      JMP FAR Lable(远地址符号)
             
              2.短间间接寻址:转移的目标地址由指令中的32位操作数给出,32位目标地址须放在内存中
                      
                      例:  JMP DWORD PTR[BX]      (double word: IP:低16位 CS:高16位)
    

    2.条件转移指令

      1>基于一个标志位状态实现转移的指令
      
           (1/0)   JC/JNZ      判断 CF 状态,常用于两个无符号数比较大小 
           (1/0)   JZ/JNZ      判断 ZF 状态,常用于循环体的结束判断
           (1/0)   JO/JNO      判断 OF 状态,常用于有符号溢出的判断
              
           (1)     JP/JPE  
           (0)     JNP/JPO     判断 PF 状态,用于判断运算结果低八位中1的个数是否为偶数
            
           (1/0)   JS/JNS      判断 SF 的状态,常用于判断数的性质
           
      2>基于2个或3个标志位状态实现转移的指令
           
           JA/JAE/JB/JBE       判断CF或CF+ZF的状态,常用于无符号数比较大小
           JG/JGE/JL/JLE       判断SF+OF或SF+OF+ZF的状态,常用于有符号数大小的比较 
           
      3>基于 CX 内容转移的指令
      
           JCXZ                可根据指令执行后 CX 的结果实现转移   
    
  • 循环控制

    1.循环范围 当前 IP 为中心的-128 ~ +127范围内循环

    2.循环次数 由 CX 寄存器

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值