汇编语言的程序调用:
1:程序内部标号调用
我们来看一个例子:编制一个子程序,求y=x^4,x为字节,y为字,且不会溢出。
1.1:子程序的参数由寄存器bl提供,返回结果在ax中。
实现如下:
assume cs:codesg, ss:stack
stack segment
db 32 dup (0)
stack ends
codesg segment
main proc
start: mov ax,stack
mov ss,ax
mov sp,16
mov bl,08 ;为调用子程序准备参数
call subp
;子程序调用返回后要做的处理
mov ax,4c00h
int 21h
main endp
;强调:从现在始,定义子程序必须要有这样的文档
;子程序功能:求y=x^4
;入口参数:x的值由bl提供
;返回值:y值由ax返回,且y值不会超过1个字的范围
subp proc
push cx;子程序中使用的寄存器入栈
mov bh,0;子程序内容