茗艹莜主 发表于 2014-2-27 14:40:04

实验九的问题。

这是我的代码 我在用MASM编译的时候,编译不出来。提示的错误是在标号A和S处。A2070 p200.asm(14):错误:无效的指令操作数
A2070 p200.asm(20):错误:无效的指令操作数   我语法哪里错了啊?求大神指导。

ilyou2049 发表于 2014-2-27 15:03:32

请把代码贴出来,不要上截图

茗艹莜主 发表于 2014-2-27 15:04:59

ilyou2049 发表于 2014-2-27 15:03 static/image/common/back.gif
请把代码贴出来,不要上截图

assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
xiaoxu:mov ax,0B800H
       mov ds,ax
           mov bx,771h
           mov si,0
           mov ax,data
           mov es,ax
           mov di,0
           mov cx,16
       s:mov ds:,es:
           add si,2
           inc di
           loop s
           mov si,1h
           mov cx,16
       a:mov ds:,02h
           add si,2
           loop a
           mov ax,4c00h
           int 21h
code ends
end xiaoxu

ilyou2049 发表于 2014-2-27 15:08:43

是错在两个标号处了,编译器不知你要进行的是字节还是字操作

茗艹莜主 发表于 2014-2-27 15:10:08

ilyou2049 发表于 2014-2-27 15:08 static/image/common/back.gif
是错在两个标号处了,编译器不知你要进行的是字节还是字操作

那应该怎么改啊?我进行的是字节操作。

ilyou2049 发表于 2014-2-27 15:32:47

只是显示了黑底绿字,看我的代码:assume cs:codesg, ds:datasg, ss:stacksg
datasg segment
        db "welcome to masm!"
        db 2h, 24H, 71h
datasg ends
stacksg segment
        dw 8 dup(0)
stacksg ends
codesg segment
        start:        mov ax, datasg
                        mov ds, ax
                        mov ax, 0b86eh
                        mov es, ax
                        mov ax, stacksg
                        mov ss, ax
                        mov sp, 16
                        mov bx, 0
                        mov si, 0
                        mov di, 0
                        mov bp, 0
                        mov cx, 3
                s1:        push cx
                        mov cx, 16
                        mov ah, ds:
                        inc bp
                s:        mov al, ds:
                        inc di
                        mov es:, ax
                        add si, 2
                        loop s
                        mov si, 0
                        mov di, 0
                        add bx, 160
                        pop cx
                        loop s1
                        mov ax, 4c00h
                        int 21h
codesg ends
end start

ilyou2049 发表于 2014-2-27 15:36:14

茗艹莜主 发表于 2014-2-27 15:10 static/image/common/back.gif
那应该怎么改啊?我进行的是字节操作。

assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
xiaoxu:        mov ax,0B800H
                mov ds,ax
      mov bx,71Ah
      mov si,0
      mov ax,data
      mov es,ax
      mov di,0
      mov cx,16
    s:        mov al, es:
                mov ah, 02H
                mov ds:,ax
      add si,2
      inc di
      loop s
      mov si,1h
      mov cx,16
   
      mov ax,4c00h
      int 21h
code ends
end xiaoxu
页: [1]
查看完整版本: 实验九的问题。