Home > 2024 > cs > ๐Ÿ’พ [CS] ๋ ˆ์ง€์Šคํ„ฐ

๐Ÿ’พ [CS] ๋ ˆ์ง€์Šคํ„ฐ
CS

๋ ˆ์ง€์Šคํ„ฐ.

  • ํ”„๋กœ๊ทธ๋žจ ์† ๋ช…๋ น์–ด์™€ ๋ฐ์ดํ„ฐ๋Š” ์‹คํ–‰ ์ „ํ›„๋กœ ๋ฐ˜๋“œ์‹œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’๋งŒ ์ž˜ ๊ด€์ฐฐํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
      • ๋‹ค์‹œ ๋งํ•ด ๋ ˆ์ง€์Šคํ„ฐ ์† ๊ฐ’์„ ์œ ์‹ฌํžˆ ๊ด€์ฐฐํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ CPU ๋‚ด์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ๋ช…๋ น์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ๋ ˆ์ง€์Šคํ„ฐ.

  1. ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ
  2. ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ
  3. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ
  4. ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ
  5. ํ”Œ๋ž˜์Šค ๋ ˆ์ง€์Šคํ„ฐ
  6. ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ
  7. ์Šคํƒ ํฌ์ธํ„ฐ
  8. ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ

ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ.

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC: Program Counter) : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์–ด ๋“ค์ผ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ๋ช…๋ น์–ด ํฌ์ธํ„ฐ(IP: Instruction Pointer) ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” CPU๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ.

  • ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ(IR: Instruction Register) : ํ•ด์„ํ•  ๋ช…๋ น์–ด, ์ฆ‰ ๋ฐฉ๊ธˆ ๋ฉ”๋กœ๋ฏธ์—์„œ ์ฝ์–ด ๋“ค์ธ ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.
    • ์ œ์–ด์žฅ์น˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ ์† ๋ช…๋ น์–ด๋ฅผ ๋ฐ›์•„๋“ค์ด๊ณ  ์ด๋ฅผ ํ•ด์„ํ•œ ๋’ค ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ.

  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ(MAR: Memory Address Register) : ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. CPU๊ฐ€ ์ฝ์–ด ๋“ค์ด๊ณ ์ž ํ•˜๋Š” ์ฃผ์†Œ ๊ฐ’์„ ์ฃผ์†Œ ๋ฒ„์Šค๋กœ ๋ณด๋‚ผ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ.

  • ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ(MBR: Memory buffer register) : ๋ฉ”๋ชจ๋ฆฌ์™€ ์ฃผ๊ณ ๋ฐ›์„ ๊ฐ’(๋ฐ์ดํ„ฐ์™€ ๋ช…๋ น์–ด)์„ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.
    • ์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ์— ์“ฐ๊ณ  ์‹ถ์€ ๊ฐ’์ด๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์€ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.
      • CPU๊ฐ€ ์ฃผ์†Œ ๋ฒ„์Šค๋กœ ๋‚ด๋ณด๋‚ผ ๊ฐ’์ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์นœ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ๋ฒ„์Šค๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ๊ฐ’์€ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.
        • ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ(MDR: Memory Data Register)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ, ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ์— ์–ด๋–ค ๊ฐ’๋“ค์ด ๋‹ด๊ธฐ๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.

1.

CPU๋กœ ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์ด 1000๋ฒˆ์ง€๋ถ€ํ„ฐ 1500๋ฒˆ์ง€๊นŒ์ง€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค,
๊ทธ๋ฆฌ๊ณ  1000๋ฒˆ์ง€์—๋Š” 1101โ‚โ‚‚โ‚Ž์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2.

ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์—๋Š” 1000์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ ๋ช…๋ น์–ด๊ฐ€ 1000๋ฒˆ์ง€์— ์žˆ๋‹ค๋Š” ๊ฑธ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

3.

1000๋ฒˆ์ง€๋ฅผ ์ฝ์–ด ๋“ค์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฃผ์†Œ ๋ฒ„์Šค๋กœ 100๋ฒˆ์ง€๋ฅผ ๋‚ด๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” 1000์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

