오래 못 할 짓 하지 않기

[ 컴퓨터 구조 ] 문제 풀기 본문

2학년 2학기/컴퓨터 구조

[ 컴퓨터 구조 ] 문제 풀기

쫑알bot 2023. 10. 5. 14:15
728x90

1

a) add R3, R2, R1    이 명령어를 수행한 이후에 각 레지스터에 어떤 값이 있는가?

→ R3에 R2+R1값을 넣는 것이다. 즉, R3외에는 변하는 값이 없음.

R1 = 12 , R2 = 16 , R3 = 12+16 = 26

 

 

b) load R3 , 12(R1)   이 명령어 수행 후에 R1과 R3 레지스터에는 어떤 값이 있는가?

→ R3 에 ( R1의 값 + 12 ) 주소에 있는 값을 넣어주는 것이므로 R3만 변한다.

R1 = 12 , 12 +12 = 24 , 메모리에서 24 주소에 있는 값은 28.

 

 

c) addi R2 , R3 , #16  이 명령어 수행 후에 레지스터에는 어떤 값이 있겠는가?

→  R2 에 , R3의 값 +16을 넣는 것이다.

R2 = R3 +16 = 20 +16 = 36 

 

 


 

Stored program

: 컴퓨터에는 프로세서와 메모리가 있고, 메모리에는 Instruction과 Data가 이진수 형태로 저장되어있다.

 

그 메모리에 저장되어 있는 Instruction을 프로세서에서 fetch하여 가져온 뒤 해석하여 실행하는 것을 Stored program이라고 한다.

(폰노이만이 개발함)

 

 


1) Instruction 을 fetch하는데 몇 번 메모리에 접근했는가?

Instruction은 4개이므로 4번.

 

2) 데이터를 read/write하기위해 메모리에 접근한 횟수는?

데이터를 Load(read)하는 lw 1번

데이터를 Store(write)하는 sw 1번

 

 


 

lw $t0, 16($s7) // $t0=B[4]

addi $t0,$t0,1   // $t0=B[4]+1

sll $t0, $t0 , 2  //  $t0= (B[4]+1)*4    → A에 넣으려면 B[4]+1이 만약 6이면, word단위로 array를 index해야하기 때문에 

                            6*4 를 해주어야 A[6]으로 갈 수 있다.

add $t0, $t0, $s6 //  // $t1=&A[B[4]+1]

lw $t1, 0($t0)    // $t1=A[B[4]+1]

add $s0 , $s1 , $t1

 

 

 


 

 

 

num = num / n1

t3 = num%n1

if( num%n1 ==0 ){

   num = num /n2

   t3 = num%n2

   if( num%n2 ==0 ){

   res = 1

   done();

else{

res = 0 

}

done();

 

 

(출처)

한동대학교 용환기교수님 - 컴퓨터구조