Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Below are four programs of pseudo code, segments that represent typical code and data structures that one might implement with a language such as Java

Below are four programs of pseudo code, segments that represent typical code and data structures that one might implement with a language such as Java or Python:

// Problem 1 // for loop

J=5 for(i=1; i

// Problem 2 // if - then - else

i=4 if (i

}

// Problem 3 // while loop i = 0 while(i==0) { j++ if j = 5 then i = j }

// Problem 4 // load and traverse an array

A[0] =5 A[1]=4 A[2]=3 A[3]=2 A[4]=1 A[5]=0

for (i=0; i

Convert each program into the Hack assembly language using only the mnemonic symbols in the following tables:

image text in transcribed

image text in transcribed

image text in transcribed

Here is an example of what the conversion should look like:

image text in transcribed

You should document your code using the // symbol as a comment to describe what part of the pseudo code is being implemented by your assembler code in the assignment and to show how you implemented the code in assembler.

Comparisons: Your program will need to compare two numbers to determine if one is larger than the other. In assembler we do not have an if expression that allows us to test the equality or inequality of two variables. The way that this capability can be implemented is by subtracting the second number from the first number and then 'jumping' based upon the result.

For example, if A and B are our two numbers, then the rules for A-B are as follows:

If A-B = 0, then A=B If A-B > 0, then A > B If A-B

If the result of the operation is 0 then we can execute a JEQ which means 'jump' if the output of the operation is equal to zero (see the jump table above).

In the algorithm we need to be able to test if a variable is less than, greater than, or equal to either another variable or a constant value. Each of these tests can be accomplished by subtracting the two numbers and the using the appropriate 'jump' instructions such as:

JLT jump less than 0 JGT jump greater than 0 JEQ jump equal to 0

(when a#0) ll (when a-1) | c1 c2 c3 c4 c5 c6 cony, mnemoni comp mnemonic 1 1101 0 1 1000 0 0 0 0 1 1 100 0 1 I D IA ! M D+1 A+1 M+1 0 01 1 1 0 1 1001 0 0 0 00 1 0 0 1 00 1 1 D+A D-A A-D D&A M-1 D+M D-M M-D D &M DIA000DIM (when a#0) ll (when a-1) | c1 c2 c3 c4 c5 c6 cony, mnemoni comp mnemonic 1 1101 0 1 1000 0 0 0 0 1 1 100 0 1 I D IA ! M D+1 A+1 M+1 0 01 1 1 0 1 1001 0 0 0 00 1 0 0 1 00 1 1 D+A D-A A-D D&A M-1 D+M D-M M-D D &M DIA000DIM

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

Conduct a needs assessment. page 269

Answered: 1 week ago