1. 程式人生 > >彙編複習(在字串搜尋特定字元,成功顯示其位置,否則顯示"not found")

彙編複習(在字串搜尋特定字元,成功顯示其位置,否則顯示"not found")

data segment
    str1 db "loveYHigh"
    len_str1 equ $-str1
    s_fail db "not found$"
    s_element db "Y"
data ends

code segment
    assume cs:code,ds:data
    start:
        mov ax,data
        mov ds,ax
        lea si,str1
        mov al,s_element
        mov bx,1h
        mov cx,len_str1
    search:
cmp [si],al jz show inc bx inc si loop search lea dx,s_fail mov ah,09h int 21h jmp quit show: add bx,30h mov dx,bx mov ah,02h int 21h jmp quit quit: mov ah,4ch int 21
h code ends end start

str1被搜尋的字串 len_str1是str1的長度(equ是偽指令 相等於賦值 $-xxxx可以計算xxxx的長度)後面兩個分別是沒找到的輸出以及索要尋找的字元

在這裡插入圖片描述

整體思想就是設定次數為len_str1的迴圈然後遍歷str1 然後bx為索引,找到輸出索引找不到索引就加一,如果迴圈結束還沒找到就輸出 not found

在這裡插入圖片描述
其他指令在其他博文裡面有介紹了 這裡不贅述了 再補充一個小知識

如何在彙編裡面看標誌位

在這裡插入圖片描述

對應debug右下角的位置 大家可以記一下

在這裡插入圖片描述