8 位 Z80 处理器中 LD 指令中值的表示是什么?

What is the representation of values in the LD instruction in the 8-bit Z80 processor?

我很难理解这段代码中发生的事情:

LD A, -1;
LD B, 130;
ADD A, B;

ADD指令之后哪些标志被设置为1。

基本上,我不知道,寄存器B里面存储的是什么值。

我找不到任何信息 LD B, 130 中的 130 是指 "1000 0010" 还是 " 0 1000 0010"(所以随后我们必须去掉 MSB/LSB - 我不知道是哪一个)。

因此,我不确定 A 中存储的最终值是多少。

Z80 是 8 位处理器,因此您的 9 位数字 0 1000 0010 没有任何意义。您发布的代码

LD A, -1;
LD B, 130;
ADD A, B;

相当于

LD A, 0hFF
LD B, 0h82
ADD A, B

加法后寄存器A将包含0h81

加法会导致设置进位标志,因为它会生成 "borrow"。进位是 unsigned 加法的结果。

这将导致溢出标志被清除,因为从第 6 位到第 7 位没有 "internal carry"。两个值开始时都是负数,A 保持负数。当带符号的和不能在寄存器中正确表示时设置溢出标志。

零标志将被清除,因为 A 不为零。

将设置符号标志,因为根据第 7 位 A 为负数。