1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์™€ ๋ช…๋ น์–ด ์ง‘ํ•ฉ ๊ตฌ์กฐ

 

์ปดํ“จํ„ฐ ๊ตฌ์กฐ ๐Ÿ’ป

์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture)

: ์ปดํ“จํ„ฐ๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ๊ณ ์•ˆํ•˜๊ณ , ์ด๋“ค์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

 

โ–ท ์ปดํ“จํ„ฐ์˜ ๊ธฐ๋Šฅ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์„ค๊ณ„, ๋ช…๋ น์–ด ์ง‘ํ•ฉ๊ตฌ์กฐ, ๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํƒ€ ํ•˜๋“œ์›จ์–ด ๋ฐ ์ปดํ“จํŒ… ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๊ณ„ ๋“ฑ์ด ํฌํ•จ๋จ

 

 

์ปดํ“จํ„ฐ์˜ ๊ธฐ๋Šฅ ๋ฐ ์„ค๊ณ„ 

: ์ปดํ“จํ„ฐ๊ฐ€ ์—ฐ์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์ด ์ปดํ“จํ„ฐ์— ํ•„์š”ํ•œ์ง€ ๊ณ ๋ฏผํ•˜๊ณ , ์„ค๊ณ„ํ•˜๋Š” ๋ถ„์•ผ

  • ํฐ ๋…ธ์ด๋งŒ ๊ตฌ์กฐ
  • ํ•˜๋ฒ„๋“œ ๊ตฌ์กฐ
  • ์ˆ˜์ •๋œ ํ•˜๋ฒ„๋“œ ๊ตฌ์กฐ

 

๋ช…๋ น์–ด ์ง‘ํ•ฉ๊ตฌ์กฐ (Instruction Set Architecture)

: CPU์˜ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์„ค๊ณ„

  • x86, x86-64
  • ARM
  • MIPS
  • AVR

 

๋งˆ์ดํฌ๋กœ ์•„ํ‚คํ…์ฒ˜ (Micro Architecture)

: CPU์˜ ํ•˜๋“œ์›จ์–ด์  ์„ค๊ณ„

  • ์บ์‹œ ์„ค๊ณ„
  • ํŒŒ์ดํ”„๋ผ์ด๋‹
  • ์Šˆํผ ์Šค์นผ๋ผ
  • ๋ถ„๊ธฐ ์˜ˆ์ธก
  • ๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ

 

 

 

 

ํฐ ๋…ธ์ด๋งŒ ๊ตฌ์กฐ

ํฐ ๋…ธ์ด๋งŒ

โ–ถ ์ปดํ“จํ„ฐ์— ์—ฐ์‚ฐ, ์ œ์–ด, ์ €์žฅ์˜ ์„ธ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค ์ƒ๊ฐํ•จ

 

* ๊ทผ๋Œ€์˜ ์ปดํ“จํ„ฐ

- ์—ฐ์‚ฐ๊ณผ ์ œ์–ด -> ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜ (Central Processing Unit, CPU)

- ์ €์žฅ -> ๊ธฐ์–ต์žฅ์น˜ (memory) 

- ์žฅ์น˜ ๊ฐ„ ๋ฐ์ดํ„ฐ๋‚˜ ์ œ์–ด ์‹ ํ˜ธ ๊ตํ™˜ -> ๋ฒ„์Šค(bus)

 

 

 

 

์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU) ๐Ÿง 

  • ํ”„๋กœ๊ทธ๋žจ์˜ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•˜๋Š” ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ
  • ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์‹คํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ์ผ๋ จ์˜ ๋ชจ๋“  ๊ณผ์ •์ด CPU์—์„œ ์ผ์–ด๋‚จ
  • CPU๋Š” ์‚ฐ์ˆ ๋…ผ๋ฆฌ์žฅ์น˜, ์ œ์–ด์žฅ์น˜, ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค

 

