Urša Levičnik (2011) Assembler for a hypotetical computer SIC/XE. EngD thesis.
Abstract
As the name itself suggests, the purpose of the first computers was computing. The operators (as the users were then called) that were working with computers had to in a way fix or program the machine in order to solve a given problem. Operators had a direct access to the machine and the work they were doing can be called hardware programming. Nowadays, computers have become much more common and are no longer used only for solving mathematical problems that were to difficult for a person to solve. Computer users rarely see beyond the »mouse, keyboard and the monitor« and only expect from their computers to solve their problems more easily. For this kind of work, they do not need to understand the processes that are going on in the background. In order for the users to be blissfully ignorant and can focus only on their work, a bond between the hardware and the application software must exist. System software is basically a program that is being executed in a computer from the moment we turn the machine on and is responsible for the communication between the machine and the application program. The term system software includes different parts: assemblers, linkers, loaders, operating systems etc. Therefore, the term denotes everything that enables the users to forget that computer architecture exists. In my thesis, I focus on the part of system software known as the assembler. First I describe the architecture of the processor and requirements needed to build an assembler. I also compare the architecture of SIC/XE with architectures of commonly used and known processors. Based on my findings, I create a program that simulates the assembler for a hypothetical processor SIC/XE. In the end, I suggest possible improvements which can be implemented in an assembler.
Actions (login required)