十六进制值中的前导零
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"
作者喜欢用同样的方式写所有的值。如果有一个值不为零,则可能是拼写错误、漏写、来自其他作者或出于任何其他原因。
阅读 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"
作者喜欢用同样的方式写所有的值。如果有一个值不为零,则可能是拼写错误、漏写、来自其他作者或出于任何其他原因。