COMPARE是 8085 微处理器中广泛使用的一条重要指令。 8085 指令集有两种类型的比较操作:与累加器比较 (CMP) 和立即数与累加器比较 (CPI)。
微处理器通过从(A)中减去数据字节,将数据字节(或寄存器/存储器内容)与累加器的内容进行比较,并通过修改来指示数据字节是否小于、大于或等于累加器的内容旗帜。但是,内容不会被修改。以下部分简要介绍了两种类型的 COMPARE 指令:
- 比较(寄存器或存储器)与累加器 (CMP R/M) –
这是一个 1 字节的指令。它将寄存器或存储器中的数据字节与累加器的内容进行比较。- 如果 A 小于 (R/M),则设置 CY 标志并重置零标志。
- 如果 A 等于 (R/M),则设置零标志并重置 CY 标志。
- 如果 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
- 比较立即数与累加器(CPI 8 位)——
这是一条 2 字节指令,第二个字节是 8 位数据。它将第二个字节与累加器的内容进行比较。- 如果 A 小于 8 位数据,则设置 CY 标志并重置零标志。
- 如果 A 等于 8 位数据,则设置零标志并重置 CY 标志。
- 如果 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