【微机原理 实验】 字符串操作编程实验(含汇编代码)

实验五   字符串操作编程实验

更多微机实验:https://blog.csdn.net/yxp189/column/info/39992 

                         汇编语言-微机原理与接口技术-实验

注意未经允许,请勿转载!

           转载请标明出处~

适用课程:微机原理与接口技术(实验)

选用教材:微型计算机原理与接口技术-中国科学技术大学出版社

 

 一、实验要求和目的    

1.了解汇编语言字符串处理基本流程;  

2.熟悉汇编语言字符串处理基本指令的使用方法; 

3.掌握利用汇编语言实现字符串处理的程序设计方法。

二、实验内容

(1)编写程序,实现两个字符串比较,如相同,则显示“match”,否则,显示“NO MATCH”

(2)编写程序,统计一串字符串中某字符出现的次数。

 

1. 实验内容 (1)

    编写程序,实现两个字符串比较,如相同,则显示“match”,否则,显示“NO MATCH”

;Author:YXP
;CSDN:yxp189
;Email:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~

STACKS  SEGMENT   STACK     
              DW        128 DUP(?)  
      STACKS  ENDS
       DATAS  SEGMENT            
      STORE1  DB        'Hello'
      STORE2  DB        'Hello'
       COUNT  EQU       5
          W1  DB        'Please type in the first:' ,0DH,0AH,'$'
          W2  DB        'Next:'  ,0DH,0AH,'$'
     OUTPUT1  DB        'MATCH' ,0DH,0AH,'$'
     OUTPUT2  DB        'NO MATCH'  ,0DH,0AH,'$'
        
       DATAS  ENDS
       CODES  SEGMENT  
              ASSUME    CS:CODES,DS:DATAS,ES:DATAS
      START:  MOV       AX,DATAS  
              MOV       DS,AX

    PRINTW1:  MOV       AH,09H
              MOV       DX,OFFSET W1
              INT       21H
              
              CLD
              MOV       CX,COUNT
              LEA       SI,STORE1
              LEA       DI,STORE2
              
         OP:
              REPE      CMPSB 
              JNZ       PRINTNF
            
     PRINTF:
              MOV       AH,09H
              MOV       DX,OFFSET OUTPUT1
              INT       21H
              JMP       ENDD
    PRINTNF:
              MOV       AH,09H
              MOV       DX,OFFSET OUTPUT2
              INT       21H
              JMP       ENDD
       ENDD:
              MOV       AX,4C00H  
              INT       21H
       CODES  ENDS
              END       START

2. 实验内容 (2)

   编写程序,统计一串字符串中某字符出现的次数。

;Author:YXP
;CSDN:yxp189
;Email:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~

STACKS  SEGMENT   STACK     
              DW        128 DUP(?)
      STACKS  ENDS
       DATAS  SEGMENT    
   STORE  DB        'Helllo',0DH,0AH,'$'
         SCH  DB        1 DUP(0)
       COUNT  EQU       6
         NUM  DB        1 DUP(0)
          W1  DB        ' Times=:' ,0DH,0AH,'$'
        
       DATAS  ENDS
       CODES  SEGMENT          
              ASSUME    CS:CODES,DS:DATAS,ES:DATAS
      START:  MOV       AX,DATAS 
              MOV       DS,AX 
    PRINTW1:  MOV       AH,09H
              MOV       DX,OFFSET STORE
              INT       21H
    
       READ:  MOV       AH,01H
              INT       21H
              MOV       SCH,AL

              MOV       CX,COUNT
              LEA       SI,STORE
              CLD
         OP:
              LODSB
              CMP       AL,SCH
              JNZ       NONO
              INC       NUM
       NONO:  LOOP      OP
              
      PRINT:  MOV       AH,09H
              MOV       DX,OFFSET W1
              INT       21H
              
              MOV       AH,02H
              MOV       DL, NUM
              OR        DL,30H
              INT       21H       ENDD:
              MOV       AX,4C00H   
              INT       21H
       CODES  ENDS
              END       START

 

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字符串匹配实验是计算机科学中的一种基本算法,用于在给定的文本串中查找某个模式串的出现位置。该实验通过原理以及CSND上的相关资料提供了一个微机实现字符串匹配算法的方法。 首先,理解字符串匹配算法的原理十分重要。常见的字符串匹配算法有暴力匹配算法、KMP算法、Boyer-Moore算法等。这些算法的实现思路各不相同,但都能高效地解决字符串匹配问题。详细的实现步骤和原理可以在CSND上找到相关的资料。 在微机原理实验中,可以使用汇编语言或者高级语言来实现字符串匹配算法。通过编写程序,可以输入一个文本串和一个模式串,然后通过算法在文本串中找到模式串的出现位置。这个过程需要对字符串进行逐个字符的比较和匹配,直到找到匹配的位置或者遍历完整个文本串。 值得一提的是,字符串匹配算法的实现可以根据具体的需求作出一些优化。例如,在KMP算法中,可以通过构建部分匹配表来提高匹配的效率;在Boyer-Moore算法中,可以利用好后缀规则和坏字符规则来加速匹配过程。 在CSND上,可以找到很多关于字符串匹配实验的资料,包括具体的实现代码、算法原理的解析以及实验结果的讲解等。这些资料能够帮助我们更好地理解和实践字符串匹配的算法。 总之,字符串匹配实验是一个基于微机原理的计算机科学实践,通过研究算法原理和CSND上的相关资料,我们能够更好地理解和实现字符串匹配算法。这个实验能够提升我们的编程能力和问题解决能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值