如何用汇编语言求AX中数的绝对值,并存AX中
答案:2 悬赏:80 手机版
解决时间 2021-02-21 23:32
- 提问者网友:抽煙菂渘情少年
- 2021-02-21 02:23
如何用汇编语言求AX中数的绝对值,并存AX中
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-02-21 03:29
你说一个思路,如果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------
全部回答
- 1楼网友:底特律间谍
- 2021-02-21 03:55
; 本程序通过编译,运行正确 code segment assume cs:code,ds:code,es:code start: mov cx,ax mov dx,bx test cx,8000h jz exit_proc not dx not cx add dx,1 adc cx,0 exit_proc: mov ah,4ch ;结束程序 int 21h code ends end start ;编译到此结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