注册 登录
编程论坛 汇编论坛

[求助]我的第一个汇编程序

zhulei1978 发布于 2007-05-28 20:13, 1010 次点击

1 data segment
2 source_buffer db 40 ('a')
3 data ends
4 ;
5 extra segment
6 dest_buffer db 40 (?)
7 extra ends
8 ;
9 code segment
10 main proc far
11 assume cs:code,ds:data,es:extra
12 start:
13 push ds
14 sub ax,ax
15 push ax
16 mov ax,data
17 mov ds,ax
18 mov ax,extra
19 mov es,ax
20 lea si,source_buffer
21 lea di,dest_buffer
22 cld
23 mov cx,40
24 rep movsb
25 ret
26 main endp
27 code ends
28 end start

是从书上抄的,目的是把40个字母a的字符串从源缓冲区传送到目的缓冲区.但是编译是有错误,请高手帮忙看看,纠正一下错误.非常感谢!
错误提示:
E:\RadASM\Masm32\Bin\ML.EXE /c /coff /Cp /nologo /I"E:\RadASM\Masm32\Include" "C:\Documents and Settings\Administrator\My Documents\1\1.asm"
Assembling: C:\Documents and Settings\Administrator\My Documents\1\1.asm
C:\Documents and Settings\Administrator\My Documents\1\1.asm(28) : error A2006: undefined symbol : start
C:\Documents and Settings\Administrator\My Documents\1\1.asm(6) : error A2009: syntax error in expression
C:\Documents and Settings\Administrator\My Documents\1\1.asm(16) : error A2004: symbol type conflict
C:\Documents and Settings\Administrator\My Documents\1\1.asm(18) : error A2004: symbol type conflict
C:\Documents and Settings\Administrator\My Documents\1\1.asm(28) : error A2148: invalid symbol type in expression : start
构建时发生错误.
总共编译时间 94 毫秒

注:行号是我加上去的.

[此贴子已经被作者于2007-5-28 20:58:39编辑过]

4 回复
#2
zhulei19782007-05-28 20:57
有没有人帮帮忙啊
#3
菜鸟上路2007-05-28 21:45

data segment
source_buffer db 40 dup('a')
data ends

extra segment
dest_buffer db 40 dup(?)
extra ends

code segment
assume cs:code,ds:data,es:extra
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,source_buffer
lea di,dest_buffer
cld
mov cx,40
rep movsb
code ends
end start

你好象抄错了

#4
爱以走远2007-05-28 23:05
前面定义都错拉
在好好看看书
#5
zhulei19782007-05-29 10:54
哦,谢谢
1