子程序是由设计者定义的完成某种功能的程序模块。一旦定义了,该子程序可被任意调用。
例
全站搜索
SENDAT PROC FAR ;子程序定义伪指令语句 |
|
PUSH AX ;保护 AX 、 DX 、 SI 寄存器 |
|
PUSH DX |
|
PUSH SI |
|
LEA SI , BUFR ;子程序待输出的数据的首地址 |
|
GOON : MOV DX , 03FBH |
|
WAIT : IN AL , DX ;读端口 03FBH 读入数据 |
|
TEST AL , 20H |
|
JZ WAIT |
|
MOV AL , [SI] ;将缓冲区 BUFR 按字节装入 |
|
MOV DX , 03F 8H |
|
OUT DX , AL ;输出至端口 03F 8H |
|
INC SI |
|
CMP AL , 0AH ;判断输出数据是否为结束 |
|
JNE GOON ;不为 0AH 则转至 GOON |
|
POP SI ;恢复寄存器 |
|
POP DX |
|
POP AX |
|
RET |
|
SENDAT ENDP |