์ด์
๋ธ๋ฆฌ ์ธ์ด์์ **๋ผ๋ฒจ(label)**์ ํ๋ก๊ทธ๋จ์ ํน์ ์์น๋ฅผ ๋ํ๋ด๋ ์ด๋ฆ์
๋๋ค. ๋ผ๋ฒจ์ ์ฃผ๋ก ์ ํ ๋ช
๋ น์ด(JAL
, JALR
, BEQ
, BNE
๋ฑ)์์ ๋ชฉ์ ์ง๋ก ์ฌ์ฉ๋์ด, ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ์ฝ๊ฒ ์ ์ดํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ผ๋ฒจ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋น ์์น์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ํ ๊ธฐํธ์ ์ฐธ์กฐ ์ญํ ์ ํฉ๋๋ค.
:
)์ผ๋ก ๋๋ฉ๋๋ค.ํ์:
label_name:
๋ช
๋ น์ด
start:
ADD x1, x0, x0 // x1 = 0
ADD x2, x0, x0 // x2 = 0
loop:
ADDI x1, x1, 1 // x1 = x1 + 1
ADDI x2, x2, 2 // x2 = x2 + 2
BEQ x1, x3, end // x1์ด x3๊ณผ ๊ฐ์ผ๋ฉด end๋ก ๋ถ๊ธฐ
JAL x0, loop // loop๋ก ์ ํ
end:
NOP // ์๋ฌด ๋์๋ ํ์ง ์์
start
, loop
, end
๋ ๋ผ๋ฒจ์
๋๋ค.BEQ
๋ช
๋ น์ด๋ ์กฐ๊ฑด์ด ๋ง์กฑ๋๋ฉด end
๋ผ๋ ๋ผ๋ฒจ๋ก ๋ถ๊ธฐํ๊ณ , JAL
๋ช
๋ น์ด๋ loop
๋ผ๋ฒจ๋ก ์ ํํ์ฌ ๋ฃจํ๋ฅผ ๋ง๋ญ๋๋ค..data
array:
.word 10, 20, 30, 40 // array ๋ผ๋ฒจ์ด ๋ฐ์ดํฐ ์์ ์์น๋ฅผ ๊ฐ๋ฆฌํด
.text
LA x1, array // array์ ์ฃผ์๋ฅผ x1 ๋ ์ง์คํฐ์ ๋ก๋
array
๋ผ๋ฒจ์ ๋ฐ์ดํฐ ์น์
์์ ๋ฐฐ์ด์ ์์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๊ณ , ์ด๋ฅผ ์ฐธ์กฐํด x1
๋ ์ง์คํฐ์ ๋ฐฐ์ด์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค.