Program in the machine language of the simmac

Assignment Help Operating System
Reference no: EM131224563

The following machine description will provide the basis for this assignment. You will create a virtual machine/operating system for the machine described below that will accept programs in the target machine language.

The details for this assignment are presented below following the machine description.

MICROPROGRAMMING/MACHINE DISCRIPTION

The following is a description of a machine called SIMMAC that contains the following: 512 32-bit words of memory (memory is word addressable).

Each Instruction consists of a 16-bit opcode and a 16-bit operand. An ALU for performing mathematical operations.

Registers

ACC - Accumulator;  A  32-bit  register  involved  in     all  arithmetic operations. One of the operands in each arithmetic operation must be in the Accumulator; the other must be in primary storage.

PSIAR Primary  Storage  Instruction  Address  Register;  This  16-bit register points to the location in primary storage of the next machine language instruction to be executed.

SAR Storage Address Register; This 16-bit register is involved in all references to primary storage. It holds the address of the location in primary storage being read from or written to.

SDR Storage Data Register; This 32-bit register is also involved in all references to primary storage. It holds the data being written to or receives the data being read from primary storage at the location specified in the SAR.

TMPR Temporary Register; This 32-bit register is used to extract the address portion (rightmost 16-bits) of the machine instruction in the SDR so that it may be placed in the SAR. (No SDR to SAR transfer.)

CSIAR - Control Storage Instruction Address Register; This register points to the location of the next micro-instruction (in control storage) to be executed.

IR Instruction   Register;   This   register   contains  the  current instruction being executed.

MIR Micro-instruction Register; This register contains  the current micro-instruction being executed.

Register Transfers (REG is ACC, PSIAR, or TMPR): SDR = REG

REG = SDR SAR = REG

Primary Storage Operations:

READ - Data from primary storage location named in the SAR is placed in the SDR.

WRITE - Data in the SDR is placed in primary  storage location named in the SAR.

Sequencing operations: CSIAR = CSIAR + 1

CSIAR = decoded SDR

CSIAR = constant

SKIP = (add 2 to CSIAR if ACC=0; else add 1) Operations involving the accumulator:

ACC = ACC + REG ACC = ACC - REG ACC = REG

REG = ACC ACC = REG + 1

Instruction fetch:(0) SAR = PSIAR
(1) READ
(2) IR = SDR
(3) SDR = decoded IR (Operand)
(4) CSIAR = decoded IR (OP CODE) ADD (Opcode 10):
(10) TMPR = ACC
(11) ACC = PSIAR + 1
(12) PSIAR = ACC
(13) ACC = TMPR
(14) TMPR = SDR
(15) SAR = TMPR
(16) READ
(17) TMPR = SDR
(18) ACC = ACC + TMPR
(19) CSIAR = 0 SUB (Opcode 20):
(20) TMPR = ACC
(21) ACC = PSIAR + 1
(22) PSIAR = ACC
(23) ACC = TMPR
(24) TMPR = SDR
(25) SAR = TMPR
(26) READ
(27) TMPR = SDR
(28) ACC = ACC - TMPR
(29) CSIAR = 0 LOAD (LDA, Opcode 30):
(30) TMPR = ACC
(31) ACC = PSIAR + 1
(32) PSIAR = ACC
(33) ACC = TMPR
(34) TMPR = SDR
(35) SAR = TMPR
(36) READ
(37) ACC = SDR
(38) CSIAR = 0

STORE (Name STR, Opcode 40):

(40) TMPR = ACC
(41) ACC = PSIAR + 1
(42) PSIAR = ACC
(43) ACC = TMPR
(44) TMPR = SDR
(45) SAR = TMPR
(46) SDR = ACC
(47) WRITE
(48) CSIAR = 0


BRANCH (Name BRH, Opcode 50):

(50) PSIAR = SDR
(51) CSIAR = 0


COND BRANCH (Name CBR, Opcode 60):

(60) SKIP
(61) CSIAR = 64
(62) PSIAR = SDR
(63) CSIAR = 0
(64) TMPR = ACC
(65) ACC = PSIAR + 1
(65) PSIAR = ACC
(66) ACC = TMPR
(67) CSIAR = 0

LOAD IMMEDIATE (LDI, Opcode 70):

(70) TMPR = ACC
(71) ACC = PSIAR + 1
(72) PSIAR = ACC
(73) ACC = TMPR
(74) ACC = SDR
(75) CSIAR = 0SIMMAC Programming Language Description


Addition

Usage: ADD <address>

Where <address> holds the value to add to the accumulator.


Subtraction

Usage: SUB <address>

Where <address> holds the value to subtract from the accumulator.


Load

Usage: LDA <address>

Where <address> holds the value to load in to the accumulator.

Load Immediate

Usage: LDI number

Where number is the value to load in to the accumulator.


Store

Usage: STR <address>

Where <address> is the storage location for the contents of the accumulator.

 

Branch

Usage: BRH <address>

Where <address> is the target of the absolute branch.

Conditional Branch

Usage: CBR <address>

Where <address> is the target of an absolute branch if the accumulator is zero.

 

Project Description

Design and implement a program to simulate the operation of the SIMMAC based on the descriptions above.

Add a HALT instruction that dumps the contents of all registers and memory and then prints an "End of Job" message.

