我对汇编语言编程非常陌生。我有以下代码,它将一组字节写入文件指针:
mov cx,OFFSET ENDMYCODE - OFFSET MYCODE ; write the MYCODE; cx=number of bytes to write
lea dx,[di+MYCODE]
mov ah,40H ;DOS write function
int 21H
据我了解,上面的代码将 MYCODE 中的所有字节值写入文件。我想知道是否可以在写入文件时修改这些字节,即在写入文件指针之前对字节进行简单的异或运算?它不应该异或原始的 MYCODE 字节值,而应该只是我写入文件的那个。可能吗?
下面是我想出的,但它似乎陷入了无限循环,我无法调试它:
ENCRYPT:
mov si, OFFSET MYCODE + 1
mov di, OFFSET MYCODE + 1
mov cx, OFFSET MYCODE - OFFSET MYCODE - 2
ELP: lodsb
xor al, 09Ah ; XOR the byte values and then write to the file
mov BYTE PTR [di+TEMPBUFFER],al
push cx
mov cx, 1
lea dx,[di+TEMPBUFFER]
mov ah,40H ;DOS write function
int 21H
pop cx
loop ELP
mov cx, 1
lea dx, [di+ENDMYCODE]
mov ah,40h
int 21h
谢谢