早教吧 育儿知识 作业答案 考试题库 百科 知识分享

试编写一个程序求出双字长数的绝对值.双字长数在A和A+2单元中,结果存放在B及B+2单元中.1.MOVAX,A;把双字长数的低字放到AX中2.MOVDX,[A+2];把双字长数的高字放到DX中3.TESTDX,8000H;测试双字

题目详情
试编写一个程序求出双字长数的绝对值.双字长数在A和A+2单元中,结果存放在B及B+2单元中.
1.MOV AX,A ;把双字长数的低字放到AX中
2.MOV DX,[A+2] ;把双字长数的高字放到DX中
3.TEST DX,8000H ;测试双字长数的符号
4.JZ RIGHT ;如果是非负数,则直接保存
5.NEG DX ;如果是负数,则求补
6.NEG AX
7.SBB DX,0
8.RIGHT:MOV B ,AX
MOV [B+2],DX
谁能给我解释一下5-7步的意思到底是什么?
▼优质解答
答案和解析
双字,低位在AX中,高位在DX中,
所以,当数字符号位:即DX的最高位为1时,(即负数),需要对数字进行NEG操作,即求取数的补数,即求绝对值.
第7步是为了防止neg ax时产生进位,
看了 试编写一个程序求出双字长数的...的网友还看了以下: