. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
INT指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
add [bp+2],bx ; 为什么这里的 指向的的是SS段 而不是别的DS ES 段
[待解决]
回复[
2
次 ] 点击[
330
次 ]
909383851
[帖 主]
[ 发表时间:2013-11-13 11:41 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-02-21 04:01
lp: push bp ;这里为什么要压入 BP 直接 mov bp,sp 和 先压入 BP 有什么其别
mov bp,sp
edc cx
jcxz lpret
add [bp+2],bx ; 为什么这里的 指向的的是SS段 而不是别的DS ES 段
lpet: pop bp
iret
如果去掉 push bp的话不就可以 add [bp],bx 不用加2了 为什么要这样做
cutebe
[第
1
楼]
[ 回复时间:2013-11-13 16:23 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:4
信誉值:0
注册日期:2010-01-27 19:28
1 使用寄存器BP做为地址时,段地址默认在寄存器SS中
2 作为这个程序去掉PUSH BP是可以的,但子程序(或中断)为了还原寄存器的原值,就要这样做。如:主程序比较复杂,使用了BP寄存器,不进行出入栈操作不就改变了BP的值吗?
909383851
[第
2
楼]
[ 回复时间:2013-11-13 17:31 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-02-21 04:01
嗯 谢谢大概明折了
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved