Я пытаюсь написать программу, которая берет двоичный ввод из текстового файла и отправляет его как параметр функции сборки. Эта функция сборки должна печатать этот двоичный вход на экране. Вход отправляется из кода c в код сборки по его адресу.
Когда я пытаюсь собрать мой asm файл, я получаю ошибку "неправильная комбинация опкодов и операндов" в строке mov msg, [esp+8]
. Я хочу скопировать мой аргумент char
из стека в мою статическую переменную. Почему это не действительная инструкция?
Полный код:
segment .data
len equ 31
segment .bss
msg resb 0
segment .text
global sequence_generator
sequence_generator:
push ebp
mov ebp, esp
mov msg, [esp+8]
mov eax,4
mov ebx,1
mov ecx,msg
mov edx,len
int 80h
pop ebp
ret