这样定义的:
子程序名 PROC NEAR|FAR
.
.
RET
子程序名 ENDP
子程序名相当于标号,表示本过程的符号地址。过程有NEAR和FAR两种类型,FAR型的过程可供段间调用,NEAR型过程仅供段内调用。
在一个过程中,至少要有一条返回指令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。
扩展资料:注意事项
一、子程序调用指令
格式:CALL [NEAR PTR] 子程序名
CALL指令的两个作用,1.将断点地址(CALL指令的下一条指令地址)压栈保存,2.转去子程序执行。
[NEAR PTR]可以省略。
二、返回指令
格式:RET [N]
指令作用:实现子程序执行完后返回主程序的指令。从堆栈栈顶d出一个字数据(段内调用)送入IP作为返回地址。N是立即数,执行完RET之后,再将SP增加N,也叫“平栈”。
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条)