在进入子程序的时候 保存一下当前的 预取指令的下一条指令的地址到LR(R14)寄存器,在子程序返回的时候把LR的值赋值给PC寄存器 就OK 了
code segmentassume cs:code
org 100h
start:jmp begin
str1a db 100
str1n db ?
str1 db 100 dup(?)
char1 db ?
begin:push cs
pop ds
push cs
pop es
mov ah,10
lea dx,str1a
int 21h
call lfcr
mov ah,1
int 21h
mov byte ptr char1,al
mov cl,str1n
mov ch,0
lea di,str1
cld
repne scasb
cmp cx,0
je @0
inc cx
@0:
call lfcr
mov al,str1n
sub al,cl
mov cl,al
mov ch,0
lea si,str1
cld
@1:
lodsb
mov dl,al
mov ah,2
int 21h
loop @1
mov ah,4ch
int 21h
lfcr proc near
push ax
push dx
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
pop dx
pop ax
ret
lfcr endp
code ends
end start
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)