我目前正在编写一个 8080 仿真器,并且对为什么在操作码列表中将进位标志标记为“已修改”感到困惑,例如
https://pastraiser.com/cpu/i8080/i8080_opcodes.html 或 http://www.emulator101.com/8080-by-opcode.html
它只是设置为 0 还是有一种实际的方法来计算按位运算的进位?我有点困惑,因为 Pastraiser 说它已修改,而不仅仅是设置为 0。
我目前正在编写一个 8080 仿真器,并且对为什么在操作码列表中将进位标志标记为“已修改”感到困惑,例如
https://pastraiser.com/cpu/i8080/i8080_opcodes.html 或 http://www.emulator101.com/8080-by-opcode.html
它只是设置为 0 还是有一种实际的方法来计算按位运算的进位?我有点困惑,因为 Pastraiser 说它已修改,而不仅仅是设置为 0。
英特尔8080 汇编语言编程手册是此类问题的权威来源。它对每条指令都有详细的描述。对于按位逻辑运算,它表示进位标志已重置(即设置为 0):
ANA
带有累加器的逻辑和(原文如此!)寄存器或内存[...]
AND
指定的字节与累加器的内容逐位进行逻辑编辑。进位位复位为零
同样对于XRA
和ORA
。