1. Engineering
  2. Computer Science
  3. this is a lab for assembly x86 please help me...

Question: this is a lab for assembly x86 please help me...

Question details

This is a lab for assembly X86. Please help me solve it. Thanks.

Overview of part 1
Write a program that calculates the sum of N integers in a sequence.

An integer sequence has Nintegers, with a starting value a, and a constant difference dbetween 2 integers.
For example: the sequence    3, 9, 15, 21              has N= 4, a= 3, d= 6
                 and the sequence    1, 2, 3, 4, 5, 6, 7     has N= 7,a= 1, d= 1

The sum Sof all Nintegers is calculated as:  S = N(2a + (N-1)d) / 2


1. Prompt the user for the N, a, and dvalues, in that order.

  • The prompt should explain clearly what you expect from the user. See sample output below.
  • You can expect that the user will give you N, a, and dvalues that are between 1 and 100, so there's no error checking needed.
  • Given that 100 is the max value of all input, use the appropriate data typeand the register sizethat can store the maximum output value, but do not use the largest possible data size.
  • 2pts of the lab is for using the correct data type / size.

2. Calculate the sum, using the given formula.

-     Be efficient with your code for the calculation (Refer to the class notes for suggestions).

-     1pt of the lab is for coding efficiency.

3. Print the values of N,a, d, and sum on one line of output. See sample output.
The output line should be a separate line, so don't forget the newline character at the end of the line.

4. Do not declare and use any memory variable, except for text strings.

-     The text strings for the prompts and the output text can be defined in the .data section, but all user input and  calculation results should be in registers.

-    2 pts of the lab is for not using memory variables to store numeric data.

5. Documentation

  • To get credit for the lab, don't forget your name at the top.
  • Use comments to explain logical blocks of code, and It is also visually helpful to add a blank line between logical blocks.

Run multiple test cases: at least one with a small N and large a and d values, and another one with a large N and small a and d values.

Sample program output:
      Enter the number of integers: 90
      Enter the start integer: 3
      Enter the difference between integers: 1
      N = 90, a = 3, d = 1, sum = 4275

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution