;
;4、X、Y为两个无符号数,编程比较两数大小。
;
; x,y 可以通过修改x,y的值 来进行比较
DATAS SEGMENT
x dw 8000
y dw 8100
x_bigger db "x > y"
db 0ah,0dh,'$'
y_bigger db "x< y"
db 0ah,0dh,'$'
equal db "x = y"
db 0ah,0dh,'$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;算法思想是先比较最高位,也就是有符号数的符号位,此时如果只有;
;一个为‘1’的话,直接得出结果,否则下一步比较
mov ax,x
mov bx,y
and ax,8000h
and bx,8000h
cmp ax,bx
jg x_is_bigger
jb y_is_bigger
mov ax,x
mov bx,y
and ax,7fffh
and bx,7fffh
cmp ax,bx
jg x_is_bigger
jb y_is_bigger
lea dx,equal
mov ah,9h
int 21h
end_point:
MOV AH,4CH
INT 21H
x_is_bigger:
lea dx,x_bigger
mov ah,9h
int 21h
jmp end_point
y_is_bigger:
lea dx,y_bigger
mov ah,9h
int 21h
jmp end_point
CODES ENDS
END START
阅读(688) | 评论(0) | 转发(0) |