Assembly 为什么在ASM中使用十六进制?

Assembly 为什么在ASM中使用十六进制?,assembly,hex,Assembly,Hex,我似乎找不到答案,这真的开始困扰我了。 这仅仅是因为十六进制值由4位组成吗?(假设第二个操作数为整数,否则-如果我不正确,请指出) 在系统调用sys_exit(0)时,上述两种方法似乎都能起作用,因此,如果用另一种方法更容易实现,那么为什么要使用十六进制呢。您在ASM中所做的大部分工作都是处理寄存器、内存地址等,它们通常用十六进制表示。多花些时间在汇编中,看看你是否仍然认为以10为基数“更容易。”为了保持一致性,首先,作者代码约定的个人偏好,传统。十六进制值由与相同的十进制表示完全相同的位数组成

我似乎找不到答案,这真的开始困扰我了。 这仅仅是因为十六进制值由4位组成吗?(假设第二个操作数为整数,否则-如果我不正确,请指出)


在系统调用sys_exit(0)时,上述两种方法似乎都能起作用,因此,如果用另一种方法更容易实现,那么为什么要使用十六进制呢。您在ASM中所做的大部分工作都是处理寄存器、内存地址等,它们通常用十六进制表示。多花些时间在汇编中,看看你是否仍然认为以10为基数“更容易。”

为了保持一致性,首先,作者代码约定的个人偏好,传统。十六进制值由与相同的十进制表示完全相同的位数组成。这没什么不同。有些数字更容易用十六进制表示。假设未签名的2^64-1。。。它是
0xFFFFFFFFFFFFFF
,但以十进制表示。。。我真的不记得了。至于
0x00
0x01
,这些可能是为了一致性和代码约定。上面每个人的回答都很好,谢谢。我想它可能会根据上下文不同而使用,尽管我不确定。我知道十六进制在较大的值上容易得多;我的意思是在我的情况下:价值很小。谢谢你的回答。
mov   ebx,0x00   ; why not ebx,0?
mov   eax,0x01   ; why not ebx,1?