. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  试验13.3为什么要用add[bp+2]  [待解决] 回复[ 6次 ]   点击[ 579次 ]  
dmhorse
[帖 主]   [ 发表时间:2010-12-18 16:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-26 22:22
前面用 
mov bx,offset s-offset se
直接用

mov bx,offset s

然后在后面,直接将IP值改就是了,为什么要用相减,后面又再加的方法呢?
mov [bp+2],bx
zaixuexi
[第1楼]   [ 回复时间:2010-12-18 21:55 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
你那样写也没错.
但是因为是模拟loop,从理解loop的工作原理出发,你那样写就是按绝对偏移量来寻址了,可能会对一些浮动标号有影响,我没试过只是猜测了,呵呵.
plagueing
[第2楼]   [ 回复时间:2011-04-21 21:56 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-07-16 14:51
要空出一个字节,用来保存颜色属性
wlzaini1314
[第3楼]   [ 回复时间:2011-04-28 19:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-15 22:31
mov bx,offset s-offset se 
s-se 就相当与 ah<bh  11章讲的 ah<bh得到的数是负数  add [bp+2],bx  不就相当于 [bp+2]-bx么
明白了嘛
shweei
[第4楼]   [ 回复时间:2011-06-28 21:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-25 01:04
..........
楼上些都答非所问!我来解释:
因为保存mov bp,sp 之前有个push入栈!!所以要向高位挪一个字!
pkingsha
[第5楼]   [ 回复时间:2013-09-19 08:43 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2013-02-02 01:48
那能直接用add [sp],bx这样吗?就这用push bp了啊
20122004012
[第6楼]   [ 回复时间:2013-09-26 21:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-04-01 23:16
同意1楼的,类似于jmp等转移指令的设计,loop指令也应该要方便程序段在内存中的浮动装配,使程序装在内存的中的不同位置都可正确执行
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved