data segment ;定义数据段
string1 db 'Move the cursor backward' ;比较字符串1
string2 db 'Move the cursor backward' ;比较字符串2
mess1 db 'Match.',13,10,'$' ;比较结果1
mess2 db 'No Match!',13,10,'$' ;比较结果2
data ends ;数据段结束
code segment ;定义代码段
main proc far ;定义一个过程(类似C的函数)
assume cs:code,ds:data,es:data ;设定各段与段寄存器关联
start: ;程序入口处(类似C的main函数)
push ds ;压入ds
sub ax,ax ;ax = 0
push ax ;压入ax
mov ax,data ;ax = 数据段基址
mov ds,ax ; ds = ax
mov es,ax ;ds = ax
lea si,string1 ;si = string1的偏移地址
lea di,string2 ;di = string2的偏移地址
cld ;DF=0
mov cx,25 ;比较次数
repz cmpsb ;比较指令
jz match ;如果相同ZF=1
lea dx,mess2 ;dx = mess2 的偏移地址
jmp short disp ;跳到disp
match:
lea dx,mess1 ; dx = mess1 的偏移地址
disp:
mov ah,9 ;9号中断,显示一个一'$'结尾的字符串
int 21h
ret ;返回
main endp
code ends ;代码段结束
end start ;程序结束
另注:
MASM汇编程序设计的基本框架是:
data segment
;数据
data ends
stack segment
;堆栈
stack ends
code segment
assume cs:code,ds:data
start:
;代码
end start
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。