Синтаксис MASM / TASM / JWASM отличается от синтаксиса NASM.Если вы хотите загрузить / сохранить данные по адресу, вам нужно явно использовать квадратные скобки.Если вы хотите использовать инструкцию MOV
, чтобы поместить адрес метки в переменную, вы не должны использовать квадратные скобки.Квадратные скобки похожи на оператор удаления ссылок.
В 32-битном коде вы хотите убедиться, что адреса загружены в 32-битные регистры.Любой адрес выше 255 не помещается в 8-байтовом регистре, любой адрес выше 65535 не помещается в 16-битном регистре.
Код, который вы, вероятно, искали:
section .text
global _start
_start:
call _input
mov al, [input]
mov ah, [maschera]
and al, ah
mov [input], al
call _output
jmp _exit
_input:
mov eax, 3
mov ebx, 0
mov ecx, input
mov edx, 1
int 80h
ret
_output:
mov eax, 4
mov ebx, 1
mov ecx, input
mov edx, 1
int 80h
ret
_exit:
mov eax, 1
int 80h
section .data
maschera: db 11111111b
segment .bss
input resb 1