기계어로 표현할 때는 어셈블러와 달리 destination이 나중에 온다.
R-format 으로 변환하면 다음과 같다.
0x00853022를 disassemble 하시오.
1. 2진수로 변환
-> 0000 0000 1000 0101 0011 0000 0010 0010
2. R-format으로 끊기
-> 0000 00/00 100/0 0101/ 0011 0/000 00/10 0010
-> 000000(op=R-format) 00100(rs) 00101(rt) 00110(rd) 00000(shamt) 100010(funct)
3. 분석
-> R-format / $4 / $5 / $6 / - / sub
-> sub $6, $4, $5
shamt (shift amount field) 에 4를 넣는다.
spim에서 확인해보자!
00105100 이라고 메모리에 써있는 것을 disassemble 해서 보여준 것이 sll $10, $16, 4 이다.