菜鸟求 汇编字符串比较 求1.流程图2.改错

来源:百度知道 编辑:UC知道 时间:2024/05/30 14:58:34
datarea segment
String1 db "more the cursor backword."
String2 db "more the cursor backword."
mess1 db "match!",13,10,'$'
mess2 db "no match!",13,10,'$'
data ends

program segment
main proc far
assume cs:program,ds:datarea,es:datarea

start:
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov es,ax
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,09h
int 21h
ret
main endp
program ends
end start

之后运行MASM 这个文件显示错误
提示错误 severse error A2000:BLOCK NESTING ERROR 还有流程图~

datarea segment
data ends
这两个东西就出错了,要改成:
datarea segment 或 data segment
datarea ends data ends
还有,就是
String1 db "more the cursor backword."
要用单引号,不要用双引号(还有这句下面的也是哦)
你没有子程序,就不要ret了
还缺了个暂停和结束,要不看不到结果:
mov ah,0
int 16h
mov ah,4ch
int 21h
上面四条语句放ret那里,把ret删了
main proc far和main endp可省了(当然,有这两条语句也没错),因为你只一个程序.如果有子程序就要加上这两句