. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
[bx]和loop指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
为什么用AX,就不能编译通过
[待解决]
回复[
4
次 ] 点击[
365
次 ]
gxd_god
[帖 主]
[ 发表时间:2014-09-02 14:38 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2014-09-02 14:30
assume cs:codesg
codesg segment
mov ax, 020h
mov ds, ax
mov ax, 0h
mov cx, 040h
s:mov ds:[ax], al
add ax, 1
loop s
mov ax, 4c00H
int 21H
codesg ends
end
这个程序编译失败, 把 ax 换成 bx 编译成功, 为什么
gyq
[第
1
楼]
[ 回复时间:2014-09-03 01:55 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:4
信誉值:0
注册日期:2014-08-02 21:25
这个是寄存器用法上的问题了,ax不能用于寄存器间接寻址,bx可以。
楼主可以看看教材164页,有关所有寻址方式的总结。
kelamoyujuzhen
[第
2
楼]
[ 回复时间:2015-01-13 20:59 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2015-01-04 21:38
使用寄存器间址寻址,只能使用BX BP SI DI四个寄存器中的一个,不可以使用其他寄存器。32为程序才可以使用任意32为寄存器间址寻址。
编译时:提示“error A204B:Must be index or base register”。说的就是这个问题,你要么用变址(SI DI),要么用基址(BX BP)
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved