我正在编写一个古老的Turbo Pascal v.3 8086编译器的克隆。我想比较两个无符号整数,如果它们相等,则设置ax = 1(true),否则设置ax = 0(false)。
鉴于声明
bool:=1=2;
Turbo Pascal发出
mov ax,1 ; argument 1
cmp ax,2 ; argument 2
mov ax,1 ; 1 = true
jz L1 ; arguments are equal, ax=1
dec ax ; arguments are not equal, ax=0
L1:
mov bool,ax
是的,它有效,但看起来很笨拙和尴尬。 8086有更好的方法吗?
答案 0 :(得分:3)
mov ax,argument1
sub ax,argument2
add ax,-1
sbb ax,ax
inc ax
mov bool,ax