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
请问高手们这是怎么回事?
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28