본문 바로가기
소프트웨어/컴퓨터 구조(MIPS)

[MIPS] MIPS programming 기본

by Ruas 2021. 10. 19.
728x90

 

 

opcode

 

  • Artithmetic Instructions

    opcode 사용 방법 의미
    add add $s1, $t0, $t1 $s1 = $t0 + $t1
    addi addi $s1, $t0, Int $s1 = $t0 + Int
    sub sub $s1, $t0, $t1 $s1 = $t0 - $t1
    mul mul $s1, $t0, $t1 $s1 = $t0 * $t1
    mult mult $t0, $t1 Lo, Hi = $t0 * $t1
    div div $s1, $t0, $t1 $s1 = $t0 / $t1
    mflo mflo $s1 $s1 = Lo (나눗셈의 몫)
    mfhi mfhi $s1 $s1 = Hi (나눗셈의 나머지)
  • Data Transfer Instructions

    opcode 사용 방법 의미
    lw lw $t1, A 레지스터 $t1에 메모리 A의 데이터를 Load
    li li $a0, 10 레지스터 $a0에 10 Load
    la la $a0, A 레지스터 $a0에 A의 주소 Load
    sw sw $v0, A 레지스터 A에 레지스터 $v0의 값을 Store
     
  • Logic Instructions

    opcode 사용 방법 의미
    beq beq $t0, $t1, fucn $t0 == $t1 이라면 fucn 으로 이동
    bne bne $t0, $t1, fucn $t0 != $t1 이라면 fucn 으로 이동
    slt slt $s0, $t0, $t1 $t0 < $t1 이라면 $s0 = 1
    $t0 > $t1 이라면 $s0 = 0
    slti slti $s0, $t0, n $t0 < n 이라면 $s0 = 1
    $t0 > n 이라면 $s0 = 0
  • Registers

    Register Name Use
    $0 $zero  
    $1 $at  
    $2 ~ $3 $v0 ~ $v1 함수에서 return된 값을 저장
    $4 ~ $7 $a0 ~ $a3 함수 인수 저장
    $8 ~ $15 $t0 ~ $t7 임시로 데이터 저장
    $16 ~ $23 $s0 ~ $s7 오랫동안 유지되는 값 저장
    $24 ~ $25 $t8 ~ $t9 임시로 데이터 저장
    $26 ~ $27 $k0 ~ $k1  
    $28 $gq Global pointer
    $29 $sp Stack pointer
    $30 $fp Frame pointer
    $31 $ra return pointer
     
  • system call (syscall)

    system call numebr function
    1 print int
    2 print float
    3 print double
    4 print string
    5 read int
    6 read float
    7 read double
    8 read string
    9 sbrk
    10 exit

 

 

참고문헌

- 컴퓨터 아키텍쳐 (한빛아카데미)

728x90

댓글