64.0k views
1 vote
I'm using assembly language. This is my assignment. I kinda confused about how to write code for this assignment. Can anyone explain to me how to write? ASAP!!

Write a complete program that 1. Prompt the user to enter 10 numbers. 2. save those numbers in a 32-bit integer array. 3. Print the array with the same order it was entered. 3. Calculate the sum of the numbers and display it. 4. Calculate the mean of the array and display it. 5. Rotate the members in the array forward one position for 9 times. so the last rotation will display the array in reversed order. 6. Print the array after each rotation. check the sample run. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Don't use any shift or rotate instructions which we have not covered yet. You need to use loops and indexed addressing. All you work should be on the original array. Don't make a copy of the array at any time. Add comments to make your program easy to read. check the reburic before you submit. Sample Run:

Please enter a number: 2
Please enter a number: 3
Please enter a number: 4
Please enter a number: 5
Please enter a number: 6
Please enter a number: 7
Please enter a number: 8
Please enter a number: 9
Please enter a number: 0
Please enter a number: 10
The sum is: 54
The mean is: 5 4/10
The original array: 2 3 4 5 6 7 8 9 0 10
After a rotation: 10 2 3 4 5 6 7 8 9 0
After a rotation: 10 0 2 3 4 5 6 7 8 9
After a rotation: 10 0 9 2 3 4 5 6 7 8
After a rotation: 10 0 9 8 2 3 4 5 6 7
After a rotation: 10 0 9 8 7 2 3 4 5 6
After a rotation: 10 0 9 8 7 6 2 3 4 5
After a rotation: 10 0 9 8 7 6 5 2 3 4
After a rotation: 10 0 9 8 7 6 5 4 2 3
After a rotation: 10 0 9 8 7 6 5 4 3 2
Press any key to continue . . .

User LucyTurtle
by
5.3k points

1 Answer

4 votes

Answer:

oid changeCase (char char_array[], int array_size ) {

__asm{

mov eax, char_array;

mov edi, 0;

readArray:

cmp edi, array_size;

jge exit;

mov ebx, edi;

shl ebx, 2;

mov cl, [eax + ebx];

check:

//working on it

cmp cl, 0x41;

jl next_indx;

cmp cl, 0x7A;

jg next_indx;

cmp cl, 'a';

jl convert_down;

jge convert_up;

convert_down:

or cl, 0x20; //make it lowercase

jmp write;

convert_up:

and cl, 0x20;

jmp write;

write:

mov byte ptr [eax + ebx], cl

next_indx:

inc edi;

exit:

cmp edi, array_size;

jl readArray;

mov char_array, eax;

}

}

Step-by-step explanation:

  • Move char_array to eax as it is base image .
  • Use ebx as offset .
  • Use ecx as the storage register .
  • check if cl is <= than ASCII value 65 (A) .
User Neurino
by
4.7k points