Ask Macroeconomics Expert

Introduction

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:

(00)  SAR = PSIAR

(01)  READ

(02)  IR = SDR

(03)  SDR = decoded IR (Operand)

(04)  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 = 0

SIMMAC Programming Language Description

Addition

Usage: ADD

Where

holds the value to add to the accumulator.

Subtraction Usage:

Usage: SUB

Where

holds the value to substract to the accumulator.

Load:

Usage: LDA

Where

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

Where

is the storage location for the contents of the accumulator.

Branch 

Usage: BRH

Where

is the target of the absolute branch.

Conditional Branch

Usage: CBR

Where

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.

Macroeconomics, Economics

  • Category:- Macroeconomics
  • Reference No.:- M91814747
  • Price:- $30

Priced at Now at $30, Verified Solution

Have any Question?


Related Questions in Macroeconomics

Economics assignment -topic evaluation of macroeconomic

Economics Assignment - Topic: Evaluation of Macroeconomic performance of Australia and New Zealand. Task Details: Complete a research-based analysis and evaluation of the relative macroeconomic performance of Australia a ...

Introductory economics assignment -three problem-solving

Introductory Economics Assignment - Three Problem-Solving Questions. Question 1 - Australia and Canada have a free trade agreement in which, Australia exports beef to Canada. a. Draw a graph and use it to explain and ill ...

Question in an effort to move the economy out of a

Question: In an effort to move the economy out of a recession, the federal government would engage in expansionary economic policies. Respond to the following points in your paper on the actions the government would take ...

Question are shareholders residual claimants in a publicly

Question: Are shareholders residual claimants in a publicly traded corporation? Why or why not? In some industries, like hospitals, for-profit producers compete with nonprofit ones. Who is the residual claimant in a nonp ...

Discussion questionsquestion 1 what are the main reasons

Discussion Questions Question 1: What are the main reasons why Nigerians living in extreme poverty? Justify. ( 7) Question 2: Why GDP per capita wouldn't be an accurate measure of the welfare of the average Nigerian? Exp ...

Question according to the definition a perfectly

Question: According to the definition, a perfectly competitive firm cannot affect the market price by any changing only its own output. Producer No. 27 in problem 2 decides to experiment by producing only 8 units. a. Wha ...

Question jones is one of 100000 corn farmers in a perfectly

Question: Jones is one of 100,000 corn farmers in a perfectly competitive market. What will happen to the price she can charge if: a. The rental price on all farmland increases as urbanization turns increasing amounts of ...

Question good x is produced in a perfectly competitive

Question: Good X is produced in a perfectly competitive market using a single input, Y, which is itself also supplied by a perfectly competitive industry. If the government imposes a price ceiling on Y, what happens to t ...

Question pepsico produces both a cola and a major brand of

Question: PepsiCo produces both a cola and a major brand of potato chips. Coca-Cola produces only drinks. When might it make sense for PepsiCo to divest its potato chip operations? For Coca-Cola to begin manufacturing sn ...

Question again demand is qd 32 - 15p and supply is qs -20

Question: Again, demand is QD = 32 - 1.5P and supply is QS = -20 + 2.5P. Now, however, buyers and sellers have transaction costs of $2 and $3 per unit, respectively. Compare the equilibrium values with those you calculat ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As