在阅读了8051项目的某些程序集后,我很难理解为什么有些十六进制值的前导零,而有些则没有,我以为两个示例都将acc.5设置为1是正确的吗?
移动#020h
mov a,#20h
答案 0 :(得分:1)
我猜对两个示例都将acc.5设置为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"
作者喜欢以相同的方式编写所有值。如果存在一个不为零的值,则可能是拼写错误,错案,来自其他作者或出于其他任何原因。