搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 汇编的问题啊。。。。。。
标题:
汇编的问题啊。。。。。。
只看楼主
a86819318
等 级:
论坛游民
帖 子:63
专家分:10
注 册:2009-10-8
结帖率:
40%
楼主
问题点数:0 回复次数:2
汇编的问题啊。。。。。。
MOV 的问题。。
两个操作数的数据类型要相同,要同为8位、16位或32位;
如:MOV BL, AX等是不正确的;
那MOV AX,12H 这样写对吗
指令“LEA BX BUFFER”和“MOV BX, OFFSET BUFFER”的执行效果是一样的吗?
指令“LEA BX,[BX+200]”和“MOV BX,OFFSET [BX+200]”二者都正确吗?
搜索更多相关主题的帖子:
汇编
2010-05-17 15:24
ONEPROBLEM
来 自:广西 南宁
等 级:
贵宾
威 望:
21
帖 子:1569
专家分:349
注 册:2008-7-11
第
2
楼
得分:0
这个问题嘛... ...还不怎么注意过.
如果写得不对,编译器会告诉你的;要不,可以在
DEBUG
下试试看.
MOV BL,AX
当然不正确吧;而
MOV AX,12H
又是正确的,可能在处理的时候,
12H
会先扩展为
0012H
,再赋给
AX
.我也不知道为什么.
LEA BX BUFFER
和
MOV BX,OFFSET BUFFER
两者的执行效果好像未必完全一样,还是有区别的.主要是因为,
LEA
主要处理的是一个可能在执行中还没有马上确定的地址,即动态地址吧?而
OFFSET
获取的是静态地址,在编译的时候已经确定了的.
例如,
LEA BX,[BX+200]
正确,因为[BX+200]中的BX未确定的时候,[BX+200]所指向的地址也是未定的;
而
MOV BX,OFFSET [BX+200]
就不对了.因为OFFSET只能获取确定了的地址,[ ]里面的BX一变化就不行了.
2010-05-18 22:05
a86819318
等 级:
论坛游民
帖 子:63
专家分:10
注 册:2009-10-8
第
3
楼
得分:0
谢谢诶
2010-05-18 22:19
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-307019-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.013715 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved