中断与直接调用
为什么
mov ax,0100h
int 21h
这是个读子符的中断
为什么不能写成
call 读子符中断的处理过程
为什么不能这样做呢?有什么好处?
[解决办法]
call和int的区别:
call可以调用段内过程(近过程),在调用前将ip(实模式下)压入堆栈,call也可以调用段外过程(也称作段间过程或者远过程),此时将cs,ip(实模式下)压入堆栈。
int 相当于call far功能,只能调用运过程,另外int后面不加过程名,而是中断向量号。还有,int调用时也将标志寄存器压入堆栈,返回时自动弹出。这是call不具备的功能。