設有一字串存放在以 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的初始位址,...