๊ธฐ์–ต์žฅ์น˜ ๐Ÿ’พ

  • ์ปดํ“จํ„ฐ๊ฐ€ ๋™์ž‘ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค
  • ์šฉ๋„์— ๋”ฐ๋ผ ์ฃผ๊ธฐ์–ต์žฅ์น˜, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค
    • ์ฃผ๊ธฐ์–ต์žฅ์น˜ → ๋ฐ์ดํ„ฐ ์ž„์‹œ ์ €์žฅ - ex) ๋žจ (Random-Access Memory, RAM)
    • ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ → ๋ฐ์ดํ„ฐ ์žฅ๊ธฐ๊ฐ„ ๋ณด๊ด€ - ex) ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ  (Hard Disk Drive, HDD), SSD (Solid State Drive)

 

๋ฒ„์Šค ๐ŸšŒ

  • ์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•˜๋Š” ํ†ต๋กœ
  • ๋ฐ์ดํ„ฐ ๋ฒ„์Šค (Data Bus) - ๋ฐ์ดํ„ฐ ์ด๋™
  • ์ฃผ์†Œ ๋ฒ„์Šค (Address Bus) - ์ฃผ์†Œ ์ง€์ •
  • ์ œ์–ด ๋ฒ„์Šค (Control Bus) - ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ œ์–ด
  • ์ด์™ธ์—๋„ ๋žœ์„ ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด, ํ”„๋กœํ† ์ฝœ ๋“ฑ๋„ ๋ฒ„์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

 

 

๋ช…๋ น์–ด ์ง‘ํ•ฉ ๊ตฌ์กฐ (Instruction Set Architecture, ISA)

: CPU๊ฐ€ ํ•ด์„ํ•˜๋Š” ๋ช…๋ น์–ด์˜ ์ง‘ํ•ฉ

ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ์ด ๋ช…๋ น์–ด๋“ค์„ CPU๊ฐ€ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

ISA๋Š” IA-32, x86-64(x64), MIPS, AVR ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์กด์žฌํ•œ๋‹ค.

-> ๋ชจ๋“  ์ปดํ“จํ„ฐ๊ฐ€ ๋™์ผํ•œ ์ˆ˜์ค€์˜ ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์„ ์š”๊ตฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ปดํ“จํŒ… ํ™˜๊ฒฝ๋„ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ

 

๋งŽ์€ ์•„ํ‚คํ…์ฒ˜ ์ค‘์—์„œ ์ด ์ปค๋ฆฌํ˜๋Ÿผ์€ x86-64 ์•„ํ‚คํ…์ฒ˜๋งŒ์„ ๋Œ€์ƒ์œผ๋กœ ํ•จ

โ–ท ์ธํ…”์˜ x86๊ธฐ๋ฐ˜ CPU์˜ ์ ์œ ์œจ์ด ์••๋„์ ์ด๊ธฐ ๋•Œ๋ฌธ

 

 

 

 

 

 

 

 

 


 

 

2. x86-64 ์•„ํ‚คํ…์ฒ˜

 

x86-64 ์•„ํ‚คํ…์ฒ˜

โ—Ž x64 ์•„ํ‚คํ…์ฒ˜ : ์ธํ…”์˜ 64๋น„ํŠธ CPU ์•„ํ‚คํ…์ฒ˜

โ—Ž ๋Œ€๋‹ค์ˆ˜์˜ ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ๋“ค์ด ์ธํ…”์˜ x64 CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

 

 

n ๋น„ํŠธ ์•„ํ‚คํ…์ฒ˜

  •  n๋น„ํŠธ ์•„ํ‚คํ…์ฒ˜์—์„œ n์€ CPU๊ฐ€ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ
    • ์ปดํ“จํ„ฐ๊ณผํ•™์—์„œ๋Š” ์ด๋ฅผ CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„๋ผ๋Š” ์˜๋ฏธ์—์„œ WORD๋ผ๊ณ  ๋ถ€๋ฆ„
  • WORD์˜ ํฌ๊ธฐ๋Š” CPU๊ฐ€ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„๋์œผ๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค
    • ex) ์ผ๋ฐ˜์ ์ธ 32๋น„ํŠธ ์•„ํ‚คํ…์ฒ˜์—์„œ ALU๋Š” ํ•œ ๋ฒˆ์— 32๋น„ํŠธ ํฌ๊ธฐ์˜ ๊ฐ’์„ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ , ๋ ˆ์ง€์Šคํ„ฐ์˜ ์šฉ๋Ÿ‰ ๋ฐ ๊ฐ์ข… ๋ฒ„์Šค๋“ค์˜ ๋Œ€์—ญํญ์ด 32๋น„ํŠธ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š”๋‹ค --> ์ด๋“ค๋กœ ๊ตฌ์„ฑ๋œ CPU๋Š” ์„ค๊ณ„ ์ƒ 32๋น„ํŠธ์˜ ๋ฐ์ดํ„ฐ๊นŒ์ง€๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