4.

โ€˜๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐโ€™ ์ œ์–ด ์‹ ํ˜ธ์™€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์ด ๊ฐ๊ฐ ์ œ์–ด ๋ฒ„์Šค์™€ ์ฃผ์†Œ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.

5.

๋ฉ”๋ชจ๋ฆฌ 1000๋ฒˆ์ง€์— ์ €์žฅ๋œ ๊ฐ’์€ ๋ฐ์ดํ„ฐ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „๋‹ฌ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋Š” ์ฆ๊ฐ€๋˜์–ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ผ ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

6.

๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’์€ ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

7.

์ œ์–ด์žฅ์น˜๋Š” ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

5๋‹จ๊ณ„์—์„œ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ•œ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ–ˆ์œผ๋‹ˆ 1000๋ฒˆ์ง€ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด CPU๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด(1001๋ฒˆ์ง€)๋ฅผ ์ฝ์–ด ๋“ค์ž…๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋Š” ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉฐ ๊ณ„์†ํ•ด์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ผ ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ๊ณผ์ •์ด ๋ฐ˜๋ณต๋˜๋ฉด์„œ CPU๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰ํ•ด ๋‚˜๊ฐ‘๋‹ˆ๋‹ค.
    • ๊ฒฐ๊ตญ CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์† ํ”„๋กœ๊ทธ๋žจ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฝ์–ด ๋“ค์ด๊ณ  ์‹คํ–‰ํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” CPU ์† ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๊ฐ€ ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

  • ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ(general purpose register) : ๋‹ค์–‘ํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ…Œ์ดํ„ฐ ๋ฒ„์Šค๋กœ ์ฃผ๊ณ ๋ฐ›์„ ๊ฐ’๋งŒ ์ €์žฅํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ฃผ์†Œ ๋ฒ„์Šค๋กœ ๋‚ด๋ณด๋‚ผ ์ฃผ์†Œ๊ฐ’๋งŒ ์ €์žฅํ•˜์ง€๋งŒ, ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์™€ ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ผ๋ฐ˜์ ์œผ๋กœ CPU ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋“ค์ด ์žˆ๊ณ , ํ˜„๋Œ€ ๋Œ€๋‹ค์ˆ˜ CPU๋Š” ๋ชจ๋‘ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ(Flag register) : ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ๋˜๋Š” CPU ์ƒํƒœ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•œ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹(1): ์Šคํƒ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹.

  • ์Šคํƒ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹ : ์Šคํƒ๊ณผ ์Šคํƒ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹
    • ์Šคํƒ์€ ํ•œ์ชฝ ๋์ด ๋ง‰ํ˜€ ์žˆ๋Š” ํ†ต๊ณผ ๊ฐ™์€ ์ €์žฅ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
      • ๊ทธ๋ž˜์„œ ์Šคํƒ์€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ €์žฅํ•˜๋Š” ๊ฐ’๋ถ€ํ„ฐ ๊บผ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        • ์—ฌ๊ธฐ์„œ ์Šคํƒ ํฌ์ธํ„ฐ๋ž€ ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.
          • ์ฆ‰, ์Šคํƒ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ €์žฅํ•œ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ด…์‹œ๋‹ค.

๊ฐ€๋ น ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ„์—์„œ๋ถ€ํ„ฐ ์ฃผ์†Œ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๊ณ  ์•„๋ž˜๋ถ€ํ„ฐ ์ฐจ๊ณก์ฐจ๊ณก ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์Šคํƒ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

  • ์ด๋•Œ ์Šคํƒ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ์˜ ์ œ์ผ ๊ผญ๋Œ€๊ธฐ ์ฃผ์†Œ, ์ฆ‰ 4๋ฒˆ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋Š” โ€˜์Šคํƒ ํฌ์ธํ„ฐ๊ฐ€ ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹คโ€™๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์ฃ .
      • ์‰ฝ๊ฒŒ ๋งํ•ด, ์Šคํƒ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ์˜ ์–ด๋””๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์›Œ์ ธ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ‘œ์‹œ๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๊ทธ๋Ÿผ ์ด ์Šคํƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ผ ๋•Œ๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ๊บผ๋‚ด๊ฒŒ ๋ ๊นŒ์š”?

  • 1 -> 2 -> 3 ์ˆœ์„œ๋Œ€๋กœ ๊บผ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์—ฌ๊ธฐ์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋ฉด ์Šคํƒ์—๋Š” 2์™€ 3์ด ๋‚จ๊ณ , ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ ์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ํฌ์ธํ„ฐ๋Š” 5๋ฒˆ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

  • ํ˜„์žฌ ์Šคํ…์„ธ 4๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉด ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ์— 4๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
    • ์ด๋•Œ ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ ์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ํฌ์ธํ„ฐ๋Š” 4๋ฒˆ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์Šคํƒ์ด๋ผ๋Š” ๊ฒƒ์€ ๋„๋Œ€์ฒด ์–ด๋””์— ์žˆ๋Š” ๊ฑธ๊นŒ์š”?

  • ์Šคํƒ์€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ •ํ™•ํžˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์Šคํƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์˜์—ญ์ด ์ •ํ•ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ด๋ฅผ ์Šคํƒ ์˜์—ญ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
        • ์ด ์˜์—ญ์€ ๋‹ค๋ฅธ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์Šคํƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์•”๋ฌต์ ์œผ๋กœ ์•ฝ์†๋œ ์˜์—ญ์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•œ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹(2): ๋ณ€์œ„ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹

  • ๋ณ€์œ„ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹(displacement addressing mode) : ์˜คํผ๋žœ๋“œ ํ•„๋“œ์˜ ๊ฐ’(๋ณ€์œ„)๊ณผ ํŠน์ • ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ๋”ํ•˜์—ฌ ์œ ํšจ ์ฃผ์†Œ๋ฅผ ์–ป์–ด๋‚ด๋Š” ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณ€์œ„ ์ฃผ์†Œ ์ง€์ •๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฐ์‚ฐ ์ฝ”๋“œ ํ•„๋“œ, ์–ด๋–ค ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’๊ณผ ๋”ํ• ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ ํ•„๋“œ, ๊ทธ๋ฆฌ๊ณ  ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ์˜คํผ๋žœ๋“œ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ, ๋ณ€์œ„ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์€ ์˜คํผ๋žœ๋“œ ํ•„๋“œ์˜ ์ฃผ์†Œ์™€ ์–ด๋–ค ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋”ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹, ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹ ๋“ฑ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹

  • ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹(relative addressing mode) : ์˜คํผ๋žœ๋“œ์™€ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์™€ ๊ฐ’์„ ๋”ํ•˜์—ฌ ์œ ํšจ ์ฃผ์†Œ๋ฅผ ์–ป๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
    • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ์—๋Š” ์ฝ์–ด ๋“ค์ผ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
      • ๋งŒ์•ฝ ์˜คํผ๋žœ๋“œ๊ฐ€ ์Œ์ˆ˜, ๊ฐ€๋ น -3์ด์˜€๋‹ค๋ฉด CPU๋Š” ์ฝ์–ด ๋“ค์ด๊ธฐ๋กœ ํ•œ ๋ช…๋ น์–ด๋กœ๋ถ€ํ„ฐ โ€˜์„ธ ๋ฒˆ์งธ ์ด์ „โ€™ ๋ฒˆ์ง€๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
        • ํ•œ๋งˆ๋””๋กœ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ช…๋ น์–ด์˜ ์„ธ ์นธ ์ด์ „ ๋ฒˆ์ง€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ง€์š”

๋ฐ˜๋ฉด, ์˜คํผ๋žœ๋“œ๊ฐ€ ์–‘์ˆ˜, ๊ฐ€์—ด 3์ด์—ˆ๋‹ค๋ฉด CPU๋Š” ์ฝ์–ด ๋“ค์ด๊ธฐ๋กœ ํ–ˆ๋˜ ๋ช…๋ น์–ด์˜ โ€˜์„ธ ๋ฒˆ์งธ ์ดํ›„โ€™ ๋ฒˆ์ง€๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

  • ์ฆ‰, ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ช…๋ น์–ด์—์„œ ์„ธ ์นธ ๊ฑด๋„ˆ๋›ด ๋ฒˆ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค.

์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ if๋ฌธ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ถ„๊ธฐํ•˜์—ฌ ํŠน์ • ์ฃผ์†Œ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹

  • ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹(base-register addressing mode) : ์˜คํผ๋žœ๋“œ์™€ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ๋”ํ•˜์—ฌ ์œ ํšจ ์ฃผ์†Œ๋ฅผ ์–ป๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ๋Š” โ€˜๊ธฐ์ค€ ์ฃผ์†Œโ€™, ์˜คํผ๋žœ๋“œ๋Š” โ€˜๊ธฐ์ค€ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌโ€™๋กœ์„œ์˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฆ‰, ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์ฃผ์†Œ ์ง€์ • ๋ฐฉ์‹์€ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ ์† ๊ธฐ์ค€ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š” ์ฃผ์†Œ์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์—ฐ์‚ฐํ•˜์—ฌ ์œ ํšจ ์ฃผ์†Œ๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๊ฐ€๋ น ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์— 200์ด๋ผ๋Š” ๊ฐ’์ด ์žˆ๊ณ  ์˜คํผ๋žœ๋“œ๊ฐ€ 40์ด๋ผ๋ฉด ์ด๋Š” โ€œ๊ธฐ์ค€ ์ฃผ์†Œ 200๋ฒˆ์ง€๋กœ๋ถ€ํ„ฐ 40๋งŒํผ ๋–จ์–ด์ง„ 240๋ฒˆ์ง€๋กœ ์ ‘๊ทผํ•˜๋ผโ€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์— 550์ด๋ผ๋Š” ๊ฐ’์ด ๋‹ด๊ฒจ ์žˆ๊ณ  ์˜คํผ๋žœ๋“œ๊ฐ€ 50์ด๋ผ๋ฉด ์ด๋Š” โ€œ๊ธฐ์ค€ ์ฃผ์†Œ 550๋ฒˆ์ง€๋กœ๋ถ€ํ„ฐ 50๋งŒํผ ๋–จ์–ด์ง„ 600๋ฒˆ์ง€๋กœ ์ ‘๊ทผํ•˜๋ผโ€๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค.

ํ‚ค์›Œ๋“œ๋กœ ์ •๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํฌ์ธํŠธ

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ, ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ•ด์„ํ•  ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ, ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ์ฃผ๊ณ ๋ฐ›์„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์™€ ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•˜๊ณ , ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ํ˜น์€ CPU ์ƒํƒœ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํƒ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ ์ตœ์ƒ๋‹จ์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ์ฃผ์†Œ๋Š” ๊ธฐ์ค€ ์ฃผ์†Œ๋กœ์„œ์˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋” ์•Œ์•„๋ณด๊ธฐ

  • Jump
    • Jump ๋ช…๋ น์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๋Š๊ณ  ์ง€์ •๋œ ์ฃผ์†Œ๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • Conditional Jump
    • Conditional Jump ๋ช…๋ น์–ด๋Š” ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ์—๋งŒ ์ฃผ์–ด์ง„ ์ฃผ์†Œ๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • Call
    • Call ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์ง€์ •๋œ ์ฃผ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    • ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์Šคํƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์ฃผ๋กœ ์„œ๋ธŒ๋ฃจํ‹ด(ํ•˜์œ„ ๋ฃจํ‹ด ๋˜๋Š” ํ•จ์ˆ˜)์„ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Return
    • Return ๋ช…๋ น์–ด๋Š” ์„œ๋ธŒ๋ฃจํ‹ด์—์„œ ํ˜ธ์ถœ์ž๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค.
    • ํ˜ธ์ถœ๋œ ์„œ๋ธŒ๋ฃจํ‹ด์ด ์‹คํ–‰์„ ๋งˆ์น˜๊ณ  ํ˜ธ์ถœ์ž๋กœ ๋Œ์•„๊ฐˆ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.