Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20270
  • 博文数量: 17
  • 博客积分: 730
  • 博客等级: 军士长
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-24 12:09
文章分类

全部博文(17)

文章存档

2010年(17)

我的朋友
最近访客

分类: 嵌入式

2010-01-24 13:38:51

;
;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) |
0

上一篇:数的排序

下一篇:成绩管理

给主人留下些什么吧!~~