Convert the given  code fragment to assembly code fragment, using only instructions of the following types. These instructions are generally discussed in class. Here X,Y,Z are  any memory locations;  R, R1, R2 are any general registers; L is a label in the code (you can use any names as labels, ex. L, L1, L2 etc. ). load X, R //copy contents of memory location X into R. store R, X //Store contents of R into Mem location X cmp R1, R2 //Compute R1-R2 and update condition codes;                                                 //throw away result of subtraction. jmp L                       //Jump to location L in the code. jmpp L                      //If P bit is 1, Jump to location L in the code add X, R //Add contents of X,R and store result in R;                                    //Also update the condition codes.   Be careful about what type of argument is allowed in the instruction (Memory or Register). Ex. the first argument of ADD instruction is memory, not register.   Do Not use any other instructions (in this, or some other, assembly language). I cannot get into syntax and semantics of your assembly language or its presumed cpu architecture. So follow the instructions in the question.

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter2: Problem Solving Using C++using
Section2.3: Data Types
Problem 9E: (Practice) Although the total number of bytes varies from computer to computer, memory sizes of...
icon
Related questions
Question

Convert the given  code fragment to assembly code fragment,

using only instructions of the following types.

These instructions are generally discussed in class. Here

X,Y,Z are  any memory locations;  R, R1, R2 are any general registers; L is a label in the code (you can use any names as labels, ex. L, L1, L2 etc. ).

  • load X, R //copy contents of memory location X into R.
  • store R, X //Store contents of R into Mem location X
  • cmp R1, R2 //Compute R1-R2 and update condition codes;

                                                //throw away result of subtraction.

  • jmp L                       //Jump to location L in the code.
  • jmpp L                      //If P bit is 1, Jump to location L in the code
  • add X, R //Add contents of X,R and store result in R;

                                   //Also update the condition codes.

 

Be careful about what type of argument is allowed in the instruction (Memory or Register). Ex. the first argument of ADD instruction is memory, not register.

 

Do Not use any other instructions (in this, or some other, assembly language).

I cannot get into syntax and semantics of your assembly language or its presumed cpu architecture.

So follow the instructions in the question.

Ex. do not use JMPZ, JMPN etc. in these questions.

Ex. Do not say: cmp X, Y. The question says that the two arguments in the cmp instruction are registers, not memory locations.

 The code segment:­­

while ((X  != Y) X = X + Z;

L:

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Fundamentals of Computer System
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning