📄 se.asm
字号:
;Hxcan
;2008.1.11
;试编一程序比较两个字符串STR1和STR2是否完全相等,若相等,则显示‘OK!’;若不相等则显示‘Not Found!’ 。
data segment ;数据段。
STR1 db "ILoveYou,WenJuan!",'$' ;STR1。
STR2 db "ILoveYou,WenJuan!",'$' ;STR2。
Endl db 0ah,0dh,'$' ;Endl.
Length1 db 17d ;STR1的长度。
Length2 db 17d ;STR2的长度。
OK db "OK!",'$' ;OK.
NoFo db "Not Found!",'$' ;Not Found.
data ends ;数据段结束。
stack segment stack ;堆栈段。
db 100 dup(0) ;堆栈。
stack ends ;堆栈段结束。
code segment 'code' ;代码段。
assume cs:code,ds:data,ss:stack
start:
;例行的初始化:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
;例行的初始化结束。
mov ah,09h ;显示字符串。
lea dx,STR1 ;STR1.
int 21h
lea dx,Endl ;Endl.
int 21h
lea dx,STR2 ;STR2.
int 21h
lea dx,Endl ;Endl.
int 21h
;取得字符串长度:
mov al,Length1
mov bl,Length2
;比较长度:
cmp al,bl
jne NoEqual ;不一样长就不相等。
xor ch,ch
mov cl,al ;设定循环次数。
xor bx,bx ;用dx寻址。
ComTh: ;CompareThem
mov al,STR1[bx]
mov dl,STR2[bx]
cmp al,dl
jne NoEqual ;不相等就不相等。
inc bx
loop ComTh
Equal:
lea dx,OK
mov ah,09h
int 21h
jmp quit
NoEqual:
lea dx,NoFo
mov ah,09h
int 21h
quit:
mov ah,4ch ;返回。
int 21h
code ends ;代码段结束。
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -