欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-02 15:42:22
...

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

 

 一、实验要求和目的    

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

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

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

二、实验内容

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

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

 

1. 实验内容 (1)

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

;Author:YXP
;CSDN:yxp189
;Email:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~

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:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~

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