Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

please transfer those 2 c language to HLA assembly language! SAMPLE C CODE: (1)

ID: 3913741 • Letter: P

Question

please transfer those 2 c language to HLA assembly language!

SAMPLE C CODE: (1)
------------------------
int i, first, second;
printf( "Provide a first number: " );
scanf( &first );
printf( "Provide an second number: " );
scanf( &second);

if (first > 0) {

for (i = 1; i >= second; i++ )
{
if (i != 1)
{
printf( "_" );
}

printf( "%d", first );
printf( "%d", second );

}
printf( " " );

}

sample output 1:

Provide a first number: 12
Provide an second number: 5
125_125_125_125_125

Provide a first number: 44
Provide an second number: 1
441

Provide a first number: 12
Provide an second number: -5

Provide a first number: -1
Provide an second number: 12

sample c code (2):

------------------------
int i, j, n;
printf( "Feed Me:" );
scanf( "%d", &n );
// the top half of the arrow...
for( i = 1; i <= n; i++ ) {

for (j = 1; j <= i; j++) {
printf( "X" );
}

printf( " " );

}
// the bottom half of the arrow...
for (i = n - 1; i >= 1; i--) {

for (j = 1; j <= i; j++) {
printf( "X" );
}
printf( " " );

}

sample output 2:

Feed Me: 3
X
XX
XXX
XX
X

Feed Me: -6


Feed Me: 5
X
XX
XXX
XXXX
XXXXX
XXXX
XXX
XX
X

Explanation / Answer

-----------------------------------------------------------------------------------------------------------

Assembly Program 1:

-----------------------------------------------------------------------------------------------------------

.

.LC0:

.string "Provide a first number: "

.LC1:

.string "%d"

.LC2:

.string "Provide an second number: "

main:

push rbp

mov rbp, rsp

sub rsp, 16

mov edi, OFFSET FLAT:.LC0

mov eax, 0

call printf

lea rax, [rbp-8]

mov rsi, rax

mov edi, OFFSET FLAT:.LC1

mov eax, 0

call scanf

mov edi, OFFSET FLAT:.LC2

mov eax, 0

call printf

lea rax, [rbp-12]

mov rsi, rax

mov edi, OFFSET FLAT:.LC1

mov eax, 0

call scanf

mov eax, DWORD PTR [rbp-8]

test eax, eax

jle .L2

mov DWORD PTR [rbp-4], 1

.L5:

mov eax, DWORD PTR [rbp-12]

cmp DWORD PTR [rbp-4], eax

jg .L3

cmp DWORD PTR [rbp-4], 1

je .L4

mov edi, 95

call putchar

.L4:

mov eax, DWORD PTR [rbp-8]

mov esi, eax

mov edi, OFFSET FLAT:.LC1

mov eax, 0

call printf

mov eax, DWORD PTR [rbp-12]

mov esi, eax

mov edi, OFFSET FLAT:.LC1

mov eax, 0

call printf

add DWORD PTR [rbp-4], 1

jmp .L5

.L3:

mov edi, 10

call putchar

.L2:

mov eax, 0

leave

ret

----------------------------------------------------------------------------------------

Assembly Program 2:

----------------------------------------------------------------------------------------

.

.LC0:

.string "Feed Me:"

.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], 1

.L5:

mov eax, DWORD PTR [rbp-12]

cmp DWORD PTR [rbp-4], eax

jg .L2

mov DWORD PTR [rbp-8], 1

.L4:

mov eax, DWORD PTR [rbp-8]

cmp eax, DWORD PTR [rbp-4]

jg .L3

mov edi, 88

call putchar

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, DWORD PTR [rbp-12]

sub eax, 1

mov DWORD PTR [rbp-4], eax

.L9:

cmp DWORD PTR [rbp-4], 0

jle .L6

mov DWORD PTR [rbp-8], 1

.L8:

mov eax, DWORD PTR [rbp-8]

cmp eax, DWORD PTR [rbp-4]

jg .L7

mov edi, 88

call putchar

add DWORD PTR [rbp-8], 1

jmp .L8

.L7:

mov edi, 10

call putchar

sub DWORD PTR [rbp-4], 1

jmp .L9

.L6:

mov eax, 0

leave

ret