我对汇编语言编程非常陌生。我有下面的代码,它将一组字节写入文件指针:
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
由于