在Assembly中将值设置为null

spu*_*rra 3 null x86 assembly

我试图将寄存器中的值设置为null,以便稍后测试其他值是否为null.我环顾互联网,检查一下null的表示在IA32中是什么,但是找不到任何正确的东西.

有人可以帮忙吗?

Eri*_*hil 8

在IA-32上,通用寄存器只是位,大多数被解释为整数值.在"目前没有持有价值"的意义上,它们没有其他状态,例如"null".(有些架构确实有这样的附加状态,IA-32中的浮点寄存器可以有这样的状态.)

如果要将IA-32通用寄存器设置为"无值"状态,则无法执行此操作.

如果要将寄存器设置为"空指针"状态,与C NULL宏相同,则在大多数C实现中将其表示为零.


Jam*_*mes 6

不同语言Null的处理方式不同,并且 Null 具有多个概念。

该符号\0为 null(或 ascii 中为 nul)。

如果您的意思是可空类型,这是一个抽象,我不相信我们在汇编中拥有这种抽象,那么类型并不像高级语言中那么强大。

如果你指的是空指针,大多数语言将Null定义为0,也就是说该指针不指向任何地址,等等。

请参阅维基百科上的Null