[SOLVED] 代写 algorithm assembly Computing Machinery I

30 $

File Name: 代写_algorithm_assembly_Computing_Machinery_I.zip
File Size: 442.74 KB

SKU: 6593781719 Category: Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Or Upload Your Assignment Here:


Computing Machinery I
Assignment 2

Integer Multiplication using Add and Shift Operations

Create an ARMv8 assembly language program that implements the following integer multiplication program:

include stdio.h
define FALSE 0
define TRUE1

int main

int multiplier, multiplicand, product, i, negative;
long int result, temp1, temp2;

Initialize variables
multiplicand16843010;
multiplier70;
product0;

Print out initial values of variables
printfmultiplier0x08x dmultiplicand0x08x dnn,
multiplier, multiplier, multiplicand, multiplicand;

Determine if multiplier is negative
negativemultiplier0 ? TRUE : FALSE;

Do repeated add and shift
for i0; i32; i
if multiplier0x1
productproductmultiplicand;

Arithmetic shift right the combined product and multiplier
multipliermultiplier1;
if product0x1
multipliermultiplier0x80000000;
else
multipliermultiplier0x7FFFFFFF;

productproduct1;

Adjust product register if multiplier is negative
if negative
productproductmultiplicand;

Print out product and multiplier
printfproduct0x08xmultiplier0x08xn,
product, multiplier;

Combine product and multiplier together
temp1long intproduct0xFFFFFFFF;
temp1temp132;
temp2long intmultiplier0xFFFFFFFF;
resulttemp1temp2;

Print out 64bit result
printf64bit result0x016lx ldn, result, result;

return 0;

Be sure to use 32bit registers for variables declared using int, and 64bit registers for variables declared using long int. Use m4 macros to name the registers to make your code more readable. Name the program assign2a.asm. Optimize your code so that it uses as few instructions as possible.

Also run the program in gdb, displaying the contents of key registers as the program executes; you should show that the algorithm is working as expected. Capture the gdb session using the Unix command script and name the output file script.txt.

Create a second version of the program called assign2b.asm that uses 522133279 for the multiplicand, and 200 for the multiplier. Also create a third version of the program called assign2c.asm that uses 252645136 for the multiplicand, and 256 for the multiplier.

Other Requirements

Make sure your code is properly formatted into columns, is readable and fully documented, and includes identifying information at the top of each file. You must comment each line of assembly code. Your code should also be well designed: make sure it is well organized, clear, and concise.

New Skills Needed for this Assignment:

Use of bitwise logical and shift operations
Use of branching and condition code tests
Understanding of hexadecimal and binary numbers

Submit the following:

Your assembly source code files for the 3 programs, and your script output file. Use the Assignment 2 Dropbox Folder in D2L to submit electronically. The TA will assemble and run your programs to test them. Be sure to name your programs and script file as described above.
Computing Machinery I
Assignment 2 Grading

Student:

Functionality:

Correct calculation of product4

Use of bit masking6

Use of shift instructions3

Display to screen3

Optimization3

Script showing gdb session3

Complete documentation and commenting4

Formatting use of columns and white space4

Design quality2

Version 22

Version 32

Total36

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] 代写 algorithm assembly Computing Machinery I
30 $