当前位置:新励学网 > 秒知问答 > 高分悬赏INT与CALLFAR指令的区别

高分悬赏INT与CALLFAR指令的区别

发表时间:2024-08-11 21:37:05 来源:网友投稿

CALLFAR段间直接调用

执行操作:①(SP)←(SP)-2,((SP))←(CS)当前

(SP)←(SP)-2,((SP))←(IP)当前

②(IP)←偏移地址(在指令的第2、3个字节中)

(CS)←段地址(在指令的第4、5个字节中)

INTn中断指令(interrupt),n为中断类型号

执行操作:①入栈保存FLAGS:(SP)←(SP)-2,((SP))←(FLAGS)

②入栈保存返回地址:(SP)←(SP)-2,((SP))←(CS)

(SP)←(SP)-2,((SP))←(IP)

③转中断处理程序:(IP)←(n×4)

(CS)←(n×4+2)

CALLFAR远调用

远调用适用于调用程序(也称为主程序)和子程序不在同一段中的情况,所以也叫做段间调用。和近调用指令一样,远调用指令中的寻址方式也可用直接方式和间接方式。

INT虽然也是一种远调用,但一般只用于调用中断例行程序(又称中断服务程序)。执行中断指令时,首先要入栈保存调用程序执行的现场,即当时的标志寄存器的值和断点的地址,然后根据中断类型号(n×4)到中断向量表中取得中断例行程序的入口地址,分别送给IP和CS,以实现调用中断例行程序的功能。

并且INT指令执行后,把IF和TF置0,但不影响其它标志位。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!