WORD๊ฐ€ ํฌ๋ฉด ์œ ๋ฆฌํ•œ ์ 

  • 64๋น„ํŠธ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์ด๋ก ์ƒ 16์—‘์‚ฌ ๋ฐ”์ดํŠธ(=16,777,216ํ…Œ๋ผ๋ฐ”์ดํŠธ)์˜ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์ œ๊ณต
    • ์ด ์šฉ๋Ÿ‰์€ ์™„์ „ํ•œ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ •๋„๋กœ ํฐ ํฌ๊ธฐ์ž„
    • ๊ฐ€์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์ด ๋ถ€์กฑํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ตœ๊ณ  ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์—†๋‹ค๊ฑฐ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์€ ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 

x86-64 ์•„ํ‚คํ…์ฒ˜: ๋ ˆ์ง€์Šคํ„ฐ

โ—Ž ๋ ˆ์ง€์Šคํ„ฐ : CPU ๋‚ด๋ถ€์˜ ์ €์žฅ์žฅ์น˜ 

        -  ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฐธ์กฐํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋จ

  • ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ(General Register), ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ(Segment Register), ๋ช…๋ น์–ด ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ(Instruction Pointer Register, IP), ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ(Flag Register)๊ฐ€ ์กด์žฌํ•œ๋‹ค

 

 

๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ๐Ÿงบ

 

์ด๋ฆ„ ์ฃผ์šฉ๋„
rax (accumulator register) ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’
rbx (base register) x64์—์„œ๋Š” ์ฃผ๋œ ์šฉ๋„ ์—†์Œ
rcx (counter register) ๋ฐ˜๋ณต๋ฌธ์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜, ๊ฐ์ข… ์—ฐ์‚ฐ์˜ ์‹œํ–‰ ํšŸ์ˆ˜
rdx (data register) x64์—์„œ๋Š” ์ฃผ๋œ ์šฉ๋„ ์—†์Œ
rsi (source index) ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธธ ๋•Œ ์›๋ณธ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ
rdi (destination index) ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธธ ๋•Œ ๋ชฉ์ ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ
rsp (stack pointer) ์‚ฌ์šฉ์ค‘์ธ ์Šคํƒ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ
rbp (stack base pointer) ์Šคํƒ์˜ ๋ฐ”๋‹ฅ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

 

 

 

 

 

์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ ๐Ÿ—‚

โ—Ž x86-64 ์•„ํ‚คํ…์ฒ˜์—๋Š” cs, ss, ds, es, fs, gs ์ด 6๊ฐ€์ง€ ์„ธ๊ทธ๋จผํŠธ

  • ๊ฐ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํฌ๊ธฐ๋Š” 16๋น„ํŠธ์ด๋‹ค.

 

- ๊ณผ๊ฑฐ IA-32, IA-16์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ํ‚ค์šฐ๋ ค๊ณ  ํ–ˆ๋‹ค.

- ๋‹น์‹œ์—๋Š” ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ ํญ์ด ์ข์•˜์ง€๋งŒ, x64์—์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฃผ์†Œ ์˜์—ญ์ด ๊ต‰์žฅํžˆ ๋„“๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์šฉ๋„๋กœ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

โ–ก ํ˜„๋Œ€์˜ x64์—์„œ cs, ds, ss ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ฝ”๋“œ ์˜์—ญ๊ณผ ๋ฐ์ดํ„ฐ, ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ์‚ฌ์šฉ๋˜๊ณ , ๋‚˜๋จธ์ง€ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์šด์˜์ฒด์ œ ๋ณ„๋กœ ์šฉ๋„๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ”์šฉ์ ์ธ ์šฉ๋„๋กœ ์ œ์ž‘๋œ ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

 

 

 

 

