[시스템프로그래밍] SIC & SIC/XE

Jay·2024년 4월 12일

시스템프로그래밍

목록 보기
1/2
post-thumbnail

Memory

  • 1 byte = 8 bit
  • 1 word = 3 bytes (24bits)

All addresses on SIC are byte address

Registers

  • 각자 특징이 있는 5 registers 존재함
  • 24-bit length

Data Formats

  • Character : 8-bit (1 byte) ASCII 코드)

Instruction Formats (**SIC의 명령어는 예외적)

SIC의 모든 명령어는 24-bit이다

Addressing Modes

  • Direct : x=0
  • Indexed : x=1

SIC / XE Machine Architecture

  • 추가적인 레지스터

How to support addressing ?

  • Use relative addressing → SIC
  • Extend the address field to 20 bits → SIC / XE

Instruction Formats (n.i.x.b.p.e)

  • Format 2 : register 연산 지원
  • Format 3 (3byte = 24bit) : 12비트의 disp에만 상대적주소 계산해서 저장
    • Base relative : b=1 / p=0
    • PC relative : b=0 / p=1
    • Direct mode : b=0 / p=0
  • Format 4 (4byte = 32bit) : address가 20bit로 늘어남
    • x=1 Looping 연산지원
    • Direct mode : b=0 / p=0


  • Hex 032600
    • n=i=1 : SIC / XE , e=0 : format 3

    • p=1 : PC relative mode

    • disp/address = 6 0 0

      → (PC에 비해 600만큼 떨어져있다는 것)

    • Target address (PC+disp) : 3000 + 600 = 3600

      → 3600번지의 register 103000으로 !

      Hex이므로 4개씩 끊기 : 032600

  • Hex 022030
    • n=1, i=0 : indirect addressing , e=3 : format 3
    • p=1 : PC
    • disp : 0 3 0 → PC + 30 = 3030 주소로 이동 → 003600값이므로 다시 3600 주소로 이동 → 103000이 목적 register 값
  • Hex 003600
    • n=i=0 : SIC SIC의 n=i=0의 경우는 instruction format으로 간주되므로 b,p,e 는 flag가 아닌 address의 일부임
    • hex로 주소 읽으면 0 0 3 6 0 0 ⇒ 이 값 자체가 Target address
profile
Live a life you will remember !

0개의 댓글