1
這是我遇到的行爲的一個例子。我的彙編程序似乎沒有輸出32位代碼
在組裝下面的程序:
[BITS 32]
mov eax, 0x1234
使用:
nasm -f bin in.asm -o out.bin
我得到以下二進制輸出:
B8 34 12 00 00
B8是操作碼 '進入EAX' 和它應該採取一個32位值並將其放在那裏(即應該只是B8 34 12
)。但相反,它將額外的00 00
視爲一個64位值。
我不知道這是否是NASM特有的問題,因爲我沒有嘗試過其他的彙編程序。
媽的,你說得對。直到再過10分鐘才能接受答案... – almosnow
還要注意,如果你沒有製作一個扁平的二進制文件,你需要使用'-felf64'或其他任何東西,並且這使得[[64位]]成爲多餘的。 '[bits 32]'可以讓你將32位機器碼彙編成一個64位的目標文件,但這通常不會有用。 –
@PeterCordes必須在您的最新消息前幾秒刪除我的無關評論。肯定錯過了'不' –