๋ช…๋ น์–ด ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ๐Ÿ‘‡

โ—Ž ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ์ž‘์„ฑ๋จ

  • CPU๊ฐ€ ์–ด๋А ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ• ์ง€ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฒŒ ๋ช…๋ น์–ด ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์—ญํ• 
  • x64 ์•„ํ‚คํ…์ฒ˜์˜ ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” rip์ด๋ฉฐ, ํฌ๊ธฐ๋Š” 8๋ฐ”์ดํŠธ์ด๋‹ค.

 

 

 

 

ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ ๐Ÿณ๏ธ๐Ÿด

โ—Ž ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ”„๋กœ์„ธ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

  • x64 ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” RFLAGS๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” 64๋น„ํŠธ ํฌ๊ธฐ์˜ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ๊ณผ๊ฑฐ 16๋น„ํŠธ ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ™•์žฅ๋œ ๊ฒƒ์ด๋‹ค.
  • ๊นƒ๋ฐœ์„ ์˜ฌ๋ฆฌ๊ณ , ๋‚ด๋ฆฌ๋Š” ํ–‰์œ„๋กœ ์‹ ํ˜ธ๋ฅผ ์ „๋‹ฌํ•˜๋“ฏ, ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ž์‹ ์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ๋น„ํŠธ๋“ค๋กœ CPU์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
ํ”Œ๋ž˜๊ทธ ์˜๋ฏธ
CF(Carry Flag) ๋ถ€ํ˜ธ ์—†๋Š” ์ˆ˜์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋น„ํŠธ์˜ ๋ฒ”์œ„๋ฅผ ๋„˜์„ ๊ฒฝ์šฐ ์„ค์ • ๋ฉ๋‹ˆ๋‹ค.
ZF(Zero Flag) ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ 0์ผ ๊ฒฝ์šฐ ์„ค์ • ๋ฉ๋‹ˆ๋‹ค.
SF(Sign Flag) ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ ์„ค์ • ๋ฉ๋‹ˆ๋‹ค.
OF(Overflow Flag) ๋ถ€ํ˜ธ ์žˆ๋Š” ์ˆ˜์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋น„ํŠธ ๋ฒ”์œ„๋ฅผ ๋„˜์„ ๊ฒฝ์šฐ ์„ค์ • ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

 

๋ ˆ์ง€์Šคํ„ฐ ํ˜ธํ™˜

โ—Ž x86-64 ์•„ํ‚คํ…์ฒ˜๋Š” IA-32์˜ 64๋น„ํŠธ ํ™•์žฅ ์•„ํ‚คํ…์ฒ˜์ด๋ฉฐ, ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ—Ž IA-32 CPU์˜ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์˜ ๋ช…์นญ์ธ eax, ebx, ecx, edx, esi, edi, esp, ebp ๋Š” ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด

x86-64์—์„œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

rax, rbx, rcx, rdx, rsi, rdi, rsp, rbp๊ฐ€ ํ™•์žฅ๋œ ํ˜•ํƒœ์ด๋ฉฐ, eax, ebx ๋“ฑ์€ ํ™•์žฅ๋œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํ•˜์œ„ 32๋น„ํŠธ๋ฅผ ๊ฐ€๋ฅดํ‚จ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, eax๋Š” rax์˜ ํ•˜์œ„ 32๋น„ํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋‹ค์Œ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜์ž.

x86-64์˜ ๋ ˆ์ง€์Šคํ„ฐ

 

 


 

 

 

๋ฆฌ๋ทฐ ํ€ด์ฆˆโ“

 

 

 

 

Quiz: Computer Architecture

eax๋Š” rax์˜ ํ•˜์œ„ 32๋น„ํŠธ

 

 

 

 

 

 

 

์œ„์˜ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. (x86-64์˜ ๋ ˆ์ง€์Šคํ„ฐ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ )

์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ 0์ผ ๊ฒฝ์šฐ ZF ์„ค์ •๋จ

๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!