📜  比较 8085 中的指令

📅  最后修改于: 2021-09-27 15:45:51             🧑  作者: Mango

COMPARE是 8085 微处理器中广泛使用的一条重要指令。 8085 指令集有两种类型的比较操作:与累加器比较 (CMP) 和立即数与累加器比较 (CPI)。

微处理器通过从(A)中减去数据字节,将数据字节(或寄存器/存储器内容)与累加器的内容进行比较,并通过修改来指示数据字节是否小于、大于或等于累加器的内容旗帜。但是,内容不会被修改。以下部分简要介绍了两种类型的 COMPARE 指令:

  1. 比较(寄存器或存储器)与累加器 (CMP R/M) –
    这是一个 1 字节的指令。它将寄存器或存储器中的数据字节与累加器的内容进行比较。
    1. 如果 A 小于 (R/M),则设置 CY 标志并重置零标志。
    2. 如果 A 等于 (R/M),则设置零标志并重置 CY 标志。
    3. 如果 A 大于 (R/M),则 CY 和零标志复位。

    当内存为操作数时,其地址由 HL Pair 指定。不修改任何内容;但是所有剩余的标志(S、P、AC)都会根据减法的结果受到影响。

    例子:
    设寄存器 B 包含数据字节 62H,累加器 A 包含 57H。然后,

    Instruction- CMP B
    Before execution: A = 57, B = 62
    After execution: A = 57, B = 62   

    标志:由于 A 小于 B,因此设置 CY 并重置 Z 标志。

    CY=1, Z=0 
  2. 比较立即数与累加器(CPI 8 位)——
    这是一条 2 字节指令,第二个字节是 8 位数据。它将第二个字节与累加器的内容进行比较。
    1. 如果 A 小于 8 位数据,则设置 CY 标志并重置零标志。
    2. 如果 A 等于 8 位数据,则设置零标志并重置 CY 标志。
    3. 如果 A 大于 8 位数据,则 CY 和零标志复位。

    不修改任何内容;但是所有剩余的标志(S、P、AC)都会根据减法的结果受到影响。

    例子:
    让累加器 A 包含 C2H。然后,

    Instruction- CPI C2H
    Before execution: A = C2, B = C2
    After execution: A = C2, B = C2  

    标志:由于 A 等于数据字节,因此设置 Z 并重置 CY 标志。

    CY=0, Z=1