【发布时间】:2010-12-22 21:07:37
【问题描述】:
我有一个小的 8086 仿真器,并且我有一个长期存在的错误 2 年了,因为 AF 在 sub 内部不能正常运行并添加指令。
我目前计算其值的方法是 8 位数字和减法:
uint8_t base=... , subt=...
base=base&0xF;
subt=subt&0xF; //isolate bottom nibble
if((int16_t)base-subt>7 || (int16_t)base-subt<-7){
flags.af=1;
}else{
flags.af=0;
}
(假设像 sub base,subt 这样的指令)
添加它是这样的:
uint8_t base=... , adder=...
base=base&0xF;
adder=adder&0xF; //isolate bottom nibble
if(base+adder>7 || base+adder<-7){
flags.af=1;
}else{
flags.af=0;
}
(对于像 add base,adder 这样的指令)
对于此类指令,我如何在模拟器中正确计算 AF 标志?
【问题讨论】: