读书人

中断与直接调用解决方案

发布时间: 2012-02-13 17:20:26 作者: rapoo

中断与直接调用
为什么

mov ax,0100h
int 21h

这是个读子符的中断

为什么不能写成

call 读子符中断的处理过程

为什么不能这样做呢?有什么好处?

[解决办法]
call和int的区别:
call可以调用段内过程(近过程),在调用前将ip(实模式下)压入堆栈,call也可以调用段外过程(也称作段间过程或者远过程),此时将cs,ip(实模式下)压入堆栈。
int 相当于call far功能,只能调用运过程,另外int后面不加过程名,而是中断向量号。还有,int调用时也将标志寄存器压入堆栈,返回时自动弹出。这是call不具备的功能。

读书人网 >汇编语言

热点推荐