如何用汇编语言求AX中数的绝对值,并存AX中
1个回答
展开全部
你说一个思路,如果AX的最高位是0,则AX的内容就是它的绝对值,如果AX的最高位是1,那么就把AX按位取反,末尾+1,就得到了AX的绝对值
------Solutions------
so easy
code segment
assume cs:code
start: and ax,0111111111111111b
mov ah,4ch
int 21h
code ends
end start
------Solutions------
neg
------Solutions------
.
.
.
mov ax,8123H
test ax,8000h
jz eixt ;如果最高位为0则为正数,不处理
neg ax ;否则求补并存入原寄存器
exit:mov ah,4ch
int 21h
.
.
------Solutions------
;just this works
test ax,8000h
jz ok
neg ax
ok:...
------Solutions------
cwd
xor ax, dx
sub ax, dx
恐怕不少汇编水平不错的人都不知道,而C编译器通常却有最快答案
楼上几位用条件转移的就慢得多
------Solutions------
xiaott(我能睡觉吗)
第4句 neg ax 能否改为 jnz ax
neg我不知道是什么,好像是否定的意思
------Solutions------
------Solutions------
so easy
code segment
assume cs:code
start: and ax,0111111111111111b
mov ah,4ch
int 21h
code ends
end start
------Solutions------
neg
------Solutions------
.
.
.
mov ax,8123H
test ax,8000h
jz eixt ;如果最高位为0则为正数,不处理
neg ax ;否则求补并存入原寄存器
exit:mov ah,4ch
int 21h
.
.
------Solutions------
;just this works
test ax,8000h
jz ok
neg ax
ok:...
------Solutions------
cwd
xor ax, dx
sub ax, dx
恐怕不少汇编水平不错的人都不知道,而C编译器通常却有最快答案
楼上几位用条件转移的就慢得多
------Solutions------
xiaott(我能睡觉吗)
第4句 neg ax 能否改为 jnz ax
neg我不知道是什么,好像是否定的意思
------Solutions------
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询