1. 연산의 결과 (6)를 확인하기 위해 수행해야하는 명령어는?
2. mult $t0 t1
를 2진수로 표현하라(단, fucnt 값은 24)
3. mflo $t2
을 2진수로 표현하라(단, funct 값은 18)
Example
.text
.globl main
main:
addi $t0, $0, 7
addi $t1, $0, 2
div $t0, $t1
mflo $t2
mfhi $t3
4. $t2
에 저장된 값은?
5. $t3
에 저장된 값은?
6. add $t0, $s1, $s2를 2진수로 표현하시오. (단, funct값은 32)
7. 다음 2진수를 어셈블리로 바꾸시오. 000000 00100 00101 00110 00000 100010(sub)
8. sll $10, $16, 4를 2진수로 표현하시오.(단, funct 값은 0)
9. ori $11, $9, 0x8000을 2진수로 표현하시오. (단, op 값은 13)
10. andi $12, $0, 0xffff를 2진수로 표현하시오.(단, op값은 12)
11. addi $13, $0, -1을 2진수로 표현하시오.(단, op값은 8)
addi $t1, $0, 0x8000
12. out-of-range error가 발생하는가 True/False로 대답하시오.
13. SPIM에 load되는 명령어를 쓰시오
ori $t1, $0, -32768
14. out-of-range error가 발생하는지 True/False로 대답하시오
15. SPIM에 load되는 명령어를 쓰시오.
addiu $t1, $0, 32768
16. out-of-range error가 발생하는지 True/False로 대답하시오
17. $t1
레지스터의 값이 0x12345678
일 때, lui $t1 0x5678
을 수행한 결과를 쓰시오.
17-2) lui $t0 0xffff
를 2진수로 표현하시오. (op 값은 15)❌
18. sw $4, 8($5)을 2진수로 변환하라.(단 op 값은 43) ❌
19. 0x8ca60008을 disassemble 한 명령어를 적어라.
int g,h,A[100];
g = h + A[8];
- g in $s1, h in $s2, base address of A in $s3
20. 위 코드를 어셈블리로 나타내라
21. jr $t1
을 2진수로 나타내라.(단, funct 값은 8이다) ❌
.text 0x00400024
.globl main
main:
nop
j main
22. j main
을 2진수로 변환하라. (단, op 값은 2)
bne $3, $4, Else # 0x00400038
add $s0, $s1, $s2
j Exit
Else: sub $s0, $s1, $s2
Exit: add $s0, $s0, $s0
23. bne $3, $4, Else
를 2진수로 변환하라.(단, op값은 5이다)
24. beq
, bne
명령어의 offset
필드를 계산할 때 표현가능한 범위는 -32768~32767이다.
25. 다음의 코드를 assembly로 변환하라.(단, i in $s3, k in $s5, address of arr in $s6, arr is int array)
i = 1;
while (arr[i]==k) ++i;
26. Syscall을 이용하여 10을 출력하시오.
27. 다음 표를 완성하시오
Signal name | deasserted | asserted |
---|---|---|
RegDst | ||
RegWrite | ||
ALUSrc | ||
PCSrc | ||
MemRead | ||
MemWrite | ||
MemtoReg |
28. 다음 표를 완성하시오
opcdoe | ALUOp |
---|---|
lw | |
sw | |
beq | |
R-type |
29. 다음 표를 완성하시오
ALU function | ALU control |
---|---|
add | |
sub | |
and | |
or | |
slt |
30. 빈 칸을 채우시오
31. 빈 칸을 채우시오
* 32. 빈 칸을 채우시오.*
33. 철수가 clock cycle을 정하기 위해 기준으로 해야하는 명령어는?
34. 다음 표를 완성하시오