汇编语言向后移动指针

Move Pointers backward in assembly language

我正在尝试相对于 file.This 的末尾向后移动文件指针是我正在做的事情-

.model tiny
.386
.data
fil1    db      'testing.txt',0
dat1    db      100 dup('$')
dat2    db      100 dup('$')
.code
.startup
        mov     al,02h
        lea     dx,fil1
        mov     ah,3dh
        int     21h



        mov     bx,ax
        mov     al,2    
        mov     cx,0
        mov     dx,-3
        mov     ah,42h
        int     21h



        lea     dx,dat1
        mov     cx,2
        mov     ah,3fh
        int     21h


        lea     dx,dat1
        mov     ah,09h
        int     21h



        mov     ah,3eh
        int     21h
.exit
end

但这在 console.I 上没有显示任何内容,不知道我哪里出错了。

INT 21H / AH=42H 的描述说:

CX:DX = (signed) offset from origin of new file position

通过设置 cx = 0,您指定的是正偏移量 0x0000FFFD (65533) 而不是负偏移量 -3 (0xFFFFFFFD)。您应该改为设置 cx = 0xFFFF(也可以表示为 cx = -1)。