블로그 이미지
progh2
지루한 것에서 벗어나 재미난 것 속으로 풍덩~☆

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Recent Post

Recent Comment

Archive

'컴퓨터구조'에 해당되는 글 1

  1. 2007.03.21 MIPS 어셈블러가 되어봅시다
컴퓨터구조 수업을 듣다보니 MIPS 어셈블러가 되어가고 있습니다. =_=

32개의 레지스터 내역
0 $zero
1 $at [어셈블러 전용]
2~5 $a0~$a3 [프로시져 인수값용]
6~7 $v0~$v1 [프로시져 리턴값용]
8~15 $t0~t7 [임시용 레지스터]
16~23 $s0~s7 [보존되는 임시용 레지스터]

24~25 $t8~$t9 [임시용 레지스터]
26~27 $k0~$k1 [운영체제만 쓸 수 있는 레지스터]
28 $gp [글로벌 레지스터?]
29 $sp [스택 포인터]
30 $fp [프레임 포인터]
31 $ra [프로시져에서 되돌아갈 PC값]

크게 인스트력션은 r 타입, i타입, j타입으로 3종류가 있습니다.
R 타입의 경우 6, 5, 5, 5, 5, 6 bit로 구성되어 있으며 각각
op, rs, rt, rd, shamt, funct 를 나타냅니다.
예를들어 잘 알려진 연산인 add $t0, $s0, $s1의 경우는
0, $s0, $s1, $t0, 0, 32 로 바뀌어
0, 16, 17, 8, 0, 32 가 되고 이를 이진수로 바꾸면
000000 10000 10001 01000 00000 100000 가 됩니다. -_-;

I 타입의 경우는 6, 5, 5, 16 bit로 구성되어있으며 각각
op, rs,rt, address 로 구성됩니다.
잘 알려진 연산인, 메모리에서 레지스터로 값을 자겨오는 lw $t1, 100($s5) 의 경우는
35, $s5, $t1, 100 이 되고

35, 21, 9, 100이 되어 100011 10101 01001 00000 00001 100100 가 됩니다. -_-;;

J 타입의 경우 제가 알기론 j 1개만 있는 것으로 알고 있는데... 6, 26bit로
op, address로 구성되어 있습니다.
특정 주소로 점프~ 하는 j 인스트력션의 예로 j 100 를 본다면
000010 00000 00000 00000 00001 100100 이 됩니다.
posted by progh2
prev 1 next