比较两个无符号数的大小

来源:互联网 发布:为什么开不了淘宝店铺 编辑:程序博客网 时间:2024/05/01 18:49

用2个开关分别设置数A、数B,开关拨动一次,数据加一。
另用一个开关作为数据设置结束的确认。
用三个发光二极管显示比较结果:A > B、A < B、A = B。
悬赏分:10 | 解决时间:2011-6-29 11:47
;=======================================
最佳答案:
用汇编语言编写出了程序,用PROTEUS仿真运行时的截图如下:

比较两个无符号数的大小 - 非著名博主 - 电子信息角落
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/9ec1211a4ebcd3b5ac6e75ee.html#

程序如下:
;-------------------------------
sbit L1 = P3^0;        ;定义端口
sbit L2 = P3^1;
sbit L3 = P3^2;
sbit K1 = P3^4;
sbit K2 = P3^5;
sbit K3 = P3^6;
;-------------------------------
    ORG   0000H
    MOV   P0, #0C0H
    MOV   P2, #0C0H
;-------------------------------
IN_K1:
    JB    K1, IN_K2
    CALL  DELAY
    JB    K1, IN_K2
    JNB   K1, $
    SETB  L1
    SETB  L2
    SETB  L3
    INC   R2          ;R2为数A
    CJNE  R2, #10, $ + 5
    MOV   R2, #0
    MOV   A,  R2
    ADD   A,  #(TAB - $ - 3)
    MOVC  A,  @A + PC
    MOV   P0, A
;-------------------------------
IN_K2:
    JB    K2, IN_K3
    CALL  DELAY
    JB    K2, IN_K3
    JNB   K2, $
    MOV   A,  R2
    MOV   B,  R3
    CJNE  A,  B, $ + 7
    CLR   L2
    SJMP  IN_K3
    JC    $ + 6
    CLR   L1
    SJMP  IN_K3
    CLR   L3
;-------------------------------
IN_K3:
    JB    K3, IN_K1
    CALL  DELAY
    JB    K3, IN_K1
    JNB   K3, $
    SETB  L1
    SETB  L2
    SETB  L3
    INC   R3          ;R3为数B
    CJNE  R3, #10, $ + 5
    MOV   R3, #0
    MOV   A,  R3
    ADD   A,  #(TAB - $ - 3)
    MOVC  A,  @A + PC
    MOV   P2, A
    SJMP  IN_K1
;-------------------------------
TAB:
    DB    0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H, 90H
;-------------------------------
DELAY:
    MOV   R6, #10
    MOV   R7, #250
    DJNZ  R7, $
    DJNZ  R6, $ - 4
    RET
;-------------------------------
END
;=======================================
原题网址:http://zhidao.baidu.com/question/284205114.html
回答时间:2011-6-28 21:37
回答者: 做而论道 | 十五级采纳率:43%
提问者对于答案的评价:谢谢了
;=======================================
后记:
程序中,使用了很多的“$”。每使用一个“$”,就可以少写一个标号。
程序中,查找七段码的时候,没有使用常用的 DPTR,这也是一个技巧吧,不知道有没有人理解这个。

0 0
原创粉丝点击