์ด์ ์ ๋์ ์ฐ์ฐ์ ์ด๋ป๊ฒ ํ๋์ง๋ ์์๋ณด์๋ค. add \$t0, \$s1, \$s2๋ฅผ ์ ๋ ฅํ๋ฉด ์ด์ ๋ธ๋ฌ๊ฐ 02324020์ ๋จธ์ ์ฝ๋๋ก ๋ฐ๊ฟ(์ ์ฐจ ์์ธํ) CPU์๊ฒ ๋ช ๋ นํ๋ฉด ๋ ์ง์คํฐ์ \$s1, \$s2๋ฅผ ๋ง์ ํ์ฌ \$t0๊ฐ ์๋ ๋ ์ง์คํฐ์ ์ ์ฅ์ด ์ด๋ฃจ์ด์ง๋ค.
๋ ผ๋ฆฌ ์ฐ์ฐ
๋ ผ๋ฆฌ์ฐ์ฐ๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค. sll(shift left logical), srl(shift right logical)์ ์ฌ์ฉํ๋ฉฐ, op์ funct์ ๊ฐ์ ์ฐ์ฐ์ ํด๋นํ๋ ๊ฐ๋ค์ ์ฐพ์ ์จ์ฃผ๋ฉด๋๋ค. ์ด๋์ฐ์ฐ์ ๋์์ด ํ๋์ด๋ฏ๋ก, rs๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. shamt(shift amount)์ ๊ฐ์ ์ผ๋ง๋ shiftํ ๊ฒ์ธ์ง ์ ํด์ฃผ๋ฉด ๋ ๊ฒ์ด๋ค. 'sll \$t2, \$s0, 4'๋ \$s0์ ๊ฐ์ 4์นธ ์ผ์ชฝ์ผ๋ก shiftํ ๊ฒฐ๊ณผ๋ฅผ t2์ ์ ์ฅํ๋ผ๋ ์๋ฏธ์ด๋ค. ๋ค๋ฅธ ์ฐ์ฐ์๋ค์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ณด์.
- sll, slr : ์ํํธ ์ฐ์ฐ
- and, or : ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๊ทธ and/or ๋ง๋ค.
- nor : not์ด ์์ผ๋ฏ๋ก, ๋์ 'nor \$ใ , \$ใ , \$zero'๋ฅผ ์ฌ์ฉํ๋ค.
์กฐ๊ธ ๋ค๋ฅธ ํ์ ์ ๋ช ๋ น์ด๋ก ์กฐ๊ฑด๋ฌธ๋ ์๋ค
- beq rs, rt, L1 : if(rs==rt) {branch to instruction labeled L1;}
- bne rs, rt, L1 : if(rs!=rt) {branch to instruction labeled L1;}
- j L1 : jump to instruction labeled L1;
<C์ธ์ด ์ฝ๋>
while (save[i] == k)
i += 1;
<MIPS ์ฝ๋>
# i, k๋ $s3, $s5์ ๋ก๋ ๋์ด์๊ณ , save์ ์ฃผ์๊ฐ $s6์ ์ ์ฅ๋จ
Loop: sll $t1, $s3, 2 # t1 = i * 4
add $t1, $t1, $s6 # t1 = save์ ์ฃผ์๊ฐ + i*4
lw $t0, 0($t1) # t0 = t1์ value
bne $t0, $s5, Exit # if (t0 == k) break;
addi $s3, $s3, 1 # i = i+1
j Loop # go to Loop:
Exit: ...
'๐ป > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] ์ ์ก ๊ณ์ธต (Transport Layer) (1) | 2020.10.26 |
---|---|
[์๋ฒ ๋๋] MIPS ๊ณฑ์ , ๋๋์ , ๋ถ๋์์์ (0) | 2020.10.22 |
[์๋ฒ ๋๋] MIPS ๋ช ๋ น์ฒด๊ณ (0) | 2020.10.22 |
[์๋ฒ ๋๋] ์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ? (0) | 2020.10.21 |
[๋คํธ์ํฌ] ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต (Application Layer) (0) | 2020.10.20 |