代码:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s1: mov ax,es:[bx]
add [bx],ax
add bx,2
loop s1
mov ax,b
mov es,ax
mov ds,ax
mov bx,0
mov cx,8
s2: mov ax,es:[bx]
add [bx],ax
add bx,2
loop s2
mov ax,4c00h
int 21h
code ends
end start
报错:
C:\myasm>ml test56.asm
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: test56.asm
test56.asm(11): error A2008: syntax error : c
test56.asm(12): error A2034: must be in segment block
test56.asm(13): error A2008: syntax error : c
test56.asm(29): error A2008: syntax error : c
很是郁闷 求指教
------解决方案--------------------------------------------------------
稍高版本的汇编软件,都将 c 作为一个关键字了,所以不能再用做自己程序的变量名或标号。
要么用 Masm5 试试进行汇编;或者将标号或变量的 c 改个名字。
------解决方案--------------------------------------------------------
用作语言类别的设置。高版本的引入了些新的功能,会涉及到语言类别方面,主要是在命名和调用规则方面。在和其它语言的模块混合链接时尤为重要,双方的不一致会导致失败。