Your project must implement multi-tasking in a single queue using a round-robin scheduling discipline. You will implement process entities (jobs) that will allow your machine to run several SIMMAC machine-language programs. In order to do this you will define a Process Control Block (PCB) data structure that will be created for each job in your system. For this assignment assume each SIMMAC instruction is equivalent to one clock cycle. Additionally the time quantum value for round-robin scheduling is an integer multiple of a clock cycle. The quantum value is to be set on the command line or prompted for during initialization.

You will define the notion of an interrupt handler that will process a time quantum for each running job. On each job switch, you will print some state information such as which job will be loaded and the current state of the job queues.

Your version of SIMMAC will then run multiple SIMMAC machine language programs simultaneously. These programs will test the ability of your SIMMAC to handle multi- tasking and scheduling. You must design your system such that all SIMMAC machine programs are loaded from text files.

The SIMMAC must be designed to take command line arguments or to prompt for input files in addition to the previously specified items. By this mechanism, all SIMMAC language programs will be loaded. Since there is the LDI command, all data can be loaded into SIMMAC memory using SIMMAC programming statements.

You must develop the following SIMMAC language programs to be run on your SIMMAC machine:

1) Write three programs in the machine language of the SIMMAC that will total the numbers stored in 20 different locations and place the result in a single location.

2) Write a program in the machine language of the SIMMAC that will decrement the value stored in location 201 (must be at least 100) by one until the result is zero. Store the result in location 202.

3) Write a program in the machine language of the SIMMAC that will increment the value stored in location 301 by two until the value has been increased by 200. Store the result in location 302.

Each line of any SIMMAC program must have the following format: Opcode Operand

You will be responsible for turning in the system design document, source code of your version of SIMMAC (this code must be appropriately commented & readable), an executable version of your SIMMAC, and the output generated from your SIMMAC programs running on your version of SIMMAC. These items are to be placed in ZIP format and submitted to the OS Problem Set Assignment in Blackboard Assignments.

Reference no: EM131224563

Questions Cloud

Different stages of awareness of their own cultural identiti : What stages have you experienced or are you currently experiencing? Be specific, using examples of what you thought, felt, and did at various stages. Pay particular attention to what triggered your transition from one stage to the next.
Evaluate new piece of equipment for our production line : The time has come to evaluate (cost justify) a new piece of equipment for our production line. What is the total cost difference, per year, for operating the replacement equipment versus the existing equipment? Should we replace our existing equipmen..
Importance of gdp as a measure of our economic well-being : GDP as a Measure of Well-being- Mayer describes the importance of GDP as a measure of our economic well-being. But they also note that this measure omits some things that are important in describing how well-off we are.
Problem regarding the managerial economics : Describe 2 ways in which you would expect a company such as Miller to experience economies of scale that Corpus Christi Cheer Beer does not.
Program in the machine language of the simmac : CISC 640 Nova Southeastern University Introduction - Create a virtual machine/operating system for the machine described below that will accept programs in the target machine language. The details for this assignment are presented below following t..
Determine a value per share of ragan stock : Determine a value per share of Ragan stock. - Assuming the company continues its current growth rate, what is the value per share of the company's stock?
How might these chosen theories influence your decisions : Which theory or theories of management align most closely with your personal beliefs about how organizations should be conceived of and managed? Why? How might these chosen theories influence your decisions as a program administrator at a child dev..
Healthcare system is experiencing financial problems : Bright Road Healthcare System is experiencing financial problems like insurers with late payments, Medicare patients with high readmission rates within 30 days (lost Medicare reimbursement), high staff turnover increasing costs, and low admissions to..
Where an attempted motivational tool did not work : Next, provide an example of a situation where an attempted motivational tool did not work. What was it about the second example that did not work? Explain mwour answer.

Reviews

Write a Review

Operating System Questions & Answers

  Find all the dns servers for microsoft.com

I desperately need assistance on the questions below which some of them requires using the the command prompt. I would like to have the answer with the detail step by step commands

  To determine the values to be printed in the first column

The values in the first column will include 1*start, 2*start, and so on up to 10*start. This will be done using a for loop. In addition, myNumber should appear in the first column in the appropriate row

  Configuration management

Determine which is more applicable across the widest possible range of situations: process modeling or configuration management. Be sure to explain your rationale.

  Differences between linux and windows operating system

Write a 4 page paper that compares and contrasts the basic system differences between UNIX/Linux, Mac, and Microsoft Windows operating systems

  Write a research on evaluation of education system

Write  a  Research  on  evaluation of education system  Literature review Analyzing the problem

  Risk management analysis on business

Approximately 3-5 page report, 1.5 spaced describing an analytics, management science or model challenge in the real world and the methods and/or technologies used to solve it. Five (5) references are required which can be a combination of articl..

  Computer forensics it is likely a forensics investigator

it is likely a forensics investigator will encounter all of the primary operating systems available. the similarities

  Operating system suitability assessment plan

Develop a tool that helps companies in assessing the suitability of different operating systems for their businesses. This tool is a table with multiple rows and columns - Operating System Suitability Assessment Plan.

  Provide the design and justification for your mechanism

Provide the design and justification for your mechanism that supports process dispatching and discuss the design advantage and disadvantage of each approach throughout the process lifecycle.

  Autonomous intelligent software agents are used in

autonomous intelligent software agents are used in artificial intelligence to solve an increasing number of complex

  When a process enters the cpu your program must now forkand

when a process enters the cpu your program must now forkand exe a stand alone child process. you must use glxgears for

  List computers operating system version of operating system

Submit the file and written response according to the submission instructions. List the computer's operating system, version of operating system, processor, and total memory (RAM) installed.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd