首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-04-20 
编译时出错,帮忙解决一下!PROGRAM TITLE GOES HERE--Compare string**********************************

编译时出错,帮忙解决一下!
;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没有定义,我检查了一下没发现有问题,不过编译器就是通不过。

[解决办法]
到网上下载MASM5.0编译器:
http://www.fishc.com/a/downloads/huibian/1011.html
ML6.15不支持end start

[解决办法]
把下面两行去掉
main proc far
main endp

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

探讨
;PROGRAM TITLE GOES HERE--Compare string
;**********************************************************
datarea segment
string1 db 'Move the cursor backward.'
string2 db 'Move the cursor backward……

[解决办法]
探讨

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

热点排行