微机原理(四)

版权声明:转载请标明来处,谢谢! https://blog.csdn.net/qq_41600080/article/details/85261817

程序与处理器控制指令

程序控制指令

一、转移指令

通过修改指令的偏移地址或段地址及偏移地址实现程序的转移

  • 无条件转移指令 ——>条件转移指令
  • 无条件转移到目标地址 ——>当具备一定条件时转移到目标地址
1.无条件转移指令

1)无条件段内转移

  • 转移的目标地址在当前代码段内,段地址不改变。
  • 即目标地址是16位偏移地址。

段内直接寻址

  • 转移的目标地址由指令直接给出
  • 格式:JMP Label(近地址标号)
  • 下一条要执行的指令的偏移地址=当前IP+位移量

段内间接转移

  • 转移的目标地址存放在某个16位寄存 器或存储器的某两个单元中
  • 例:
    • JMP MOV BX,1200H
    • JMP BX
  • 执行完上述指令后:
    • IP=1200H

2)无条件段间转移

  • 转移的目标地址不在当前代码段内。
  • 目标地址为32位,包括段地址和偏移地址

段间直接转移

  • 转移的目标地址由指令直接给出

  • 格式:

    • JMP FAR Label

段间间接转移

  • 段间间接寻址

    • 转移的目标地址由指令中的32位操作数给出
    • 32位目标地址须存放于内存中
  • 例:

    • JMP DWORD PTR[BX]
2.条件转移指令
  • 在满足一定条件下,程序转移到目标地址继续执行
  • 条件转移指令均为段内短转移,即转移范围为: -128------+127
  • 基于1个标志位状态实现转移的指令
    • JC/JNC

      • 判断CF的状态。常用于两个无符号数大小比较
    • JZ/JNZ

      • 判断ZF的状态。常用于循环体的结束判断
    • JO/JNO

      • 判断OF的状态。常用于有符号数溢出的判断
    • JP/JPE

      • 判断PF的状态。用于判断运算结果低8位中1的个数是否为偶数
    • JS /JNS

      • 判断SF的状态。常用于判断数的性质

具体判断见书 P113

猜你喜欢

转载自blog.csdn.net/qq_41600080/article/details/85261817