汇编语言:将修改后的字节值写入文件指针

时间:2014-10-22 16:21:05

标签: assembly xor file-writing

我对汇编语言编程非常陌生。我有下面的代码,它将一组字节写入文件指针:

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

由于

0 个答案:

没有答案