MIPS Instruction Format & Addressing Modes

David8·2022년 9월 29일
0

컴퓨터구조

목록 보기
12/18
post-thumbnail

format(Machine Language Structure)

  1. format
    1. r format: 가장 기본 포맷, 대부분이 r 포맷임
      1. rs, rt, rd 5bit인 이유: 레지스터 개수가 32(어느 레지스터에 넣을지 결정)
      2. shamt 5bit: 레지스터 1개 32bit(몇 칸 이동할지 적어주는 역할)
    2. i format: 상수값 사용을 위한 포맷, 상수와 인덱스를 나타내기 위해 16bit 할당
      1. 종류

        1. a/l: addi
        2. branch: beq, bne
          1. lw, sw는 상수 byte 그대로 이동 --> 몇칸 떨어져 있는지 인덱스이므로 4byte단위가 아니라 1byte 단위임
          2. beq, bne는 명령어 주소를 찾아가므로 --> 현재 위치로부터 찾아가는 것이 명령어 위치이므로 4byte단위임 ==> offset * 4를 한 값이 떨어진 위치임, 이를 통해 나타낼 수 있는 범위가 더 커짐
        3. data: lw, sw

    3. j format: jump address를 위해 16bit 이상 필요
      1. 종류
        1. jal, j
      2. j는 adress는 절대주소, i는 Offset을 표현한 상대주소임
    4. 요약

stored program

  1. 절차
    1. fetch & 레지스터에 넣음(instruction register)
    2. excute
    3. next instruction fetch
  2. 16bit 이상 상수
    1. LUI(load upper immediate): 앞쪽 16bit는 주어진 bit값으로 채우고, 뒤쪽 16bit는 0으로 채움
      1. 뒤쪽 bit는 andi, ori를 사용해서 채움
      2. 상수값은 16bit까지 밖에 수용을 못하므로 그 이상의 bit일 경우 lui 사용
  3. pseudo code
    1. 어셈블리 명령어가 결합된 형태 --> 의미가 직관적
    2. 컴퓨터내 작업 수행시 변환 필요
    3. ex) MOVE, BLT, BGT, BGE
      1. la: label의 주소값 레지스터에 할당
      2. li: 상수값 레지스터에 할당
      3. move: 레지스터간 데이터 이동
  4. mips addressing mode

0개의 댓글