1: Near 近端使用
C语言实现:
#include
#include
voidprint(){
printf("proc");
}int main(int argc, char *argv[]) {
print();return 0;
}
汇编实现:
datas segment
x db'proc$';datas ends
stacks segment stack
dw100dup(?)
stacks ends
codes segment
assumecs:codes,ss:stacks,ds:datas
main proc;主程序
start:
mov ax,datas; mov ds,ax; callmaxmov ah,4ch; int21h
main endp
print proc near;子程序
push bp; mov bp,sp; mov dx,offset x; mov ah,09; int21hpopbpret 0print endp
codes ends
end start
near 调用没有段地址:使用的就是偏移地址 call 000C地址就是子程序的入口地址
2: Far 远端使用
print 函数我们实现在另一个文