Answered step by step
Verified Expert Solution
Question
1 Approved Answer
This is a C code conversion to MIPS assembly language question. #include #include // leaf function - convert decimal to binary in string void toBinary(int
This is a C code conversion to MIPS assembly language question.
#include#include
// leaf function - convert decimal to binary in string void toBinary(int num, char strNum[])
{ int i;
for(i = 7; i >= 0; i--){ // index 7 is the LSB (bit-0) int rem = num & 0x01; // retrieve remainder num = num >> 1; // shift right by 1 bit (== divide by 2)
} } strNum[i] = '0' + rem; // ascii '0' is decimal 48, '1' is 49
// non-leaf function convert decimal (negative) to 2s complement in string void twosComplement(int num, char strNum[])
{ int i, absolute, carry;
absolute = abs(num);
toBinary(absolute, strNum); // call toBinary for absolute value (positive) printf("absolute value = %s ", strNum);
// flip, complement for(i = 7; i >=0; i--){
if(strNum[i] == '0') elsestrNum[i] = '1';
} strNum[i] = '0'; printf("1's complement = %s ", strNum);
// add 1 for(i = 7, carry = 1; i >=0 && carry; i--){ // if carry is 0, stop!!
int sum = (strNum[i] - 48) + carry; // ascii '0' is decimal 48, '1' is 49
strNum[i] = '0' + (sum & 0x01); // logical and } carry = (sum >> 1) & 0x01; // shift right by 1 bit (divide by 2) & logical and
printf("2's complement = %s ", strNum); }
int main()
{ char Binary[10] = ""; int num;
printf("Enter a number: "); scanf("%d", &num);
if(num > 127 || numprintf("Out of Range for 8-bit singed Binary");return 0; }
if(num >= 0) // positive or 0 toBinary(num, Binary);else // negative to two's complement twosComplement(num, Binary);printf("%d's 8-bit Binary Representation is %s ",num , Binary);return 0; }
Then how do convert this to MIPS language by satisfying these requirements?
o Write a non-leaf function to convert a negative integer number to 2's complement in string Two parameters: integer number, string array or pointer "Get absolute value of the negative number Call a function that you implement from part l Flip each binary bit of the string (do 1's complement): '0' f-> 1' - Add 1 to LSB Repeat adding a carry to higher bit
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started