. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测题是不有问题啊  [已解决] 回复[ 3次 ]   点击[ 952次 ]  
zhengcong3250
[帖 主]   [ 发表时间:2010-07-07 20:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:10
注册日期:2010-06-09 16:22
关于ret 和 iret下列说法错误的是__1__  
 1、 ret和iret都改变标志寄存器的值  
 2、 ret不改变cs的值,iret改变cs的值  
 3、 ret和iret都改变sp的值  
 4、 ret和iret都改变ip的值

答案是1,可以肯定的,不过我认为答案2也不怎么对,因为call指令和ret配合使用时,也可以实现远跳转的,也可以改变cs的值啊!我认为ret和iret的区别就在与ret不能压入标志位,困惑中。。。。
masmaster
[第1楼]   [ 回复时间:2010-07-07 22:14 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
2,ret修改的只是IP实现近转移, iret 修改IP和CS以及FLAGS, 所以这是对的。 call在实现段间转移时与之配对的是retf。
zhengcong3250
[第2楼]   [ 回复时间:2010-07-08 21:13 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:10
注册日期:2010-06-09 16:22
但是我的IBM-PC程序语言设计上有这么一句“段间返回和段内返回指令的汇编格式完全一样。但在汇编过程中,汇编程序会根据源程序中主程序与子程序是否在同一代码段来区分。段内返回时,RET的机器码是C3H(或C2H带参数返回)。段间返回时,RET的机器码是CBH(或CAH带参数返回)。额。。。。。。。,对了嘛!我可以DEBUG试下,谢谢LS
zhengcong3250
[第3楼]   [ 回复时间:2011-11-30 12:52 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:10
注册日期:2010-06-09 16:22
此贴由 贴主 于 [ 2011-11-30 12:52 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved