計算字串長度 組合語言

2021-09-17 04:56:40 字數 891 閱讀 7318

設有一字串存放在以 buf 為首址的資料區中,其最後一字元『$』作為結束標誌,計算該字串的長度並輸出

datas segment

buf db 20,?,20 dup('$')

datas ends

stacks segment

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

mov es,ax

lea dx,buf

mov ah,10 ;輸入

int 21h

mov dl,0ah ;換行

mov ah,2

int 21h

mov dl,0dh

mov ah,2

int 21h

mov bx,offset buf[2]

mov al,0

mov cl,0

l: mov al,buf[bx]

cmp al,'$'

je over

inc bx

inc cl

jmp l

over:

mov dl,cl

add dl,30h

mov ah,02

int 21h

mov ah,4ch

int 21h

codes ends

end start

結果圖示例:

組合語言求字串長度 32位

組合語言求字串長度,逆向中經常會出現,標記一下 scas 說明是32位處理器 求字串長度,結果存放在 eax 中 mov edx,edi mov edi,eax mov ecx,0x1 將ecx 賦值為ffffffff xor al,al repne scas byte ptr es edi 使用 ...

組合語言求字串長度 32位

組合語言求字串長度,逆向中經常會出現,標記一下 scas 說明是32位處理器 求字串長度,結果存放在 eax 中 mov edx,edi mov edi,eax mov ecx,0x1 將ecx 賦值為ffffffff xor al,al repne scas byte ptr es edi 使用 ...

彙編 字串長度

眾所周知在字串變數定義之後立即利用位址計數器指標符號 string就得到字串長度。string db 你的字 len string equ string但可能有小夥伴直接就拿來用了,卻不知道為什麼 string就得到字串長度。其實 就是當前位址,string 就是當前位址減去string的初始位址,...