Ну, для начала, значение из rdi
на самом деле rdi
, а не [rdi]
. Последний, даже если предположить, что он действителен (я скорее человек gas
, чем nasm
человек), будет значением, хранящимся в памяти, на которое указывает rdi
.
И, чтобы указать размеры операндов (где gas
использует более краткие movl/movb/etc
операции), вы указываете размер с операндами, например:
mov qword [regValue], 9393
Однако я не думаю, что это необходимо , когда вы используете 64-битный регистр, такой как rdi
для источника, так как размер может быть выведен из этого. Я думаю, что вы можете просто сделать:
mov [regValue], rdi
Кстати, в NASM вы должны использовать default rel
вверху файла, чтобы предпочитать режимы относительной RIP-адресации для статических данных (например, [regValue]
) вместо 32-битного абсолютного.