主题:王爽汇编语言实验4
zwffala
[专家分:0] 发布于 2006-04-25 23:32:00
作者要求向内存0:200~0:23f传入数据0~3f,我编的如下:
assume cs:code
code segment
start:
mov ax,0020h
mov ds,ax
mov ax,0
mov cx,3fh
s: mov [ax],al
inc ax
loop s
mov ax,4c00H
int 21H
code ends
end start
可编译时报错illegal indexing mode, 指向mov [ax],al一句。
本人百思不得其解,望高人指教
回复列表 (共8个回复)
沙发
我的汇 [专家分:10] 发布于 2006-04-25 23:48:00
作者要求向内存0:200~0:23f传入数据0~3f,
这句子我不明白
你能不能说明白点我好帮你!
板凳
zwffala [专家分:0] 发布于 2006-04-25 23:54:00
就是依次向内存0:200~0:23f传入数据,如0:200传入0,0:201传入1, 0:202传入2……
直到0:23f传入3f
3 楼
C语言爱好者 [专家分:19410] 发布于 2006-04-26 08:25:00
在16位指令中,ax寄存器不能用来寻址(还包括cx和dx),bx、bp、si、di才能用来寻址。
4 楼
zwffala [专家分:0] 发布于 2006-04-27 00:43:00
嗯!今天偶在王爽那本书里也看到了。谢谢
5 楼
goodman111 [专家分:30] 发布于 2006-04-28 01:22:00
此处有答案下载:
http://albm.go1.icpcn.com/software/answer.chm
6 楼
zwffala [专家分:0] 发布于 2006-04-28 20:36:00
看过了,全是该页无法显示。。。
7 楼
msgrev [专家分:190] 发布于 2006-05-04 11:48:00
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
end
8 楼
xabcxyz [专家分:940] 发布于 2006-05-08 19:43:00
16位汇编中ax不可以用作间接寻址寄存器, 将ax改成bx
mov ax,0 => mov bx, 0
mov cx,3fh
s: mov [ax],al => mov [bx], al
inc ax => inc bx
我来回复