Reference no: EM132245698
Assignment - Write assembly functions that implement the following C functions:
a. uint32_t add32(uint32_t x, uint32_t y) // returns (x+y)%(2^32); any carry out is lost
b. uint64_t add32_64(uint32_t x, uint32_y) // returns x+y; sum contains any carry
c. uint64_t add64(uint64_t x, uint64_t y) // returns (x+y)%(2^64)
d. uint32_t shiftLeftU32 (uint32_t x, uint32_p) // returns x << p = x*2^p for p = 0..31
e. uint32_t shiftU32(uint32_t x, int32_p) // return x*2^p for p = -31..31
f. int32_t shiftLeftS32 (int32_t x, uint32_p) // returns x << p = x*2^p for p = 0..31
g. int32_t shiftS32(int32_t x, int32_p) // return x*2^p for p = -31..31
h. uint32_t isEqual32(uint32_t x, uint32_t y) // returns 1 if x=y, 0 if x!=y
i. int32_t isEqual32(int32_t x, int32_t y) // returns 1 if x=y, 0 if x!=y
j. uint32_t isEven(uint32_t x) // returns 1 if even, 0 if not even
k. uint32_t maxU32(uint32_t x, uint32_t y) // returns the maximum of x, y
l. int32_t maxS32(int32_t x, int32_t y) // returns the maximum of x, y
For each of these programs, submit a file named hw2_4x.s where x is a, b, c, d, e, f, g, h, I, j, k, or l. Each file must include assembler directives so that it can be assembled with the following command as -o hw2_4x_s.o hw2_4x.s with the function being callable from a C program.
Attachment:- Assignment Files.rar