How Strings Are Compared in Assembly | Beginner Tutorial | x86-64 Machine Code

Опубликовано: 18 Март 2026
на канале: Mxy
1,332
85

Follow along with me in the x64Playground: https://x64.halb.it (Select GNU as the Assembler!)
Watch the course from the beginning:    • Learn Assembly For Beginners | Introductio...  
Next Video in Course:    • Building a Tiny Shell in Assembly | Beginn...  
Previous Video in Course:    • How a Shell Reads Commands | Building a To...  

00:00 Why CMP fails for Strings
01:36 Coding strcmp() in Assembly
07:10 Testing strcmp()
8:55 Outputting match/no match
12:40 CHALLENGE: Check only N characters of string

;##### Code Below
exit:
xor rdi, rdi
mov rax, 60
syscall

print:
push rdi
call slen
pop rsi
mov rdx, rax
mov rax, 1
mov rdi, 1
syscall
ret

println:
push rdi
call slen
pop rsi
mov rdx, rax
mov rax, 1
mov rdi, 1
syscall

mov rax, 1
mov rdi, 1
lea rsi, [newline]
mov rdx, 1
syscall
ret

slen:
xor rcx, rcx

slen.loop:
mov al, [rdi + rcx]
cmp al, 0
je slen.ret
inc rcx
jmp slen.loop

slen.ret:
mov rax, rcx
ret


;#########