主题:摸不到门的问题
我刚学汇编,看了几集汇编的视频教程,昨天下载了一本书来看,名字叫《汇编语言程序设计自学教程》1995出版的。将书里面的例子输入masm32 9.0 中,project-->assemble &link 出现以下问题:
e:\exe\fir.asm<20>:error A2008: syntax error : c
e:\exe\fir.asm<31>:error A2008: syntax error : c
e:\exe\fir.asm<16>:error A2004: syntax type conflict
e:\exe\fir.asm<39>:error A4023:warning A4023:with /coff switch ,leading underscore required for start address : addem.
意思都明白就是不知道怎么解决。实在没有办法了,哪位好心人帮帮我这个新人。
程序如下:
;
; first.asm -A first assembly language program
;
;
;code segment
;
_TEXT segment word public 'CODE' ;代码段说明?segment word public 'CODE'
;指明是代码段,_TEXT 代码段名字
assume cs:_TEXT,ds:_DATA,ss:_STACK ;assume 假设;指定各段的名字。
;不需要指定代码段的名字?需要cs:_TEXT
;
;Add two 16 bit values
;
addem proc far ;Entry point from DOS !!addem 过程名字后面加proc 说明是过程,far表明是
;远程调用
mov ax,_DATA ;Point the data segment
mov ds,ax ;register to the data segment
mov ax,a ;AX=a
add ax,b ;AX=a+b
mov c,ax ;c=a+b
mov ax,4c00h ;ax=no error return code
int 21h ;return to DOS
addem endp
_TEXT ends ;必须使用吗??? 是,与前面的相对应
;
;Data segment
;
_DATA segment word public 'DATA'
a dw 3
b dw 4
c dw ?
_DATA ends
;
;Stack segment
;
_STACK segment para stack 'STACK'
db 128 dup(?)
_STACK ends
end addem ;Defines the entry point
;;小结
;各段说明方式:segment word public 'CODE'; segment word public 'DATA';segment para stack 'STACK'
;各段结束方式为ends,过程结束方式为endp
;最后一句end addem 什么意思?addem为过程名字,前面已经用了endp
e:\exe\fir.asm<20>:error A2008: syntax error : c
e:\exe\fir.asm<31>:error A2008: syntax error : c
e:\exe\fir.asm<16>:error A2004: syntax type conflict
e:\exe\fir.asm<39>:error A4023:warning A4023:with /coff switch ,leading underscore required for start address : addem.
意思都明白就是不知道怎么解决。实在没有办法了,哪位好心人帮帮我这个新人。
程序如下:
;
; first.asm -A first assembly language program
;
;
;code segment
;
_TEXT segment word public 'CODE' ;代码段说明?segment word public 'CODE'
;指明是代码段,_TEXT 代码段名字
assume cs:_TEXT,ds:_DATA,ss:_STACK ;assume 假设;指定各段的名字。
;不需要指定代码段的名字?需要cs:_TEXT
;
;Add two 16 bit values
;
addem proc far ;Entry point from DOS !!addem 过程名字后面加proc 说明是过程,far表明是
;远程调用
mov ax,_DATA ;Point the data segment
mov ds,ax ;register to the data segment
mov ax,a ;AX=a
add ax,b ;AX=a+b
mov c,ax ;c=a+b
mov ax,4c00h ;ax=no error return code
int 21h ;return to DOS
addem endp
_TEXT ends ;必须使用吗??? 是,与前面的相对应
;
;Data segment
;
_DATA segment word public 'DATA'
a dw 3
b dw 4
c dw ?
_DATA ends
;
;Stack segment
;
_STACK segment para stack 'STACK'
db 128 dup(?)
_STACK ends
end addem ;Defines the entry point
;;小结
;各段说明方式:segment word public 'CODE'; segment word public 'DATA';segment para stack 'STACK'
;各段结束方式为ends,过程结束方式为endp
;最后一句end addem 什么意思?addem为过程名字,前面已经用了endp