汇编问题:双字有符号数如何比较大小.比较两个双精度数,比较大小,将大的数送入BUFC两个数分别用DX AX,BX CX表示datasegmentbufadd123a4567hbufbdd223abcdehbufcdd?dataendsstacksegmentdb200dup(0)stackendsco

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 07:43:34

汇编问题:双字有符号数如何比较大小.比较两个双精度数,比较大小,将大的数送入BUFC两个数分别用DX AX,BX CX表示datasegmentbufadd123a4567hbufbdd223abcdehbufcdd?dataendsstacksegmentdb200dup(0)stackendsco
汇编问题:双字有符号数如何比较大小.
比较两个双精度数,比较大小,将大的数送入BUFC
两个数分别用DX AX,BX CX表示
datasegment
bufadd123a4567h
bufbdd223abcdeh
bufcdd?
dataends
stacksegment
db200dup(0)
stackends
codesegment
assumecs:code,ds:data,ss:stack
start:
?
codeends
endstart

汇编问题:双字有符号数如何比较大小.比较两个双精度数,比较大小,将大的数送入BUFC两个数分别用DX AX,BX CX表示datasegmentbufadd123a4567hbufbdd223abcdehbufcdd?dataendsstacksegmentdb200dup(0)stackendsco
比较双精度数大小,要比较一次或两次.
第一次,先比较高位字,按有符号数规则分大小:大的大,小的小
若高位字相等,再比较低位字,按无符号数规则分大小:高的大,低的小
所以,你程序代码段中?代码可这样编写:
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