汇编语言向后移动指针
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
)。
我正在尝试相对于 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
)。