永发信息网

汇编问题:双字有符号数如何比较大小。

答案:2  悬赏:10  手机版
解决时间 2021-03-30 13:49
汇编问题:双字有符号数如何比较大小。
最佳答案
比较双精度数大小,要比较一次或两次。
第一次,先比较高位字,按有符号数规则分大小:大的大,小的小
若高位字相等,再比较低位字,按无符号数规则分大小:高的大,低的小

所以,你程序代码段中???代码可这样编写:

MOV AX, DATA ; 段初始化
MOV DS, AX
MOV AX, STACK
MOV SS, AX

MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX
MOV AX, WORD PTR BUFA
MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB

CMP DX, BX ; 先比高位字
JG MOVE_A ; A大
JL MOVE_B ; B大
CMP AX, CX ; 高位字相等就再比低位字
JAE MOVE_A ; A大
JMP MOVE_B ; B大

MOVE_A:
MOV WORD PTR BUFC+2, DX ; A大
MOV WORD PTR BUFC, AX
JMP EXIT

MOVE_B:
MOV WORD PTR BUFC+2, BX ; B大
MOV WORD PTR BUFC, CX
EXIT:

如果题目是bufa>bufb,则把1送入dx,bufa=bufb,则把0送入dx,bufa
MOV AX, DATA ; 段初始化
MOV DS, AX
MOV AX, STACK
MOV SS, AX

MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX
MOV AX, WORD PTR BUFA
MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB

CMP DX, BX ; 先比高位字
JG MOVE_A ; A大
JL MOVE_B ; B大
CMP AX, CX ; 高位字相等就再比低位字
JA MOVE_A ; A大
JZ MOVE_0 ; 相等
JMP MOVE_B ; B大

MOVE_A:
MOV DX, 1 ; A大
JMP EXIT

MOVE_B:
MOV DX, -1 ; B大
JMP EXIT

MOVE_0:
MOV DX, 0

EXIT:追问亲,你好!我也是用的这种方法,但是老师说没这么复杂。。所以不知道该怎么写。。追答老师说没这么复杂,是因为你定义了BUFA和BUFB。

题目说数据存在DX, AX, BX, CX这四个寄存器中,所以可以取消数据段中BUFA和BUFB的定义,并将程序开头的将数据存入四个寄存器的代码删掉。
全部回答
得减两次。
MOV AX, bufa
MOV BX, bufb
SUB AX, BX
MOV AX, bufa + 2
MOV BX, bufb + 2
SBC AX, BX
JL XIAO
;把 bufa 送到 bufc
XIAO:
;把 bufb 送到 bufc
END追问您好!大小的判断可以写详细一些吗?这里是有符号数的比较额,我是这样想的:先比较高位,如果相等的话,就比较低位;如果不相等,就比较高位。追答bufa 减去 bufb,是低16位相减,产生的借位,再用到高16位的相减。
JL、JG,都是针对有符号数运算的判断。
----
先比较高位,如果相等的话,就比较低位;如果不相等,就比较高位。
这思路可以的。只是当数字较小(仅仅几个字节)时,这方法反而更麻烦。追问谢谢,如果题目是bufa>bufb,则把1送入dx,bufa=bufb,则把0送入dx,bufabufa:823affffh
bufb:823aacdeh
je ee
jg gg
mov dx,-1 ;bufajmp exit
gg: mov dx,1 ;bufa>bufb
jmp exit
ee: mov dx,0
最后dx里面出现的0,我哪里写错了呢?追答在:
je ee
jg gg
的前面,应该先做一次减法。追问亲,我有减的。。。
mov ax,word ptr bufa
mov bx,word ptr bufb
sub ax,bx
mov ax,word ptr bufa+2
mov bx,word ptr bufb+2
sbb ax,bx
je ee
jg gg
但是还是不行,求详解。。拜托了%>_<%追答哦,相等!
你的运算,是低16位相等,JE,条件就成立了。
DD,应该判断,两次都相等,才是相等。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
5比a=7比ba和b成什么比例a与b的最简比是多少
rohs认证机构有哪些
18吨减9吨800千克等于多少
判断题小明早上7:30到校,这句话表示时刻.
养猪。一般一包饲料要拌多少面多少豆粕
How`s it going?这句中it going连在一起怎么
请教tridef 3d不能播放MKV文件
反皮鞋子怎样清洗??
找一部国产老电视剧,有点魔幻题材的,主演好
电大如何申请学士学位
用简便方法计算1687254-187254=
求几部古代(主要)和现代做生意的小说,请诸
单选题纤维素是一种多糖,下列生物中能找到该
一女性朋友过生日。
古时候的五府是指五辈人吗
推荐资讯
尹国明是谁啊?
数字磁场能量组合是两位数为一组吗?还是三位
平淡 的活着,有人在服你就是幸福, 有人心痛
48cc嘉陵助力踏板车很耗油怎么办?
关于老人去世后安葬费和抚恤金的问题
已知一气筒在27℃,30.0atm时,含480g的氧气
座飞机 旅客携带的物品长度是多长
胜利羽毛球拍纳米6还是纳米7好!
满腹诗书气自华的下一句是什么
我有少哟有少年白发,会交不到女朋友吗?
一个耳聋当艺术家是谁
为什么用p-erk1/2而不用erk1/2做免疫
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?