소개글
COMPUTER ORGANIZATION & DESIGN
(the hardware/software interface)
3장 연습문제 풀이
MIPS 소스를 직접 제작하였습니다.
대부분 소스코드 제작입니다.
목차
1. 연습문제 3.2
2. 연습문제 3.10
3. 연습문제 3.17
4. 연습문제 3.19
5. 연습문제 3.22
6. 연습문제 3.23
7. 연습문제 3.27
8. Sorting
9. 고 찰
본문내용
1. 연습문제 3.2 번
- 다음은 배열을 처리해서 중요한 값 두 개를 $v0 와 $v1에 넣는 코드이다. 배열은 5000워드로 구성되어 있으며 색인은 0부터 4999까지이다. 시작 주소는 $a0에, 그 크기는 $a1에 저장되어 있다. 이 코드가 하는 일을 한 문장으로 설명하라. 특히 $v0 와 $v1에 저장되는 값을 밝혀라.
$a0 : &A, $a1 : 4(size)
add $a1, $a1, $a1 # $a1 = 2 * $a1
add $a1, $a1, $a1 # $a1 = 4 * $a1
add $v0, $zero, $zero # $v0 = 0
add $t0, $zero, $zero # $t0 = 0
outer: add $t4, $a0, $t0 # $t4 = &A[0]
lw $t4, $0($t4) # $t4 = A[0]
add $t5, $zero, $zero # $t5 = 0
add $t1, $zero, $zero # $t1 = inner: add $t3, $a0, $t1 # $t3 = &A[0]
lw $t3, 0($t3) # $t3 = A[0]
bne $t3, $t4, skip
addi $t5, $t5, 1 # $t5 = $t5 + 1
skip: addi $t1, $t1, 4 # $t1 = $t1 + 1
bne $t1, $a1, inner
slt $t2, $t5, $v0
bne $t2, $zero, next
add $v0, $t5, $zero # $v0 = $t5
add $v1, $t4, $zero # $v1 = $t4
next: addi $t0, $t0, 4 # $t0 = $t0 + 4
bne $t0, $a1, outer
☞같은 값을 갖는 가장 많은 것의 값과 첫 인덱스를 구한다.
만일, 배열 2,3,5,5,3,2,4,3,7,7,3
v0 : 2 / v1 : 3
v0 : 첫 인덱스 값 / v1 : 같은 값을 갖는 가장 많은 것의 값
참고 자료
없음