. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
汇编语言学习交流区
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
PUSH [EAX] 指令的疑问
[待解决]
回复[
1
次 ] 点击[
340
次 ]
jedcai
[帖 主]
[ 发表时间:2008-09-13 10:27 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:5
信誉值:5
注册日期:2007-11-03 11:40
PUSH [EAX] 指令的疑问:该指令为386及其后继机型可用的32位指令,它可把DS段中以EAX内容为指针所指向的存储单位内容进入堆栈,指令执行后ESP内容应减4,仍指向但前栈顶。
我的疑问就是,EAX是32位指令没错,但[EAX]是寄存器间接寻址方式,所以[EAX]指向的是一个存储单元,那么如何得知它是一个字还是二个字呢?PUSH [EAX] 与PUSH [BX]的区别在哪里?
附:MOVSX EDX,[EDI] : 该指令把DS段中由EDI 内容指定地址的16位数 符号扩展位32位数,送到EDX寄存器中。
这里的[EAX]为什么是16位数?
mouse
[第
1
楼]
[ 回复时间:2008-10-07 14:00 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
那么如何得知它是一个字还是二个字呢?
--------------------------
push [bx]是两个字节,原因是push,这个知识点参看王爽老师的汇编语言第三章。
PUSH [EAX] 与PUSH [BX]的区别在哪里?
----------
期待楼主比较一下:-)
后面的附问题不用说了,其实也就是前面的问题。
涉及数据的指令的执行,肯定要问数据在哪?要处理的数据有多长。这个参看第八章。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved