поэтому я пытаюсь сделать код «шифрования» с помощью команды xor
это мой код
.486
.model flat,stdcall
option casemap :none ;case sensitive
;;_____MASM MACROS___
include \masm32\include\masm32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\kernel32.lib
;;_____DATA____
.data
msg DB "I LIKE ASSEMLY$",0H
my_xor db 0101010101010101b
;;_____CODE____
.code
_start:
encript_lbl:
mov ax,[word msg]
xor ax,[my_xor]
mov [msg],ax
jmp print_lbl
decript_lbl:
mov ax,[msg]
xor ax,[my_xor]
mov [msg],ax
print_lbl:
mov dx,offset msg
mov ah,9h
int 21h
mov ah,2 ;new line
mov dl,10
int 21h
mov dl,13
int 21h
jmp decript_lbl
end _start
когда я пытаюсь скомпилировать его в masm32, я получаю кучу ошибок
lines 23,24,28,29,30 invalid instruction operand (a2070)
line 22 missing operator in expration (a2206)
line 34 (a2022) instruction operand must be in the same size
line 14 (a2071) initializer magnitude to large for spesofied
теперь я пытался сделать много вещей, чтобы исправить это, но когда мне удается решить 1 проблему, я получаю новую...
поэтому эта программа должна взять строку «мне нравится сборка $», зашифровать эту строку операндом xor 0101010101010101, а затем распечатать зашифрованную строку, а затем снова расшифровать строку, используя xor my_xor db 0101010101010101, и распечатать расшифрованную строку
кто-нибудь знает, как решить эту проблему?
спасибо, ребята, майк
xor ax,[my_xor]
:my_xor
объявляется как один байт.ax
— это 16-битный регистр (т.е. 2 байта).mov ax,[word msg]
: Я не понимаю, что ты здесь пытаешься сделать(?). Чтоword
должен делать? - person Michael   schedule 26.02.2015int 21h
функции не будут работать (они для DOS). И почему в заголовке упоминаетсяeax
, если ваш код никогда напрямую не используетeax
? - person Michael   schedule 26.02.2015