Programming
Assembly Programming - strlen
__미니__
2015. 10. 10. 00:41
.s파일 빌드 방법은 .c와 같다.
gcc -o prog prog.c
32바이트 빌드는 뒤에 -m32를 붙이면 된다.
%eax에 길이가 들어가겠으나 strlen만으로는 확인할 방법이 없어 GDB로 직접 디버깅하여 실제 문자열 길이가 리턴되는것을 확인하였다.
.globl main main: push %ebp mov %esp, %ebp push $helloworld call strlen leave ret strlen: push %ebp mov %esp, %ebp xor %ecx, %ecx mov 0x08(%ebp), %eax .strlen_loop: movb (%eax), %bl cmpb $0x00, %bl je .strlen_finish inc %eax inc %ecx jmp .strlen_loop .strlen_finish: mov %ecx, %eax leave ret helloworld : .string "Hello, World"