💻 Computer/🦖 Assembly
-
Assembly로 뭘 할 수 있을까? 나는 생각했다 내가 입력한걸 10번 출력해주는 그런 것을 그래서 만들어 보았다 코드 section .text global _start _start: mov rsi, rsp sub rsi, 0x10 mov rdx, 0x10 xor rdi, rdi xor rax, rax syscall ;write mov r10, 1 again: cmp r10, 10 je done inc r10 mov rax, 1 mov rdi, 1 syscall jmp again ;finish done: mov rax, 0x3c mov rdi, 0 syscall 처음에 배울 때 "대체 왜?? 저렇게 하는 거지??"라고 생각했던 것들이 이젠 하루 지나니 조금은 이해가 되었나 보다 위의 코드는 처음으로 내..
[Assembly] 반복문Assembly로 뭘 할 수 있을까? 나는 생각했다 내가 입력한걸 10번 출력해주는 그런 것을 그래서 만들어 보았다 코드 section .text global _start _start: mov rsi, rsp sub rsi, 0x10 mov rdx, 0x10 xor rdi, rdi xor rax, rax syscall ;write mov r10, 1 again: cmp r10, 10 je done inc r10 mov rax, 1 mov rdi, 1 syscall jmp again ;finish done: mov rax, 0x3c mov rdi, 0 syscall 처음에 배울 때 "대체 왜?? 저렇게 하는 거지??"라고 생각했던 것들이 이젠 하루 지나니 조금은 이해가 되었나 보다 위의 코드는 처음으로 내..
2022.09.22 -
Assembly Hello World section .data msg db "hello world"; data 영역에 msg라는 포인터 변수가 Hello world의 주소를 갖는다 section .text global_start; text영역에 start함수 정의 _start: mov rax, 1; rax에 1입력 (System Call Write) mov rdi, 1; rdi에 1입력 (unsigned int fd) mov rsi, msg; rsi에 데이터 영역에 있는 포인터 변수 msg입력 (const char *buf) mov rdx, 12; mov rdx, 12 (문자열의 글자 수) syscall; System Call (sys_write) mov rax, 60; rax에 60입력 (System ..
[Assembly] Hello world 출력Assembly Hello World section .data msg db "hello world"; data 영역에 msg라는 포인터 변수가 Hello world의 주소를 갖는다 section .text global_start; text영역에 start함수 정의 _start: mov rax, 1; rax에 1입력 (System Call Write) mov rdi, 1; rdi에 1입력 (unsigned int fd) mov rsi, msg; rsi에 데이터 영역에 있는 포인터 변수 msg입력 (const char *buf) mov rdx, 12; mov rdx, 12 (문자열의 글자 수) syscall; System Call (sys_write) mov rax, 60; rax에 60입력 (System ..
2022.09.18