zoukankan      html  css  js  c++  java
  • 8086汇编 cmp 指令

    8086汇编 cmp 指令

    cmp 是比较指令,功能相当于减法指令,只是不保存结果。
    cmp 指令执行后,将对标志寄存器产生影响。

    格式:cmp 操作对象1,操作对象2
    功能:计算操作对象1–操作对象2

    原理:通过做减法运算影响标志寄存器,标志寄存器的相关位的取值,体现比较的结果。

    cmp 指令说明

    一、应用使用

    其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

    应用方法:用标志寄存器值,确定比较结果。

    二、无符号数比较与标志位取值

    思路:通过cmp 指令执行后相关标志位的值,可以看出比较的结果

    指令:cmp ax,bx

    三、有符号数比较与标志位取值

    问题:用cmp来进行有符号数比较时,CPU用哪些标志位对比较结果进行记录

    仅凭结果正负(SF)无法得出结论,需要配合是否溢出(OF)得到结论。

    示例指令:cmp ah,bh

    条件转移指令

    ;或者其他影响标志寄存器的指令

    cmp oper1, oper2  

    jxxx 标号

    一、根据单个标志位转移的指令

    二、根据无符号数比较结果进行转移的指令

     三、根据有符号数比较结果进行转移的指令

     四、转移指令全写

    j-Jump e-Equal n-Not b-Below a-Above L-less g-Greater   s-Sign C-carry p-Parity o-Overflow  z-Zero

    条件准转移指令使用

    jxxx系列指令和cmp指令配合,构造条 件转移指令

    • 不必再考虑cmp指令对相关标志位的影响和jxxx指令对相关标志位的检测
    • 可以直接考虑cmp和jxxx指令配合使用时表现出来的逻辑含义。
    • jxxx系列指令和cmp指令配合实现高级语言中if语句的功能

    例1:如果(ah)=(bh),则(ah)=(ah)+(ah),否则(ah)=(ah)+(bh)

    例2:如果(ax)=0,则(ax)=(ax)+1

  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/12485150.html
Copyright © 2011-2022 走看看