๋ ์ง์คํฐ.
- ํ๋ก๊ทธ๋จ ์ ๋ช
๋ น์ด์ ๋ฐ์ดํฐ๋ ์คํ ์ ํ๋ก ๋ฐ๋์ ๋ ์ง์คํฐ์ ์ ์ฅ๋ฉ๋๋ค.
- ๋ฐ๋ผ์ ๋ ์ง์คํฐ์ ์ ์ฅ๋ ๊ฐ๋ง ์ ๊ด์ฐฐํด๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ ํ์
ํ ์ ์์ต๋๋ค
- ๋ค์ ๋งํด ๋ ์ง์คํฐ ์ ๊ฐ์ ์ ์ฌํ ๊ด์ฐฐํ๋ฉด ํ๋ก๊ทธ๋จ์ ์คํํ ๋ CPU ๋ด์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋์ง, ์ด๋ค ๋ช ๋ น์ด๊ฐ ์ด๋ป๊ฒ ์ํ๋๋์ง ์ ์ ์์ต๋๋ค.
- ๋ฐ๋ผ์ ๋ ์ง์คํฐ์ ์ ์ฅ๋ ๊ฐ๋ง ์ ๊ด์ฐฐํด๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ ํ์
ํ ์ ์์ต๋๋ค
๋ฐ๋์ ์์์ผ ํ ๋ ์ง์คํฐ.
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ
- ๋ช ๋ น์ด ๋ ์ง์คํฐ
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ
- ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ
- ํ๋์ค ๋ ์ง์คํฐ
- ๋ฒ์ฉ ๋ ์ง์คํฐ
- ์คํ ํฌ์ธํฐ
- ๋ฒ ์ด์ค ๋ ์ง์คํฐ
ํ๋ก๊ทธ๋จ ์นด์ดํฐ.
-
ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC: Program Counter) : ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ธ์ฌ ๋ช
๋ น์ด์ ์ฃผ์, ์ฆ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด ๋ค์ผ ๋ช
๋ น์ด์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ฅผ ๋ช ๋ น์ด ํฌ์ธํฐ(IP: Instruction Pointer) ๋ผ๊ณ ๋ถ๋ฅด๋ CPU๋ ์์ต๋๋ค.
๋ช ๋ น์ด ๋ ์ง์คํฐ.
-
๋ช
๋ น์ด ๋ ์ง์คํฐ(IR: Instruction Register) : ํด์ํ ๋ช
๋ น์ด, ์ฆ ๋ฐฉ๊ธ ๋ฉ๋ก๋ฏธ์์ ์ฝ์ด ๋ค์ธ ๋ช
๋ น์ด๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ์
๋๋ค.
- ์ ์ด์ฅ์น๋ ๋ช ๋ น์ด๋ฅผ ๋ ์ง์คํฐ ์ ๋ช ๋ น์ด๋ฅผ ๋ฐ์๋ค์ด๊ณ ์ด๋ฅผ ํด์ํ ๋ค ์ ์ด ์ ํธ๋ฅผ ๋ด๋ณด๋ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ.
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ(MAR: Memory Address Register) : ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ์ ๋๋ค. CPU๊ฐ ์ฝ์ด ๋ค์ด๊ณ ์ ํ๋ ์ฃผ์ ๊ฐ์ ์ฃผ์ ๋ฒ์ค๋ก ๋ณด๋ผ ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ.
-
๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ(MBR: Memory buffer register) : ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ๊ณ ๋ฐ์ ๊ฐ(๋ฐ์ดํฐ์ ๋ช
๋ น์ด)์ ์ ์ฅํ๋ ๋ ์ง์คํฐ์
๋๋ค.
- ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ณ ์ถ์ ๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- CPU๊ฐ ์ฃผ์ ๋ฒ์ค๋ก ๋ด๋ณด๋ผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์น๋ค๋ฉด, ๋ฐ์ดํฐ ๋ฒ์ค๋ก ์ฃผ๊ณ ๋ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๋ ์ง์คํฐ(MDR: Memory Data Register)๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค.
- CPU๊ฐ ์ฃผ์ ๋ฒ์ค๋ก ๋ด๋ณด๋ผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์น๋ค๋ฉด, ๋ฐ์ดํฐ ๋ฒ์ค๋ก ์ฃผ๊ณ ๋ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ณ ์ถ์ ๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ณผ์ ์์ ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ๋ช ๋ น์ด ๋ ์ง์คํฐ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ, ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ์ ์ด๋ค ๊ฐ๋ค์ด ๋ด๊ธฐ๋์ง ์์๋ด ์๋ค.
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๋ ์ฝ์ด ๋ค์ด๊ธฐ๋ก ํ ๋ช
๋ น์ด๋ก๋ถํฐ โ์ธ ๋ฒ์งธ ์ด์ โ ๋ฒ์ง๋ก ์ ๊ทผํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ์๋ ์ฝ์ด ๋ค์ผ ๋ช
๋ น์ด์ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์์ต๋๋ค.
๋ฐ๋ฉด, ์คํผ๋๋๊ฐ ์์, ๊ฐ์ด 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 ๋ช ๋ น์ด๋ ์๋ธ๋ฃจํด์์ ํธ์ถ์๋ก ๋ณต๊ทํฉ๋๋ค.
- ํธ์ถ๋ ์๋ธ๋ฃจํด์ด ์คํ์ ๋ง์น๊ณ ํธ์ถ์๋ก ๋์๊ฐ ๋ ์ฌ์ฉ๋ฉ๋๋ค.