전체 글(45)
-
C언어 - 자료형, 상수, 변수
이번에는 자료형에 대해 알아보도록 하겠습니다. 자료형은 정수형, 실수형, 문자형이 있고, 후에 배울 배열형, 포인터형, 열거형 등 여러 가지 자료형이 존재합니다. 먼저 정수형, 실수형, 문자형 자료형에 대해 알아보도록 하겠습니다. 정수형 자료형 크기( byte ) 표현 범위 char 1 -128 ~ 127 short int 2 -32,768 ~ 32,767 int 4 -2,147,483,648 ~ 2,147,483,647 long int 4 -2,147,483,648 ~ 2,147,483,647 실수형 자료형 크기( byte ) 표현 범위 float 4 -10^128 ~ 10^127 : 소수 6자리 표현 double 8 -10^128 ~ 10^127 : 소수 15자리 표현 문자형 자료형 크기( byte ..
2022.11.03 -
C언어 - 프로그램의 기본 구조
C언어 프로그램의 기본 구조를 자세하게 살펴보도록 하겠습니다. #include int main(void){ /* 명령문 */ return 0; } #include C언어의 헤더파일(확장자 : .h)을 프로그램에 포함시키는 명령입니다. 위 같은 경우에는, stdio.h의 내용을 프로그램에 포함시키는 경우라고 보시면 됩니다. int main(void) C언어는 반드시 main함수를 실행하면서 프로그램이 시작됩니다. 그러므로 반드시 main함수는 존재해야 합니다. return 0 return문은 함수를 종료할 때 사용하는 명령문입니다. main함수에서 사용하는 return문은 프로그램을 종료하는 의미로 사용됩니다. (*참고 : 0은 정상 종료를 의미합니다.)
2022.11.03 -
백준 - 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 -
백준 - Hello World
백준의 Hello World 문제입니다. 문제 해결 코드는 다음과 같습니다. section .data msg : db "Hello World!", 0xa, 0 ; 0xa = \n section .text global main main: mov rax, 1; 1 = sys_write mov rdi, 1; 1 = stdout mov rsi, msg; rsi = msg_address mov rdx, 12; rdx = msg_length syscall mov rax, 0; return 0 ret
2022.10.28