๐ง ๋๋์
๋๋์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ํตํด ๊ณ์ฐ๋ฉ๋๋ค.
๋๋์ ์ ํผ์ฐ์ฐ์๋ ํผ์ ์(dividend)์ ์ ์(divisor) ๋ ๊ฐ์ด๋ฉฐ,
๋ชซ(quotient) ๊ณผ ๋๋จธ์ง(remaunder) ๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๋๋จธ์ง๋ ์ ์๋ณด๋ค ์์ต๋๋ค.
๋ชซ์ ๋ฌด์ํ๊ณ ๋๋จธ์ง๋ง์ ๊ตฌํ๊ธฐ ์ํด ๋๋์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ข ์ข ์์ต๋๋ค.
๐ง ๋๋์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ ์์ด๋์ด
๋ชซ ๋ ์ง์คํฐ 64๋นํธ๋ฅผ 0์ผ๋ก ์ด๊ธฐํ์ํค๊ณ ์์ํฉ๋๋ค.
๋๋์ ์๊ณ ๋ฆฌ์ฆ์ ๋งค๋ฒ ๋ฐ๋ณตํ ๋๋ง๋ค ์ ์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ๋นํธ์ฉ ์๋ฆฌ์ด๋ํด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ์ ์๋ฅผ 128๋นํธ ์ ์ ๋ ์ง์คํฐ์ ์ผ์ชฝ ์ ๋ฐ์ ๋ฃ๊ณ ์์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํผ์ ์์ ์๋ฆฌ๋ฅผ ๋ง์ถ๊ธฐ ์ํด ๋ฐ๋ณตํ ๋๋ง๋ค ์ค๋ฅธ์ชฝ์ผ๋ก ํ ๋นํธ์ฉ ์๋ฆฌ์ด๋ํฉ๋๋ค.
๋๋จธ์ง(remainder) ๋ ์ง์คํฐ๋ ํผ์ ์๋ก ์ด๊ธฐํํฉ๋๋ค.
๋ํ ์ปดํจํฐ๋ ๋ ์ ์ค ์ด๋ ์๊ฐ ์์์ง ํ๋ฒ์ ๋ณด๊ณ ํ๋จํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋จผ์ ํผ์ ์์์ ์ ์๋ฅผ ๋นผ์ค์ผ๋ก์จ ํ๋จํ๋๋ฐ, ์ด๋ ํผ์ ์๋ ๋๋จธ์ง ๋ ์ง์คํฐ์ ๋ด๊ฒจ์์ต๋๋ค.
๋ง์ฝ ์ด ๊ฒฐ๊ณผ๊ฐ ์์์ด๋ฉด ์ ์๋ ํผ์ ์์ ๊ฐ๊ฑฐ๋ ๋ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ชซ์ LSB์ 1์ ์ถ๊ฐํฉ๋๋ค.(๊ธฐ์กด ๋ชซ์ ์ผ์ชฝ์ผ๋ก Shift ํ LSB์ 1 ์ถ๊ฐ)
๋ง์ฝ ๊ฒฐ๊ณผ๊ฐ ์์๋ผ๋ฉด ์ ์๋ฅผ ๋๋จธ์ง ๋ ์ง์คํฐ์ ๋ค์ ๋ํจ์ผ๋ก์จ ์๋์ ๊ฐ์ ํ๋ณตํ๋ฉฐ, ๋ชซ์์๋ 0์ ๋ฃ์ต๋๋ค.
์ ์๊ณ ๋ฆฌ์ฆ์ ๋ ผ๋ฆฌ๋์ ๋๋ค.
์๋๋ ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ๋ ผ๋ฆฌํ๋ก์ ๋๋ค.
โญ๏ธ ์์
๊ฐ๋จํ ๋๋์ $0111 / 0010 $ ์์๋ฅผ ํตํด ๊ณผ์ ์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฐ๋ณต | ๋จ๊ณ | ๋ชซ | ์ ์ | ๋๋จธ์ง |
0 | ์ด๊ธฐ๊ฐ([๋๋จธ์ง] = [ํผ์ ์]) | 0000 | 0010 0000 | 0000 0111 |
1 | [๋๋จธ์ง] - [์ ์] ์ํ | 0000 | 0010 0000 | 1110 0111 |
[๋๋จธ์ง] - [์ ์] ๊ฐ [์์]์ด๋ฏ๋ก [๋๋จธ์ง] + [์ ์]๋ฅผ ํตํ [๋๋จธ์ง] ๋ณต๊ตฌ ์ดํ [๋ชซ]์ [์ผ์ชฝ]์ผ๋ก 1์นธ Shift ์ดํ [LSB]์ [0] ์ถ๊ฐ. |
0000 | 0010 0000 | 0000 0111 | |
[์ ์]๋ฅผ [์ค๋ฅธ์ชฝ]์ผ๋ก 1์นธ Shift | 0000 | 0001 0000 | 0000 0111 | |
2 | [๋๋จธ์ง] - [์ ์] ์ํ | 0000 | 0001 0000 | 0000 0011 |
[๋๋จธ์ง] - [์ ์] ๊ฐ [์์]์ด๋ฏ๋ก [๋๋จธ์ง] + [์ ์]๋ฅผ ํตํ [๋๋จธ์ง] ๋ณต๊ตฌ ์ดํ [๋ชซ]์ [์ผ์ชฝ]์ผ๋ก 1์นธ Shift ์ดํ [LSB]์ [0] ์ถ๊ฐ. |
0000 | 0001 0000 | 0000 0111 | |
[์ ์]๋ฅผ [์ค๋ฅธ์ชฝ]์ผ๋ก 1์นธ Shift | 0000 | 0000 1000 | 0000 0111 | |
3 | [๋๋จธ์ง] - [์ ์] ์ํ | 0000 | 0000 1000 | 1111 1111 |
[๋๋จธ์ง] - [์ ์] ๊ฐ [์์]์ด๋ฏ๋ก [๋๋จธ์ง] + [์ ์]๋ฅผ ํตํ [๋๋จธ์ง] ๋ณต๊ตฌ ์ดํ [๋ชซ]์ [์ผ์ชฝ]์ผ๋ก 1์นธ Shift ์ดํ [LSB]์ [0] ์ถ๊ฐ. |
0000 | 0000 1000 | 0000 0111 | |
[์ ์]๋ฅผ [์ค๋ฅธ์ชฝ]์ผ๋ก 1์นธ Shift | 0000 | 0000 0100 | 0000 0111 | |
4 | [๋๋จธ์ง] - [์ ์] ์ํ | 0000 | 0000 0100 | 0000 0011 |
[๋๋จธ์ง] - [์ ์] ๊ฐ [์์]์ด๋ฏ๋ก [๋ชซ]์ [์ผ์ชฝ]์ผ๋ก 1์นธ Shift ์ดํ [LSB]์ [1] ์ถ๊ฐ. |
0001 | 0000 0100 | 0000 0011 | |
[์ ์]๋ฅผ [์ค๋ฅธ์ชฝ]์ผ๋ก 1์นธ Shift | 0001 | 0000 0010 | 0000 0011 | |
5 | [๋๋จธ์ง] - [์ ์] ์ํ | 0001 | 0000 0010 | 0000 0001 |
[๋๋จธ์ง] - [์ ์] ๊ฐ [์์]์ด๋ฏ๋ก [๋ชซ]์ [์ผ์ชฝ]์ผ๋ก 1์นธ Shift ์ดํ [LSB]์ [1] ์ถ๊ฐ. |
0011 | 0000 0010 | 0000 0001 | |
[์ ์]๋ฅผ [์ค๋ฅธ์ชฝ]์ผ๋ก 1์นธ Shift | 0011 | 0000 0001 | 0000 0001 |
๐ง ๋๋์ ์ธ์คํธ๋ญ์
div(divide),
rem(remainder),
divu(diveded unsigned),
remu(remainder unsigned) ์ ๋ค ๊ฐ์ง ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํธ์๋, ๋๋ ๋ถํธ์๋ 64๋นํธ ๋๋์ ์ ๋ชซ ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํฉ๋๋ค.
'๐ฅ Computer Science > ์ปดํจํฐ ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ ๊ตฌ์กฐ] ํ๋ก์ธ์[0] - ๋ฐ์ดํฐํจ์ค ๊ตฌํ (0) | 2022.11.08 |
---|---|
[์ปดํจํฐ ๊ตฌ์กฐ] ์ปดํจํฐ ์ฐ์ฐ[4] - ๋ถ๋์์์ ์ฐ์ฐ (0) | 2022.10.25 |
[์ปดํจํฐ ๊ตฌ์กฐ] ์ปดํจํฐ ์ฐ์ฐ[2] - ๊ณฑ์ (0) | 2022.10.25 |
[์ปดํจํฐ ๊ตฌ์กฐ] ์ปดํจํฐ ์ฐ์ฐ[1] - ๋ง์ ๊ณผ ๋บ์ (0) | 2022.10.25 |
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ช ๋ น์ด(Instruction)[7] - ํฐ ์์น ํผ์ฐ์ฐ์(32๋นํธ) (0) | 2022.10.13 |