어셈블리(3)
-
백준 - A x B
백준의 A x B 문제입니다. 문제 해결 코드는 다음과 같습니다. extern scanf extern printf section .data input : db "%d %d", 0 output : db "%d", 10, 0 a : dd 0 b : dd 0 section .bss section .text global main main: push rbp mov rdi, input mov rsi, a mov rdx, b mov rax, 0 call scanf mov eax, [a] mov edx, [b] mul edx mov edi, output mov esi, eax mov eax, 0 call printf pop rbp mov rax, 0 ret mul(곱하기) 부호 없는 al, ax, eax의 값과 피연산..
2022.10.30 -
백준 - A - B
백준의 A - B 문제입니다. 문제 해결 코드는 다음과 같습니다. section .data a dd 0 b dd 0 input : db "%d %d", 10, 0 output : db "%d", 0 section .text global main extern scanf extern printf main: push rbp mov rdi, input mov rsi, a mov rdx, b mov rax, 0 call scanf mov rax, [a] mov rbx, [b] sub rax, rbx mov rdi, output mov rsi, rax mov rax, 0 call printf pop rbp mov rax, 0 ret
2022.10.30 -
백준 - A + B
백준의 A + B 문제입니다. 문제 해결 코드는 다음과 같습니다. section .bss a : resd 1; resd 1 -> 4 byte b : resd 1 section .data input : db "%d %d", 0 output : db "%d", 10, 0 section .text global main extern printf extern scanf main: push rbp mov rdi, input; scanf lea rsi, a lea rdx, b mov rax, 0 call scanf mov rax, [a] mov rbx, [b] add rax, rbx; a + b mov rdi, output; printf mov rsi, rax mov rax, 0 call printf pop rbp ..
2022.10.28