Answer:
Output:
123456
123456
123456
123456
123456
123456
Explanation:
C Code:
#include <stdio.h>
int main() {
int n,i,j;
printf("Gimme a decimal value to use as n:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=1;j<=n;j++){
printf("%d",j);
}
printf("\n");
}
return 0;
}
Equivalent assembly program:
.LC0:
.string "Gimme a decimal value to use as n:"
.LC1:
.string "%d"
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov edi, OFFSET FLAT:.LC0
mov eax, 0
call printf
lea rax, [rbp-12]
mov rsi, rax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call scanf
mov DWORD PTR [rbp-4], 0
.L5:
mov eax, DWORD PTR [rbp-12]
cmp DWORD PTR [rbp-4], eax
jge .L2
mov DWORD PTR [rbp-8], 1
.L4:
mov eax, DWORD PTR [rbp-12]
cmp DWORD PTR [rbp-8], eax
jg .L3
mov eax, DWORD PTR [rbp-8]
mov esi, eax
mov edi, OFFSET FLAT:.LC1
mov eax, 0
call printf
add DWORD PTR [rbp-8], 1
jmp .L4
.L3:
mov edi, 10
call putchar
add DWORD PTR [rbp-4], 1
jmp .L5
.L2:
mov eax, 0
leave
ret
Input:
6
The program was first written with a c code, anf and subsequently translated to an assembly language.