728x90
반응형
경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.
Signed and Unsigned Numbers
- base 진법 표현 → d * base^i
- Least Significant Bit(LSB): 가장 오른쪽 비트
- Most Significant Bit(MSB): 가장 왼쪽 비트

Unsigned binary numbers(32bit)
- 0 ~ 2^32 -1
Signed binary numbers(32bit)
- -2^31 ~ 2^31 - 1
16비트 2진수를 32비트로 변환할 때
signed인 경우 MSB를 앞에 채워준다. unsigned인 경우 0을 앞에 채워준다.
Hexadecimal

2진수를 16진수로 바꾸려면 4자리씩 묶어서 변환
Representing Instructions in the Computer
- Assembly language를 2진법으로 변환하는 방법
- instruction에 따라 Format이 나뉨
MIPS Fields (R-Format): 수학/논리적 명령어(add, sub)

- op: 명령어가 수행할 연산의 종류, R 포맷인 경우 모두 0
- rs(register source): 첫 번째 피연산자 레지스터 번호(5 bits - 32 registers)
- rt(register target): 두 번째 피연산자 레지스터 번호(5 bits - 32 registers)
- rd(register destination): 목적지 연산자 레지스터 번호(5 bits - 32 registers)
- shamt(shift amount): 시프트 연산에서 이동의 크기
- funct: 함수 코드, 구체적 연산 함수 지정(e.g., add, sub)

MIPS Fields (I-Format)
- 데이터 교환 명령에서 사용

- op: 연산자 코드
- rs: 첫 번째 피연산자 레지스터 번호(5 bits - 32 registers)
- rt: 두 번째 피연산자 레지스터 번호(5 bits - 32 registers)
- constant or address: op 코드에 따라 결정
- address: 2^15만큼의 offset
- constant: add immediate -2^15 ~ 2^15 - 1


Logical Operations

- 개별적인 비트 연산을 수행
sll Example

- op, rs, funct = 0, rt = $s0, rd = $t2, shamt = 4
Instructions for Making Decisions
Branch if equal (beq)

- register1과 register2의 값이 같으면 L1으로 이동
Branch if not equal (bne)

- register1과 register2의 값이 다르면 L1으로 이동


While loop

Comparison instruction (Signed integer version)
- Set on less than (slt): register1이 register2보다 작으면 1, 아니면 0

- Set on less than immediate (slti): register1이 constant 값보다 작으면 1, 아니면 0

Comparison instruction (Unsigned integer version)
- Set on less than unsigned (sltu)

- Set on less than immediate unsigned (sltiu)

Example

728x90
반응형