回 帖 发 新 帖 刷新版面

主题:王爽汇编语言实验4

作者要求向内存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个回复)

沙发

作者要求向内存0:200~0:23f传入数据0~3f,
这句子我不明白
你能不能说明白点我好帮你!

板凳

就是依次向内存0:200~0:23f传入数据,如0:200传入0,0:201传入1, 0:202传入2……
直到0:23f传入3f

3 楼

在16位指令中,ax寄存器不能用来寻址(还包括cx和dx),bx、bp、si、di才能用来寻址。

4 楼

嗯!今天偶在王爽那本书里也看到了。谢谢

5 楼

此处有答案下载:

http://albm.go1.icpcn.com/software/answer.chm

6 楼

看过了,全是该页无法显示。。。

7 楼

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 楼

16位汇编中ax不可以用作间接寻址寄存器, 将ax改成bx

     mov ax,0        => mov bx, 0
     mov cx,3fh    
s:   mov [ax],al     => mov [bx], al
     inc ax          => inc bx

我来回复

您尚未登录,请登录后再回复。点此登录或注册