메모리에는 16진수로 저장 되는데, 이때에 메모리 한칸은 1byte = 8bit 이며 이가 표현 가능한 숫자의 수는 2^8이다. 이때에 2^8 = 16^2 와 같다 따라서 이는 16진수 두자리와 같다. 그리고 spim에 나타낼 때에는 4byte, word 단위로 나타낸다.
위의 명령어는 $4 레지스터의 값을 $5 + 8의 주소에 저장한다.
또한 위는 i format 으로 나타내는데, 더해지는 상수값을 16bit에 저장한다.
mips assembler feature
assembler diretives는 어셈블러 명령으로 자주 쓰는 .data / .text / .byte / .word 이다.
.data 는 data segment의 시작을 알린다.
.text는 text segment의 시작을 알린다.
.byte는 byte 단위로 저장된다.
.ascii 는 문자열을 문자 단위, byte 단위로 저장합니다.
.asciiz 는 .ascii 와 같고 마지막에 \0 까지 저장합니다.
한편, 바이트 저장순서로는 little endien, big endien 방식이 있다.
little endien은 바이트를 저장할 때에 4바이트 마다 거꾸로 저장하는 방식이다.
big endien의 경우로는 그냥 차례대로 저장하는 방식이다.
따라서 little endien 의 경우에 word 단위로 저장 할때에는 우리가 보기에 순방향, 주소상으로는 역으로 저장 되고 byte로 저장 되면 주소 순서대로 들어가게 된다.
이때에 spim에서 옆에 word 단위로 보여줄 때에는 메모리 순서대로 정렬해서 보여주지만 lw를 해서 load를 할경우에는 그냥 왼쪽에서 오른쪽으로 load 해 온다.
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 (07) (0) | 2022.09.29 |
---|---|
컴퓨터 구조(06) (1) | 2022.09.23 |
컴퓨터 구조 (04) (0) | 2022.09.16 |
컴퓨터 구조 (03) (1) | 2022.09.16 |
컴퓨터 구조 (02) (0) | 2022.09.14 |