Convert the following C code into MIPS using MARS simulator
Convert the following C code into MIPS using MARS simulator:
 
 Part a
 
 #include
int main()
{
// Declare string
char name[100];
// Read string
printf(\"Enter your name: \");
scanf(\"%s\", name);
// Print string
printf(\"Hello, %s\ \", name);
return 0;
}
 
 Part b
 
 #include
 
 int main()
 {
 // Read string
 char s[20];
 printf(\"Enter a string: \");
 scanf(\"%s\", s);
 // Check first character
 char c = s[0];
 if (c >= \'a\' && c <= \'z\')
 {
 printf(\"The first character is a lower-case letter\ \");
 }
 else
 {
 printf(\"The first character is not a lower-case letter\ \");
 }
 // Done
 return 0;
 }
Solution
Part 1:
.LC0:
 .string \"Enter your name: \"
 .LC1:
 .string \"%s\"
 .LC2:
 .string \"Hello, %s\ \"
 main:
 push rbp
 mov rbp, rsp
 sub rsp, 112
 mov edi, OFFSET FLAT:.LC0
 mov eax, 0
 call printf
 lea rax, [rbp-112]
 mov rsi, rax
 mov edi, OFFSET FLAT:.LC1
 mov eax, 0
 call scanf
 lea rax, [rbp-112]
 mov rsi, rax
 mov edi, OFFSET FLAT:.LC2
 mov eax, 0
 call printf
 mov eax, 0
 leave
 ret
Part 2:
.LC0:
 .string \"Enter a string: \"
 .LC1:
 .string \"%s\"
 .LC2:
 .string \"The first character is a lower-case letter\"
 .LC3:
 .string \"The first character is not a lower-case letter\"
 main:
 push rbp
 mov rbp, rsp
 sub rsp, 32
 mov edi, OFFSET FLAT:.LC0
 mov eax, 0
 call printf
 lea rax, [rbp-32]
 mov rsi, rax
 mov edi, OFFSET FLAT:.LC1
 mov eax, 0
 call scanf
 movzx eax, BYTE PTR [rbp-32]
 mov BYTE PTR [rbp-1], al
 cmp BYTE PTR [rbp-1], 96
 jle .L2
 cmp BYTE PTR [rbp-1], 122
 jg .L2
 mov edi, OFFSET FLAT:.LC2
 call puts
 jmp .L3
 .L2:
 mov edi, OFFSET FLAT:.LC3
 call puts
 .L3:
 mov eax, 0
 leave
 ret
![Convert the following C code into MIPS using MARS simulator: Part a #include int main() { // Declare string char name[100]; // Read string printf(\ Convert the following C code into MIPS using MARS simulator: Part a #include int main() { // Declare string char name[100]; // Read string printf(\](/WebImages/43/convert-the-following-c-code-into-mips-using-mars-simulator-1135950-1761607993-0.webp)
![Convert the following C code into MIPS using MARS simulator: Part a #include int main() { // Declare string char name[100]; // Read string printf(\ Convert the following C code into MIPS using MARS simulator: Part a #include int main() { // Declare string char name[100]; // Read string printf(\](/WebImages/43/convert-the-following-c-code-into-mips-using-mars-simulator-1135950-1761607993-1.webp)
