专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

汇编程序:比较2个字符串是否相同(初级版)

作者:佚名   来源:本站原创   点击数:  更新时间:2013年12月01日   【字体:


DATAS SEGMENT
   source1 db 50 dup(?) ; 存放第一个串
   source2 db 50 dup(?) ; 存放第二个串
   title1 db 'Please input the first string:',0dh,0ah,'$'
   title2 db 'Please input the second string:',0dh,0ah,'$'
   ans db 'match',0dh,0ah,'$'
   ans1 db 'no match',0dh,0ah,'$' 
 DATAS ENDS
STACKS SEGMENT
  
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    mov dx,offset title1;输出抬头
    mov ah,09h  ;输出字符串用09
    int 21h
    mov cl,50
    mov si,0
 again:
    mov ah,01h
    int 21h
    cmp al,0dh
    jz two
    mov source1[si],al
    inc si
    dec cl
    jnz again  ;将第一个串搞定
two:
    mov dx,offset title2;输出第二个抬头
    mov ah,09h
    int 21h
    mov cl,50
    mov si,0
again1:
     mov ah,01h
     int 21h
     cmp al,0dh
     jz main
     mov source2[si],al
     inc si
     dec cl
    jnz again1;这里以上部分是给两个字符串赋值,一下部分是比较。
main:
    mov si,0
    mov cx,6
again2:mov al,source2[si]
      cmp  source1[si],al
      jnz nomatch
      inc si
      dec cx   
      jnz  again2
      cmp cx,0
      jz match  
nomatch:mov dx,offset ans1
        mov ah,09h
        int 21h
       jmp over
match: mov dx,offset ans
       mov ah,09h
       int 21h
over:  MOV AH,4CH
       INT 21H
CODES ENDS
    END START
; MADE BY WQ
 
这里是完善版的程序:http://www.51hei.com/mcu/2469.html

关闭窗口

相关文章