DCX H
当然是算术指令,但 16 位递增和递减指令不会更改 i8080 上的任何标志,即使 8 位指令(例如DCR H
and DCR L
)会更改。您可以在英特尔 8080 微型计算机系统用户手册中找到更多详细信息,请点击此处:
http://www.nj7p.info/Manuals/PDFs/Intel/9800153B.pdf
此外,查看 Z80 仿真器的内部结构可能会有所帮助。以下是与我的实现进行比较的相关片段:
void on_dec_rp(regp rp) {
self().on_set_regp(rp, dec16(self().on_get_regp(rp)));
}
DCX rp
void on_dec_r(reg r) {
fast_u8 n = self().on_get_reg(r);
fast_u8 f = self().on_get_f();
fast_u8 hf = (n & 0xf) > 0 ? hf_mask : 0;
n = dec8(n);
f = (f & (cf_mask | yf_mask | xf_mask | nf_mask)) |
(n & sf_mask) | zf_ari(n) | hf | pf_log(n);
self().on_set_reg(r, n);
self().on_set_f(f);
}
直流电阻