Write a function that accepts a char array its size and a


All questions in this test are related to the X86 Assembly Language.

[01] Convert (234.5625)10 to IEEE754 single precision. If any, trailing ‘0's can be ignored.

[02] Convert the following C++ code fragment to x86 assembly code:
float f1[8] = {1,2,3,4,5,6,7,8};
float sum=0;
int i=0;
while(sum<=20){
sum+=f1[i++];
}
cout << i << endl;

[03] For Question [02], using stack frame principles, write a function that accepts float array and its size as two arguments and returns the index ‘i' as the results. This version, use CALL/PROC technique.

[04] Repeat Question [03] by implementing the function using PROTO/INVOKE method.

[05] Repeat Question [03] by implementing the function as a Macro.

[06] Given a structure type of "Product" with the fields string name, int id and float price. Define an array of Product type, initialize all elements to an arbitrary instance, write a code fragment to print all fields of each Product in the array.

[07] Convert the given C++ code fragment to x86 assembly code.
int a = 1234;
int b = 4321;
int c = b/a + a%b;
if(a*b>100000)
c=1;
else
c=0;

[08] Find the final binary and hex value of EAX for the following code fragment:
mov eax, 01233210h
mov ebx, 10101010h
shl eax, 2
shr eax, 1
shrd eax, ebx, 2
test eax, eax
rol eax, 4

[09] Find four different ways to reset eax other than "mov eax, 0"

[10] Implement the given pseudo code:
For( each bit B in int X){
If(B)
Print "|"
Else
Print "_"
}

[11] Write a function that accepts a char array, its size and a char to search for in the given array. Use PROTO, INVOKE and LOCAL keywords.

[12] In numeral systems context, define "Weighted Positional System" mathematically by writing its formula that converts any system (base b) to decimal.

[13] Given a hypothetical computer with a CPU speed = 2.4GHz and RAM capacity - 8GB. Answer the following:

1. If the MUL instruction requires 100 clock cycles, ideally speaking, how many MUL operations can this system perform in 4 seconds.

2. Compute number of lines in the address bus required so that the CPU can access all memory locations in the given RAM.

Solution Preview :

Prepared by a verified Expert
Assembly Language: Write a function that accepts a char array its size and a
Reference No:- TGS01196719

Now Priced at $75 (50% Discount)

Recommended (97%)

Rated (4.9/5)

A

Anonymous user

3/12/2016 2:50:13 AM

The assignment here belongs to or based on the X86 Assembly Language. On the basis of that, respond to the following questions. Please provide the complete programming part as well as the required output in a word document file. 1) Write down a function which accepts a char array, its size and a char to search for in the given array. Make use of PROTO, INVOKE and LOCAL keywords. 2) In numeral systems context, state ‘Weighted Positional System’ mathematically via writing its formula which transforms any system (base b) to decimal. 3) Provided a hypothetical computer by means of a CPU speed = 2.4GHz and RAM capacity - 8GB. Answer the given: a) If MUL instruction needs 100 clock cycles, preferably speaking, determine how many MUL operations this system can do in 4 seconds. b) Calculate number of lines in the address bus required in such a way that the CPU can access all the memory locations in given RAM.