8086/8088的汇编语言里面,以字母开头的16进制数,前面必须加“0”。如0a2h,0fdh,0bcdeh等。
加入0可以将立即数与其他指令区分开,比如AH可以表示AX寄存器的高位和十六进制的A。
假设有这样一条指令 "MOV BH,AH"
由于无法确定AH的含义因此产生歧义,若在立即数前加入0,则立即数十六进制立即数A表示为“0AH”寄存器AX高位则表示为"AH"则上面这条指令的含义便是将AX寄存器高位内容移入BX寄存器高位,便消除了歧义。
我来! 因为通过之前学习都知道内存是16进制来表示20为地址所以是五位吧 但是cpu寄存器只能访问16为也就是 16进制的4位 所以立即数的要求就是 你得5位吧 这样在内存中得存下 你也得满足实际寄存器吧 就只在开头加一个零实际上后4位才是真正的数
这个是汇编里面规定的:不能字母打头,所以加0
为了区分 立即数和符号关键字
0-9带头的是立即数