strcmp(asm)
assume cs:code,ds:datadata segment
strSou db 'Hello world!
strDis db 'Hello world!
; Tips Message
TipsBig db 'string source big string distation!
TipsEqual db 'string source Equa string distation!
TipsLess db 'string source Less string distation!
data ends
code segment
start:mov ax, data
mov ds, ax
mov es, ax
mov si, offset strSou
mov di, offset strDis
cld
xor cx, cx
NEXT: cmp byte ptr, '
jz SOUEND ; 如果第一个字符串已经结束的话,再判断第二个有没有结束
cmp byte ptr , ' ; 如果第一个没有结束,判断第二个有没有结束
jz SOUBIG ; 如果第二个已经结束的话
; 再判断二个是不是相等
cmpsb
jl SOULES ; 如果第一个小于第二个的话,跳出
jg SOUBIG ; 如果第一个大于第二个的话,跳出
inc cx ; 如果相等的话,继续loop
jmp NEXT
SOUEND: cmp byte ptr , ' ; 当第一个已经结束的话再判断第二个是否结束
jzSOUQUE ; 如果等于0的话,说明相等
jmp SOULES ; 否则第二个大于第一个
SOUBIG: mov dx, offset TipsBig ; 输出第一个小于第二个
jmp DISPLAY
SOUQUE: mov dx, offset TipsEqual ; 等于
jmp DISPLAY
SOULES: mov dx, offset TipsLess ; 小于
jmp DISPLAY
DISPLAY: mov ah, 9h
int 21h
EXIT: mov ah, 4ch
int 21h
code ends
end start
[ 本帖最后由 evilknight 于 2010-1-25 23:13 编辑 ] :hug: 学习!~
页:
[1]