Objconv предлагает немедленное расширение с нулевым расширением, но movzx не работает
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-битный адрес.
В чем моя ошибка?
Собран на ассемблере NASM для Ubuntu 18.04.