Computer Science/Computer Architecture

[컴퓨터구조] Lecture 05: Instructions - Language of the Computer - Part2

kangkyunghyun 2026. 2. 8. 16:06
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
반응형