编译时出错,帮忙解决一下!

naijgnorus 2012-04-16 11:11:25
;PROGRAM TITLE GOES HERE--Compare string
;**********************************************************
datarea segment
string1 db 'Move the cursor backward.'
string2 db 'Move the cursor backward.'
;
mess1 db 'Match.',13,10,'$'
mess2 db 'No match!',13,10,'$'
datarea ends
prognam segment
;* * * * * * * * * * * * * * ** * * * * * * * * * * * * *
main proc far
assume cs:prognam,ds:datarea,es:datarea
start:
;set up stack for return
push ds
sub ax,ax
push ax
;set DS register to current data segment
mov ax,datarea
mov ds,ax
mov es,ax
;MAIN PRT OF PROGRAM GOES HERE
lea si,string1
lea di,string2
cld
mov cx,25
repz cmpsb
jz match
lea dx,mess2
jmp short disp
match:
lea dx,mess1
disp:
mov ah,09
int 21h
ret
main endp
;-------------------------------------------------------------------
prognam ends

end start


错误提示说 start没有定义,我检查了一下没发现有问题,不过编译器就是通不过。
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
屌絲來襲 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

高版本的 ml 是支持 end start 语句的,只是引入了标号的范围特性,即认为定义在一个 proc 范围内的标号通常表示方式其为子程私有,只能在该子程内引用;如果要让其可以在整体范围内被引用的话,需要在标号后再加上一个分号':' 即形如 start:: 这样的,即表明 start 是全局性的,可以被 end 语句引用了。
[/Quote]

正解...
把start:改为start::即可
或者把start放在main proc far上面

start:
main proc far


这样也行
masmaster 2012-04-17
  • 打赏
  • 举报
回复
把下面两行去掉
main proc far
main endp
gsy999 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
;PROGRAM TITLE GOES HERE--Compare string
;**********************************************************
datarea segment
string1 db 'Move the cursor backward.'
string2 db 'Move the cursor backward……
[/Quote]

从程序看,可以将end start 换成end main,然后编译.
zara 2012-04-17
  • 打赏
  • 举报
回复
高版本的 ml 是支持 end start 语句的,只是引入了标号的范围特性,即认为定义在一个 proc 范围内的标号通常表示方式其为子程私有,只能在该子程内引用;如果要让其可以在整体范围内被引用的话,需要在标号后再加上一个分号':' 即形如 start:: 这样的,即表明 start 是全局性的,可以被 end 语句引用了。
naijgnorus 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 3 楼 的回复:

高版本的 ml 是支持 end start 语句的,只是引入了标号的范围特性,即认为定义在一个 proc 范围内的标号通常表示方式其为子程私有,只能在该子程内引用;如果要让其可以在整体范围内被引用的话,需要在标号后再加上一个分号':' 即形如 start:: 这样的,即表明 start 是全局性的,可以被 end 语句引用了。


正解...
把start:改……
[/Quote]



这两种方法都可以是源程序编译成功,还有那个将 "end start”改为"end main”的也可以编译成功,谢谢!!
BAYNPU 2012-04-16
  • 打赏
  • 举报
回复
到网上下载MASM5.0编译器:
http://www.fishc.com/a/downloads/huibian/1011.html
ML6.15不支持end start

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