addressing modes - isa

David8·2022년 9월 8일
0

컴퓨터구조

목록 보기
6/18

기본

  1. 정의: operand가 놓인 장소를 어떻게 찾을 것인가
  2. 장점
    1. 유저에게 프로그램 다양성을 제공
    2. 명령 비트 수를 줄여줌
  3. 용어
    1. E.A.(effective address)
      1. 실제 데이터가 존재하는 주소

종류

  1. implied mode
    1. 특정한 주소 없음
    2. ex) push a, add a
  2. immediate mode
    1. 실제 operand 값
    2. ex) addi, andi
  3. register mode
    1. 레지스터 선택
    2. add $t0, $t1, $s1
    3. ex) add, mul, slt, sll
  4. register indirect mode
    1. 레지스터가 operand 주소 가지고 있음
  5. direct address
    1. operand의 e.a. 가지고 있음
    2. resgister addressing mode vs direct addressing mode
      1. 레지스터 빠름(direct는 메모리에서 값을 가져와야 되므로 더 오래 걸림)
      2. addressing space of memory가 레지스터보다 큼
    3. ex) j, jal
  6. indirect address
    1. e.a.를 가지는 주소를 가지고 있음
    2. 장점: 접근 메모리가 더 넓어 질 수 있음
    3. 단점: 메모리 두번 참조 -> 느림
  7. (pc) relative address
    1. e.a. = pc + 값(offset)
      1. beq, bne를 통해 명령어를 수행하므로 4byte단위이고 offset * 4를 해줌 --> 더 많은 범위 나타낼 수 있음
    2. 상대적인 주소임
    3. ex)beq, bne
  8. indexed address
    1. e.a. = base address + index register
    2. 배열에서 index로 주로 사용, base(고정)+index(가변)로 배열 값 접근
  9. base register address
    1. e.a. = register + 값(offset)
    2. ex) sw, lw
  10. immediate, base register는 메모리 거치지 않음
    1. indirect가 메모리를 2번 걸쳐 시간이 가장 오래 걸림

0개의 댓글