Ask Assembly Expert

Problem 1: Square Root

For this problem you will write a short assembly program that computes the integral square root of an input number, A, which is initially stored in R0. When the program has terminated the square root should be stored in R1, if the input number is negative the output should be -1. A pseudo-code version of the required algorithm is shown below:

Input A: The number whose square root is to be computed

Output B: The approximate square root - the largest integer such that B*B <= A

B=0

If (A >= 0) {

                     While (B*B <= A) {
                      B = B+1
                   }
}
B = B-1

As part of your script function you should set R0 to the input number A. That way you can rerun your program on different inputs by just editing the script file and rerunning.

While this algorithm is quite simple, you must comment your assembly code. If you do not provide some minor comments, points will be taken off your work. It is best to learn to being using comment appropriately now when it is simple, before it gets complex. This is going to be true for all programs you author in this class.

Problem 2: Fibonacci

In this problem you will write a program that will compute the first 20 numbers in the Fibonacci sequence. (You can refer to Wikipedia for more information on the Fibonacci sequence). Here is the pseudo-code for the procedure:

F_0 = 0
F_1 = 1;

i = 2;
While (i < 20) {
                          F_i = F_(i-1) + F_(i-2);
                          i = i+1
                       }

More specifically your program should write the first 20 Fibonacci numbers into memory starting at address x4000. At the end of your program the addresses x4000 through x4013 will contain the first 20 Fibonacci numbers starting at 0. You may find the list instruction in PennSim useful for examining the contents of memory. You can look at the sum_numbers.asm program for an example of a program that accesses data memory.

Big Hint. You will probably find it convenient to maintain a variable that points to the address in memory you are going to write to next and update this on each iteration. You may also find it useful to use the offset field in the LDR instructions to read values that are near to the current store address.

Problem 3: Prime Finder

In this problem you will write a small program that tests whether a given integer is a prime number or not. Let's call the number we are testing A and let's assume that it starts in R0 - at the end of your program R1 should contain 1 if the number is prime and 0 if it is not.

Here is the pseudo-code for the procedure

If (A <= 1) {
                    PRIME_FLAG = 0;
                    GOTO END
                  }

B = 2;
PRIME_FLAG = 1; // we assume that the number is prime until we prove otherwise

While (B*B <= A) {
                              If (A % B == 0) { // check if A is divisible by B
                              PRIME_FLAG = 0;
                              GOTO END
                             }
B = B+1
}
END 

Assembly, Programming

  • Category:- Assembly
  • Reference No.:- M9351920

Have any Question?


Related Questions in Assembly

Really need to find a correct answer to this questionwrite

Really need to find a correct answer to this question: Write a MIPS assembly program that can search for a number that is entered by a user in an array with 20 integer number. Make sure it also prints the index of the ar ...

Question a sequence string of one-byte ascii characters is

Question : A sequence (string) of one-byte ASCII characters is stored at memory location $600 onward. A second sequence of equal length is stored at memory location $700 onward. Each sequence ends with the character $0 ( ...

Task 1using masm sdk write an assembly language program

TASK 1 Using MASM SDK, write an assembly language program which converts an integer inputted via the console to binary. Your program should be well commented and well formatted. TASK 2 Using MASM SDK, write an assembly l ...

  • 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