十六进制值中的前导零

Leading zeros in hex values

阅读 8051 项目的一些程序集,我很难理解为什么有些十六进制值有前导零而有些没有,我假设这两个示例都将 acc.5 设置为 1 是否正确?

mov a, #020h

mov a, #20h

am I right in presuming both examples set acc.5 to 1?

是的。


但您隐藏的问题是:“为什么十六进制值有一个前导零,即使它似乎没有必要?

好吧,这只是为了与以 'A' 到 'F' 开头的值保持视觉一致性。如果它们不以数字开头,它们将不会被识别为数字,而是识别为标识符。

    mov a, #0E0H  ; loads hex E0 (= dec 224) into ACC
    mov a, #E0H   ; loads the value of "E0H" into ACC, with any value defined as "E0H"

作者喜欢用同样的方式写所有的值。如果有一个值不为零,则可能是拼写错误、漏写、来自其他作者或出于任何其他原因。