. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
[bx]和loop指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
这条代码中的 mov al,[0006h]为什么会被编译为mov al,6 明明定义了DS而且一步一步debug也没错
[待解决]
回复[
7
次 ] 点击[
415
次 ]
dsfsfds
[帖 主]
[ 发表时间:2013-11-21 21:00 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2013-11-21 20:58
ASSUME CS:CODE
CODE SEGMENT
MOV AX,0FFFFH
MOV DS,AX
SUB AX,AX
MOV AL,[0006H]
MOV BX,0
MOV CX,3
S: ADD BX,AX
LOOP S
MOV AX,4C00H
INT 21
CODE ENDS
cj0908
[第
1
楼]
[ 回复时间:2013-12-11 21:12 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2013-12-07 11:57
好像说,用debug调试可以这么写,但是用masm编译时不能这么写,需要用[bx]这个寄存器。
xhc-dos
[第
2
楼]
[ 回复时间:2014-01-13 18:48 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2014-01-13 16:44
可以用DS:[6h]代替[6h]
dgkepu
[第
3
楼]
[ 回复时间:2014-02-25 17:03 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2012-08-27 13:18
用debug调试可以这么写,但是用masm编译时不能这么写,需要用[bx]这个寄存器,或DS:[0006]
wildwind
[第
4
楼]
[ 回复时间:2014-03-10 12:41 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2013-04-07 16:06
不用纠结与这种问题,这是编译器的问题,换一种编译器,规则可能会变化
kelamoyujuzhen
[第
5
楼]
[ 回复时间:2015-01-13 21:02 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2015-01-04 21:38
这是debug下按a直接写汇编代码,和用文本编辑器编辑后用masm编译的区别,你可以使用段前缀的方法避免这一问题。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved