WEEK2 Flashcards

1
Q

컴퓨터는 오로지 0과 1만 이해한다 Yes or no ?

A

Yes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

machine language (기계어) 란?

A

명령들을 이진수로 나타낸것

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

mips 에서 하나의 명령은 몇 비트 ?

A

32 bits

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

3 가지 instruction 형식 (format) 은 ?

A

R - Type, I-Type, J-Type

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is R-type ?

A

연산이 사용하는 모든 데이터 값이 레지스터에 있는 것

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

R type 에는 몇 개의 레지스터 operands 가 존재하는 가?

A

3개

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

R type 에 있는 3가지 operands 는 ?

A

rs, rt : source register

rd : destination register

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

R type 포맷을 구성하는 요소들은 ?

A

op : the operation code or opcode
funct : the function (어떤 연산인지)
shamt : the shift amount for shift instruction. shift 연산이 아닌 경우 0
레지스터 operands : rs,rt, rd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

R type 포맷을 각 요소에 할당된 비트갯수와 함께 쓰시오

A

op(6) rs(5) rt(5) rd(5) shamt(5) funct(6)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what is I-type ?

A

즉치값 (immediates ; hard coded values) 과 레지스터의 값으로 연산하는 명령 타입

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

I-type 에서 operands 로 무엇이 사용되는가 ?

A

rs, rt : register operands

imm: immediate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

즉치값으로 올수 있는 수의 범위는 ?

A

16비트의 2의 보수로 표현되므로 범위는 [-2^5, 2^5-1]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

I type 포맷을 구성하는 요소들은 ?

A

op : opcode
rs,rt : register operands
imm : immediate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

i type 포맷을 각 요소에 할당된 비트갯수와 함께 쓰시오

A

op (6) rs (5) rt (5) imm (16)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

R-type 에서 op 값은 항상 무엇으로 정해지는가 ?

A

0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

function ‘add’ 는 r type 필드 값으로 바꾸면 얼마인가?

A

32

17
Q

function ‘sub’ 는 r type 필드 값으로 바꾸면 얼마인가?

A

34

18
Q

add $s0, $s1, $s2
sub $t0, $t3, $t5

를 머신코드로 바꾸면 ?
(hexa 로 나타내시오)

A

0 17 18 16 0 32
0 11 13 8 0 34

  • 맨 앞의 레지스터가 기계어에서는 맨 뒤로 감

000000 10001 10010 10000 00000 100000
-> 0x02328020

000000 01011 01101 01000 00000 100010
-> 0x016D4022

19
Q

assembly 와 기계어에서 source operands 와 Destination operands 사이에 위치적인 차이가 있다. 어떻게 다른가 ?

A

어셈블리에서는 destination operands 가 먼저 source operands 가 나중에 나오지만 기계어에서는 source operands 먼저 destination operands 마지막에 나옴

20
Q

i-type 의 대표적인 연산 3가지와 각각의 opcode 는 ?

A

addi (8), lw(35), sw(43)

21
Q

I type 포맷을 구성하는 요소들은 ?

A

opcode ,

rs,rt,immediate

22
Q

i type 포맷을 각 요소에 할당된 비트갯수와 함께 쓰시오

A

opcode (6) rs(5) rt(5) imm(16)

23
Q

다음 assembly code 를 필드 value 로 변환 하시오

  • addi $s, $s1, 5
  • addi $t0, $s3, -12
A

8(addi) 17(rs;$s1) 16(rt;$s) 5(imm)

8(addi) 19(rs;$s3) 8(rt;$t0) -12 (imm)

  • 뒤의 레지스터가 앞으로옴 !!
24
Q

다음 assembly code 를 기계어 ( hexa) 로 변환하시오.

  • addi $s0, $s1, 5
  • addi $t0, $s3, -12
A
  1. field values 로 변환
    - 8 17 16 5
    - 8 19 8 -12
  2. 기계어로 변환 (비트 맞춰서)
    - 001000 10001 10000 0000000000000101
    => 0x22300005

-001000 10011 01000 1111 1111 1111 0100
=> 0x2268fff4

25
Q

다음 assembly code 를 필드 value 로 변환 하시오

  • lw $t2, 32($0)
  • sw $s1, 4($t1)
A
  • 35(lw) 0(rs;$0) 10(rt;$t2) 32(imm)
  • 43(sw) 9(rs;$t1) 17(rt;$s1) 4(imm)
  • 뒤의 레지스터가 앞으로 옴 !!
26
Q

다음 assembly code 를 기계어 ( hexa) 로 변환하시오.

  • lw $t2, 32($0)
  • sw $s1, 4($t1)
A
  1. 필드 value 로 변환
    35 0 10 32
    43 9 17 4
  2. 기계어 (이진법 ) 으로 변환 (형식 비트 맞춰서!!)

100011 00000 01010 0000 0000 0010 0000
-> 0x8C0A0020

101011 01001 10001 0000 0000 0000 0100
-> 0xAD310004

27
Q

what is J-type ?

A

jump type. 지금까지의 프로그램의 흐름을 멈추고 다른 주소지로 점프하여 새로운 프로그램을 실행(혹은 앞의 코드들을 무시하고 새로운 부분부터 실행 ) 하는 기능을 하는 명령어 타입이다.

28
Q

J type 포맷을 각 요소에 할당된 비트갯수와 함께 쓰시오

A

opcode(6), addr (26)

  • addr 는 점프할 주소지 이다.
29
Q

stored program 이란 ?

A

프로그램 명령어 또한 데이터가 모두 메모리에 저장되어지는 것이다.

von Neumann architecture 가 이 방법으로 설계되었다.

30
Q

stored program 의 장점은 ?

A

새로운 프로그램을 가동하고 싶을 때, 하드웨어적인 rewiring 없이, 단순히 새로운 프로그램을 메모리에 올려서 실행시키면 되기 때문에 간단하다.

31
Q

하나의 instruction 이 수행되는 과정을 3단계로 설명하면 ?

A

PC 에 저장된 주소값을 fetch

-> increment PC -> Execute

32
Q

in mips, 프로그램이 통상적으로 시작되는 메모리 주소는 ?

A

0x00400000

33
Q

0x016D4022 를 어셈블리어로 변환하시오

A
  1. 0000 0001 0110 1101 0100 0000 0010 0010
    -> opcode (앞의 6비트) 가 000000 으로 0
    따라서 R-type
  2. R type 형식으로 나누어 보면
    000000 01011 01101 01000 00000 0100010
    각각, op rs rt rd shamt funt
function 은 34 이므로 sub
rs = 11 , rt = 13, rd = 8, shmat=0
  1. 그러므로
    sub $t0, $t3, $t5
34
Q

기계어 -> 어셈블리어 변환 과정에서 한 명령어를 어떻게 parsing (조각조각) 할 지를 알려주는 요소는 ?

A

opcode
맨앞의 6비트

  • R type 은 0 -> 6 5 5 5 5 6 으로 parsing
  • I type 은 35,43,8 -> 6 5 5 16 으로 parsing
  • J type 은 2, 3 -> 6 26 으로 parsing