0% found this document useful (0 votes)
9 views5 pages

Lab4 Marie

The document outlines a lab exercise focused on the MARIE computer simulator, detailing its architecture and instruction set. It includes tasks on micro-operations using Register Transfer Language (RTL), instruction processing, and writing assembly programs. The lab aims to familiarize students with the MARIE architecture and its operation through practical activities and exercises.

Uploaded by

The Scholar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views5 pages

Lab4 Marie

The document outlines a lab exercise focused on the MARIE computer simulator, detailing its architecture and instruction set. It includes tasks on micro-operations using Register Transfer Language (RTL), instruction processing, and writing assembly programs. The lab aims to familiarize students with the MARIE architecture and its operation through practical activities and exercises.

Uploaded by

The Scholar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Name: ______________________________

Department of Computer CS 3401


and
Mathematical Sciences
Assembly
Language
4

Lab 4: Introduction to MARIE

Objectives:
The main objective of this lab is to get you familiarized with MARIE a simple computer
simulator.

The MARIE architecture has the following characteristics:


• Binary, two's complement data representation.
• Stored program, fixed word length data and instructions.
• 4K words of word-addressable main memory.
• 16-bit data words.
• 16-bit instructions, 4 for the opcode and 12 for the address as shown below.

• A 16-bit arithmetic logic unit (ALU).


• Seven registers for control and data movement.

Figure 1: MARIE Architecture Figure 2: MARIE Instruction set

MARIE’s seven registers are:


• Accumulator, AC, a 16-bit register that holds a conditional operator (e.g., "less than") or
one operand of a two-operand instruction.
• Memory address register, MAR, a 12-bit register that holds the memory address of an
instruction or the operand of an instruction.
• Memory buffer register, MBR, a 16-bit register that holds the data after its retrieval from,
or before its placement in memory.
• Program counter, PC, a 12-bit register that holds the address of the next program
instruction to be executed.
• Instruction register, IR, which holds an instruction immediately preceding its execution.
• Input register, InREG, an 8-bit register that holds data read from an input device.
• Output register, OutREG, an 8-bit register, that holds data that is ready for the output
device.
Name: ______________________________

Task 1: Micro-operations -- Register Transfer Language (RTL)


The exact sequence of micro-operations that are carried out by an instruction can be specified
using register transfer language (RTL). In the MARIE RTL, it uses the notation M[X] to indicate
the actual data value stored in memory location X, and ← to indicate the transfer of bytes to a
register or memory location.

For example the Load X instruction

MAR ← X
MBR ← M[MAR]
AC ← MBR

Activity 1.1: What is the RTL for the Add X instruction?

MAR ← X
MBR ← M[MAR]
AC ← AC + MBR

Activity 1.2: What is the RTL for the Subt X instruction?

MAR ← X
MBR ← M[MAR]
AC ← AC - MBR

Activity 1.3: What is the RTL for the JnS X instruction?

MBR ← PC
MAR ← X
M[MAR] ← MBR
MBR ← X
AC ← 1
AC ← AC + MBR
PC ← AC

Activity 1.4: What is the RTL for the AddI X instruction?

MAR ← X
MBR ← M[MAR]
MAR ← MBR
MBR ← M[MAR]
AC ← AC + MBR
Name: ______________________________

Task 2: Instruction Processing


An instruction is executed as follows:
• The fetch-decode-execute cycle is the series of steps that a computer carries out when it runs
a program.
• We first have to fetch an instruction from memory, and place it into the IR.
• Once in the IR, it is decoded to determine what needs to be done next.
• If a memory value (operand) is involved in the operation, it is retrieved and placed into the
MBR.
• With everything in place, the instruction is executed.

Activity 2.1: Suppose the location X in a Load X instruction is 104 which contains the value of
35d and the instruction stored at 100 in the memory, complete the following table:

Step RTN PC IR MAR MBR AC


(initial values) 100
Fetch MAR ← PC 100 100
IR ← M[MAR] 100 1104 100
PC ← PC + 1 101 1104 100
Decode MAR ← IR[11-0] 101 1104 104
(decode IR[15-12]) 101 1104 104
Get operand MBR ← M[MAR] 101 1104 104 0023
Execute AC ← MBR 101 1104 104 0023 0023

Activity 2.2: Suppose the location X in an ADD X instruction is 105 which contains the value of
−23d and the instruction stored at 101 in the memory, complete the following table:

Step RTN PC IR MAR MBR AC


(initial values) 101 1104 104 0023 0023
Fetch MAR ← PC 101 101 101 0023 0023
IR ← M[MAR] 101 3105 101 0023 0023
PC ← PC + 1 102 3105 101 0023 0023
Decode MAR ← IR[11-0] 102 3105 105 0023 0023
(decode IR[15-12]) 102 3105 105 0023 0023
Get operand MBR ← M[MAR] 102 3105 105 FFE9 0023
Execute AC ← AC + MBR 102 3105 105 FFE9 000C
Name: ______________________________

Activity 2.3: Suppose the location X in a Store X instruction is 106 and the instruction stored
at 102 in the memory, complete the following table:

Step RTN PC IR MAR MBR AC


(initial values) 102 3105 105 FEE9 000C
Fetch MAR ← PC 102 3105 102 FFE9 000C
IR ← M[MAR] 102 2106 102 FFE9 000C
PC ← PC + 1 103 2106 102 FFE9 000C
Decode MAR ← IR[11-0] 103 2106 106 FFE9 000C
(decode IR[15-12]) 103 2106 106 FFE9 000C
Get operand 103 2106 106 FFE9 000C
Execute MBR ← AC 103 2106 106 000C 000C
M[MAR] ← MBR 103 2106 106 000C 000C

Task 3: MARIE Assembly Program


Activity 3.1: Enter the following assembly code in MARIE Assembly Code Editor and save.

Load X
Subt Y
Skipcond 000

Jump Else
Then, Load Y
Subt X
Store Y
Jump Endif
Else, Load X
Subt Y
Store X
Endif, Halt
X, DEC 20
Y, DEC 30

Activity 3.2: Assemble the program, then debug or run the program in MARIE Simulator.

Activity 3.3: What is the content at location of X and Y at end of the program?

Location Content
X 0014
Y 000A
Name: ______________________________

Activity 3.4: Replace the instruction X, DEC 20 by X, DEC 40. What is the content at
location of X and Y at end of the program?

Location Content
X 000A
Y 001E

Activity 3.5: Describe what the program in Activity 3.1 does.

if (X - Y) < 0
Y = Y – X
else
X = X - Y

Activity 3.6: Convert each instruction in the following program to its corresponding machine
code in hex.

Location Instruction Machine Code


000 Load X 100C
001 Subt Y 400D
002 Skipcond 000 8000
0003 Jump Else 9008
004 Then, Load Y 100D
005 Subt X 400C
006 Store Y 200D
007 Jump Endif 900B
008 Else, Load X 100C
009 Subt Y 400D
00A Store X 200C
00B Endif, Halt 7000
00C X, DEC 20 0014
00D Y, DEC 30 001E

You might also like