汇编如何实现正负数判断

假设我们的数据存在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

虽然第三种和第二种 都可以实现 不修改数据的比较,但是应该是第二种更加快速,毕竟涉及操作位少,而且进行的也是位运算

posted @ 2020-03-23 17:38  秦_殇  阅读(6866)  评论(0编辑  收藏  举报