英特尔 8051 EdSim51 7 段显示器

Intel 8051 EdSim51 7 Segment Display

为什么当我删除代码中二进制文件中的 "B" 时,它在显示数字时会乱码?

ORG 0000H
START:
    SETB P3.3
    SETB P3.4
    MOV P1, #11111001
    CALL DELAY
    CLR P3.3
    MOV P1, #10100100
    CALL DELAY
    CLR P3.4
    SETB P3.3
    MOV P1, #10110000
    CALL DELAY
    CLR P3.3
    MOV P1, #10011001
    CALL DELAY
    JMP START
DELAY: MOV R0, #45H
    DJNZ R0, $
    RET
END

谢谢

因为汇编程序会查看最后一个字符来确定数字的基数。

如果您使用:

MOV P1, #10B

表示二进制值10,给出十进制数2。

如果您使用:

MOV P1, #10

表示十进制的10

如果您使用:

MOV P1, #10H

表示十六进制值10,给出十进制数16。

注意:您的汇编程序应该已经警告过您有关数字溢出的信息。