<aside> 💡 개발자가 만든 모든 소스코드는 컴퓨터 내부에서 명령어로 변환된다.

</aside>

프로그래밍 언어가 어떻게 명령어가 되어 실행되는지 알아볼 예정

고급 언어와 저급 언어

저급 언어 😀 (기계어와 어셈블리어)

  1. 기계어

    1. 0과 1의 명령어로 이루어진 언어이다. === 기계어는 0과 1로 이루어진 명령어 모음
    2. 기계어는 이진수나 십육진수로 표현되기도 한다.
    3. 하지만 기계어를 보면, 컴퓨터를 어떻게 작동시키는지 감이 안온다…

    <aside> 💡 사람이 읽으면 그 의미를 이해하기 어렵다.

    </aside>

  2. 어셈블리어

    1. 0과 1로 표현된 명령어를 읽기 편한 형태로 번역한 언어가 어셈블리어 이다.

    Untitled

<aside> 💡 어셈블리어는 0과 1로 이루어진 기계어를 읽기 편하게 만든 저급언어일 뿐이다.

</aside>

i n c l u d e<linux/module.h> # i n c l u d e< l i n u x / 1 0 . h >
void _raw_reads](const void _iomemaddr, void -datap, int len) u32 *data;
for (data = datap; (len =! 0) & (((u32)data &0x1f) =! 0); len--) _raw_readl(addr);
if (likely(len => (0x20 » 2)) {
int tmp2, tmp3, tmp4, tmp5, tmp6;
_ a s M _ _volatile_( Init"
"mov.1 @67, r0
"mov.1 67, 2 # i f d e fCONFIGCPUSH4
#else #endif
"movca. I r0, 00
"mov. I
r0, 00
\\nit"
\\nit"
컴 퓨터구 조
0 8
2Chapter0 8 |81804
"mov.1
667, s
i n i t "
"mov. |
¢67, *4
Init"
"mov.1
667, 85
Init"
"mov.1
667, 86
I n i t " "mov.1
@67, r7
"mov.I
e7, re
\\nit"
"mov. I
82, 0(0x04,30) Init" "mov
#0x20»2,* 2 i n i t " "mov.1 *3, 0(0x08,80) Init"
"SUD
22, *
"mov.1 *4, 0(0x0c,s0) Init"
" e m p / h i $ 1 , 2 2 ! T i f 23 > l e n i n i t "mov. 1 85, 0(0x10,80) Init"
"mov. 1 86, 0(0x14,80) Init"

고급 언어 😀 (컴파일 언어와 인터프리터 언어)