汇编语言子程序是如何定义的?

汇编语言子程序是如何定义的?,第1张

这样定义的:

子程序名 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  segment

      assume 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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7733970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存