Label์ด๋ž€?

์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์—์„œ **๋ผ๋ฒจ(label)**์€ ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ • ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ผ๋ฒจ์€ ์ฃผ๋กœ ์ ํ”„ ๋ช…๋ น์–ด(JAL, JALR, BEQ, BNE ๋“ฑ)์—์„œ ๋ชฉ์ ์ง€๋กœ ์‚ฌ์šฉ๋˜์–ด, ํ”„๋กœ๊ทธ๋žจ์˜ ์ œ์–ด ํ๋ฆ„์„ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋ผ๋ฒจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๋‹น ์œ„์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ๊ธฐํ˜ธ์  ์ฐธ์กฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ผ๋ฒจ์˜ ์ฃผ์š” ์—ญํ• :

  1. ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„ ์ œ์–ด:
  2. ๋ฐ์ดํ„ฐ ์ฐธ์กฐ:

๋ผ๋ฒจ์˜ ๋ฌธ๋ฒ•:

ํ˜•์‹:

label_name:
    ๋ช…๋ น์–ด

์˜ˆ์‹œ:

1. ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„ ์ œ์–ด์—์„œ ๋ผ๋ฒจ ์‚ฌ์šฉ

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               // ์•„๋ฌด ๋™์ž‘๋„ ํ•˜์ง€ ์•Š์Œ

2. ๋ฐ์ดํ„ฐ ์ฐธ์กฐ์—์„œ ๋ผ๋ฒจ ์‚ฌ์šฉ

.data
array:
    .word 10, 20, 30, 40    // array ๋ผ๋ฒจ์ด ๋ฐ์ดํ„ฐ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด

.text
    LA x1, array            // array์˜ ์ฃผ์†Œ๋ฅผ x1 ๋ ˆ์ง€์Šคํ„ฐ์— ๋กœ๋“œ

๋ผ๋ฒจ ์‚ฌ์šฉ์˜ ์žฅ์ :