在对为什么我的寄存器常量比较在 NASM 大会中不起作用感到头疼之后?,原来我一直在将 1 字节变量 ( db
) 复制到EAX
,这意味着变量后面的三个字节也将被复制。既然我知道了这一点,我正在查看类似场景的代码,并发现了这一点:
在.data
我有一个数组,它的大小定义在一个常量中:
array db 1,2,3,4
size equ $-array
后来,在.text
我有这个:
mov EAX,size
这让我想知道:那里到底发生了什么?尺寸是size
多少?是一个字节吗?一个字?EAX 是否收到不应该的额外字节?