1

Agner Fog 的 objconv 在我的源代码反汇编中显示了几个实例,其中出现了一条消息“注意:立即操作数可以通过零扩展而变小。”

例如,它出现在这两行的正上方:

mov rdi,out_fname_L

mov rsi,file_mode_open_read

就在调用 fopen 之前。

out_fname_L 在 .data 部分中定义为:

out_fname_L: db "/opt/Output_Data/A_Output_40MB",0x00

我试过这些:

movzx edi,out_fname_L
movzx edi,dword out_fname_L
movzx edi,qword out_fname_L
movzx edi,byte out_fname_L (because it's a db memory operand)

但它们都不起作用。NASM 以“操作码和操作数的无效组合”响应。内存操作数是一个 64 位地址。

我的错误是什么?

使用适用于 Ubuntu 18.04 的 NASM 汇编器进行组装。

4

0 回答 0