648905586 发表于 2014-9-18 19:52:01

代码编译不了,不知道哪里有问题

代码如下
assume cs:code,ds:data,
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack segment
code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,data
      mov ds,ax
      push ds:
      push ds:
      pop ds:
      pop ds:
      mov ax,4c00h
      int 21h
code ends
end start

下面是错误提示
s5c2.asm(1) : error A2008: syntax error : data
s5c2.asm(3) : error A2034: must be in segment block
s5c2.asm(4) : fatal error A1010: unmatched block nesting : data

我把代码检查了几次,没发现有什么问题啊


jy02229968 发表于 2014-9-18 20:22:58

data后面好像不该加逗号吧?

老师 发表于 2014-9-18 21:24:04

童鞋,你少定义了一个"ss"了哦,还有你开辟了一个空的空间作为栈,在栈段结束后怎么会是“stack segment”呢,.用红色字体标出
assume cs:code,ds:data ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack segment
code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,data
      mov ds,ax
      push ds:
      push ds:
      pop ds:
      pop ds:
      mov ax,4c00h
      int 21h
code ends
end start

老师 发表于 2014-9-18 21:28:14

assume cs:code,ds:data, ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack segment
code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,data
      mov ds,ax
      push ds:
      push ds:
      pop ds:
      pop ds:
      mov ax,4c00h
      int 21h
code ends
end start
页: [1]
查看完整版本: 代码编译不了,不知道哪里有问题