首页
社区
课程
招聘
[旧帖] [求助]汇编问题MOV AX,VARW+4 0.00雪花
发表于: 2011-11-13 00:44 1714

[旧帖] [求助]汇编问题MOV AX,VARW+4 0.00雪花

2011-11-13 00:44
1714
在学习杨季文老师的80x86汇编,看到这里甚感迷惑:

MOV   AX,   VARW+4  ;教材上说,VARW+4表示以变量VARW的偏移+4为偏移的存储单元

那么也就是说,如果VARW的偏移量为1000H,   那么经过汇编程序汇编后是不是就是下面这句的样子呢,

MOV   AX,   [1004H]

那么如果这样写又表示什么呢:MOV   AX,   [VARW+4]
这时候,是表示变量VARW的偏移+4还是表示变量VARW的值+4呢?

如果是这样子呢:MOV   AX,   VARW

或者            MOV   AX,   VARW[BX+SI]

什么时候是取其地址什么时候是取其值呢?

也就是不明白究竟变量什么时候是取其地址什么时候是取其变量的值。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
关注,,不过有专门的讲解的。。搜搜看看
2011-11-13 01:14
0
雪    币: 890
活跃值: (55)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
自已实时调试一下,眼见为实吗!

另外好好查查寻址方式
2011-11-13 07:04
0
雪    币: 93
活跃值: (41)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
MOV   AX,   VARW+4 ;如果VARW是偏移的存储单元的话~
不是 MOV   AX,   [1004H]
而是 MOV   AX,   1004H

MOV   AX,   [VARW+4]
表示 MOV   AX,   [1004H]  ;把 word ptr ds:[1004H]处的数据给AX

MOV   AX,   VARW
表示 MOV   AX,   1000H 如果VARW是偏移的存储单元的话~

MOV   AX,   VARW[BX+SI] 貌似语法错误(我没这样用过)...
2011-11-13 09:18
0
雪    币: 188
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
在[]里是取值
2011-11-13 14:33
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
mov ax, 100h+4 这种指令根本不存在吧,
直接编译出来就是mov ax,104h

mov ax, bx+4 这种指令也是非法的 除非 lea ax, bx+4
2011-11-13 14:51
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哦,来看过啦,非常感谢大家的探讨与赐教,获益匪浅。对,其实很多时候自己汇编调试一下还是能解开很多迷惑的。
再次感谢大家花时间来答解疑惑,不甚感激。谢谢大家。
2011-11-14 23:27
0
雪    币: 1317
活跃值: (4111)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
MOV   AX,   VARW+4  ;中的VARW+4表示的是偏移量即偏移VARW+4存储单元
MOV   AX,   [VARW+4];中的[VARW+4]表示的是偏移量为的VARW+4存储单元
中的内容

如果是这样:MOV   AX,   VARW

或者        MOV   AX,   VARW[BX+SI]

这两种形式都是说的偏移量
当为[VARW+BX+SI]形式时说的是内容
2011-11-15 00:10
0
游客
登录 | 注册 方可回帖
返回
//