假设我们的数据存在al中,我们需要判断al的正负,并且当al为正数时,ah = 1, al 为负数时, ah = -1
琢磨了一下子这道题目,想要在汇编中实现 选择,那就只能用条件转跳了,条件转跳 肯定就和标志位 息息相关,用啥子,标志位咧,ZF?CF?AF?SF?
我好难啊喵~,都试一遍吧
第一种:
start: mov al, 1
mov ah, 1
test al, 80h
jz pos
neg ah
pos: nop
第二种:
mov ah, 1
neg al
js pos
neg ah
pos: nop
第三种:
mov ah, 1
cmp al, 0
jge pos
neg ah
pos: nop
虽然第三种和第二种 都可以实现 不修改数据的比较,但是应该是第二种更加快速,毕竟涉及操作位少,而且进行的也是位运算
原文:https://www.cnblogs.com/daker-code/p/12553631.html