Ty Newman

Computer Science Student | Aspiring Tech Salesman

About Me

Welcome to my portfolio! My name is Ty Newman, and I am a Computer Science major at the University of North Florida with a strong interest in systems programming and technology-driven solutions.

Featured Project: SIC XE Assembler

Course: Systems Programming

Description: Made an assembler that takes in SIC XE code, and creates a symbol table, which is then used to make a obj file for my final project last semester in which me and my group mate presented in front of the class

Key Features:

Annotated Source Code

Pass 1 - Symbol Table Construction:
During the first pass, the assembler scans each line of source code, updates the location counter, and records valid labels in the symbol table while detecting duplicates and invalid symbols.

// Add label to symbol table if present
if (label[0] != '\0') {
    if (!symbol_exists(label)) {
        add_symbol(label, locctr);
    } else {
        error("Duplicate symbol detected");
    }
}
        
PC-Relative vs Base-Relative Addressing:
In Pass 2, PC-relative addressing is attempted first. If the displacement is out of range, base-relative addressing is used when the BASE directive is active.

disp = targetAddr - pc;

if (disp >= -2048 && disp <= 2047) {
    p_flag = 1;   // PC-relative
} else if (base_set) {
    disp = targetAddr - base_register;
    b_flag = 1;   // Base-relative
}
        
Modification Records:
Format 4 instructions generate modification records so that addresses can be relocated correctly by the loader at runtime.

if (is_extended) {
    add_modification_record(locctr + 1, 5);
}
        

Other Work

Explore more of my coursework and projects:

Contact

School Email: n01539941@unf.edu

Business Email: edwardtynewman@yahoo.com

LinkedIn: My LinkedIn Profile