+ -
当前位置:首页 → 问答吧 →  Symbol already different kind: @CURSEG错误是怎么回事?

Symbol already different kind: @CURSEG错误是怎么回事?

时间:2010-12-29

来源:互联网

老师布置的一道汇编题目:求菲波那契数列的前N项。该数列的前两项为1,1,以后的每一项都是其前两项之和。X0=1,X1=1,Xi=Xi-1+Xi-2(i>=2)。要求用堆栈传递参数。[code=Assembly][/code];fabonacci  
data segment 
  num dw 1,1,18 dup(?)
data ends

stack segment 
  dw 50 dup(?) 
  tosp label dw
stack ends 

code segment
  assume cs:code,ds:data,ss:stack
;------------------------------------
main proc far  
  start:
  mov ax,data
  mov ds,ax
   
  mov ax,stack
  mov ss,ax
  lea sp,tosp 
   
  lea bx,num ;保存num地址
  push bx  
  mov ah,1
  int 21h 
  sub al,30h 
  cbw 
  sub ax,2
  push ax ;保存次数
  call fab
  mov ah,4ch
  int 21h 
main endp
;--------------------------------------
fab proc near
  push bp
  mov bp,sp
  push di
  push si
  push ax
  mov cx,[bp+4]  
  mov si,[bp+6]
rep:mov ax,[si] ;ax保存前一个数,di保存第二个数
  mov di,[si+2]
  add di,ax
  mov [si+4],di
  add si,2
  loop rep
   
  pop ax
  pop si
  pop di
  pop bp
   
  ret 4
fab endp
;-----------------------------------
code ends
end start


但编译时出现错误:
1.ASM(2): error A2015: Symbol already different kind: @CURSEG
1.ASM(4): error A2015: Symbol already different kind: @CURSEG
1.ASM(6): error A2015: Symbol already different kind: @CURSEG
1.ASM(8): error A2003: Unknown type specifer
1.ASM(9): error A2015: Symbol already different kind: @CURSEG
1.ASM(11): error A2015: Symbol already different kind: @CURSEG
1.ASM(20): error A2009: Symbol not defined: TOSP
1.ASM(43): warning A4016: Reserved word used as symbol: REP
1.ASM(58): error A2015: Symbol already different kind: @CURSEG

  50574 + 415666 Bytes symbol space free

  1 Warning Errors
  8 Severe Errors

请问高手们这是怎么回事?

作者: hqjma   发布时间: 2010-12-29

用的什么编译器?就这个代码,Masm 应该不会出现那些 @CURSEG 相关的错误。好像是 data、stack 及 code 等被内部定义似的。

作者: zara   发布时间: 2010-12-29