欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 微機原理與接口技術實驗-字符串搜索與匹配 [打印本頁]

作者: 2253318110    時間: 2023-5-21 12:06
標題: 微機原理與接口技術實驗-字符串搜索與匹配
介紹了一個使用x86指令集的匯編語言仿真實驗,實驗具體要求和仿真結果如下:1、實驗任務要求

2、設計思路
分析實驗要求,我們要完成四個功能:
1)從一個已知字符串str中找到匹配字符串substr的起始位置;
2)從起始位置開始,比對兩個字符串,確定兩個字符串確實一樣,由此便可認為已知字符串中出現了匹配字符串;
3)在找到匹配字符串后,設置標志為單元found;
4)在找到匹配字符串后,把匹配位置存放到pos中。
明確需要完成的功能,然后設計算法:
1)使用‘while’循環,遍歷字符串str,找到匹配字符串substr的起始位置;
2)找到起始位置后,再用LOOP循環對兩個字符串比對。循環次數是substr長度再減一(第一次已經在while中完成);
3)4)完成循環后,設置標志位found,把匹配位置存放到pos中。

注意到str可能不包含substr,當遍歷str沒有找到substr時,程序終止。

下面是程序思路流程圖:

3、運行結果
設置字符串str和匹配字符串substr如圖:

運行結果如下:


本實驗的匯編語言源代碼見博客末尾:
  1. ;Finding substr from string

  2. DATA SEGMENT
  3.     str DB '2020210827 Liqiwen', 00H
  4.     substr DB 'Liqiwen', 00H
  5.     N EQU $-substr
  6.     found DB 00H
  7.     pos DW ?
  8. DATA ENDS

  9. CODE SEGMENT
  10.     ASSUME CS:CODE, DS:DATA
  11. START:
  12.     MOV AX, DATA
  13.     MOV DS, AX
  14.    
  15.     LEA SI, str
  16.     XOR AX, AX
  17.     MOV AL, [SI]    ;Using AL as the container of [SI]
  18.     XOR CX, CX
  19.     MOV CX, N-1     ;LOOP times: N-1
  20. BACK:LEA DI, substr
  21. SHIFT:
  22.     CMP AL, 00H     ;str doesn't contain substr, program terminated.
  23.     JE FINISH
  24.     CMP AL, [DI]
  25.     JE COMP         ;If [SI] euqals the first chart of substr, comparation will begin.
  26.     INC SI
  27.     MOV AL, [SI]   
  28.     JMP SHIFT
  29. COMP:
  30.     INC SI          ;Shift to the next chart
  31.     INC DI
  32.     MOV AL, [SI]
  33. L1:
  34.     CMP AL, [DI]
  35.     JNE BACK        ;If [DI] doesn't euqal [SI], clarifying substr didn't appare, instruction will go back.
  36.     INC SI
  37.     INC DI
  38.     MOV AL, [SI]
  39.     LOOP L1
  40.    
  41.     MOV AL, 0FFH
  42.     MOV found, AL
  43.     LEA BX, SI-8    ;BX deposits the beginning position.
  44.     MOV [pos], BX
  45.      
  46. FINISH:   
  47.     MOV AH, 4CH
  48.     INT 21H
  49. CODE ENDS
  50. END START
復制代碼





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1