;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
ML6.15不支持end start
------解决方案--------------------------------------------------------
把下面两行去掉
main proc far
main endp
------解决方案--------------------------------------------------------
高版本的 ml 是支持 end start 语句的,只是引入了标号的范围特性,即认为定义在一个 proc 范围内的标号通常表示方式其为子程私有,只能在该子程内引用;如果要让其可以在整体范围内被引用的话,需要在标号后再加上一个分号':' 即形如 start:: 这样的,即表明 start 是全局性的,可以被 end 语句引用了。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------