Skip to content
Vineet Kumar edited this page Apr 6, 2017 · 2 revisions

Welcome to the Sic_Assembler_Emulator wiki!

Simplified Instructional Computer

  • Simplified Instructional Computer (SIC) is a hypothetical computer that includes the hardware features most often found on real machines. It has two models:

  • Sic standard model

  • SIC/XE (Extra Equipment) model.

  • Upward compatible

    A program written in SIC should run on SIC/XE

SIC machine Architecture

  • Memory

    • 8-bit bytes

    • 3 consecutive bytes form a word, addressed by the lowest byte

    • Memory size is $2^{15} =$ (32768) bytes

  • Registers : Total five registers / 24- bits each

    • A : Accumulator : 0 : used for arithmetic operations

    • X : Index register : 1 : used for addressing

    • L : Linkage register : 2 : the jump to subroutine (JSUB) instruction stores the return address in this register

    • PC :Program counter : 8 : contain the address of the next instruction to be fetched for execution

    • SW : Status word : 9 : contain a variety of information, including a condition code.

  • Data Formats:

    • Integers are stored as 24-bit binary numbers; 2’s complement representation is used for negative values

    • No floating-point hardware

Machine architecture

  • Addressing Modes
    Mode Indication Target address calculation

    • Direct X=0 TA = address

    • Indexed X=1 TA= address + (X)

Instruction Set

  • Instruction Set:

  • load and store: LDA, LDX, STA, STX, etc.

  • integer arithmetic operations: ADD, SUB, MUL, DIV, etc.

  • All arithmetic operations involve register A and a word in memory, with the result being left in the register

  • comparison: COMP

  • COMP compares the value in register A with a word in memory, this instruction sets a condition code CC to indicate the result

  • conditional jump instructions: JLT, JEQ, JGT

  • these instructions test the setting of CC and jump accordingly

  • subroutine linkage: JSUB, RSUB

  • JSUB jumps to the subroutine, placing the return address in register L

  • RSUB returns by jumping to address contained in register L

Instruction Set

  • Input and Output: :

  • Input and output are performed by transferring 1 byte at a time to or form the rightmost 8 bits of register A

  • Each device is assigned a unique 8-bit code 8

  • Three I/O instructions: 1- Test device (TD): 2- Read Data (RD) 3- Write Data (WD)

  • Data movement

  • No memory-memory move instruction

  • 3-byte word: LDA, STA, LDL, STL, LDX, STX

  • 1-byte: LDCH, STCH

  • Storage definition
    – WORD, RESW
    – BYTE, RESB

Development of Assembler For Assembler Development JAVA was used
The class diagram for Assembler class is\

image

Support for Assembler Class Pass1(): void
It creates intermediate file and help in solving the problem of forward Refrence
Its output are Symbol table
Pass2():void:
It creates the final object code file or we say machine code
Its output is object code
assemble():void
It helps in reading the program line by line and updates the location counter

Simulator It loads the program in the memory and executes the instructions\

image

The class diagram is shown
image

GUI implemented class has output as : symbol table,object code,register contents and memory dump.

Final Product

Final GUI Version of SIC Simulator

Simulator in Action

  • Final Slide deck for presentation available here
Clone this wiki locally