Pomoc z assemblerem

0

Witam,
mam problem z zaliczeniem przedmiotu. Któryś już raz poprawiam kolokwium, ucząc się za każdym razem od początku i nadal nie wiem co piszę źle.
Jakby ktoś byłby w stanie spojrzeć na przykładowe zadania i wesprzeć mnie, byłabym wdzięczna za każdą pomoc.

https://hastebin.com/uwexapuduh.m

1

No to czego nie rozumiesz? Co próbujesz zrozumieć? Może uda mi się podopowiedzieć.
Rzecz, którą sama możesz zrobić — poczytaj o rejestrach i instrukcjach, które są używane (np. tu: https://c9x.me/x86/html/file_module_x86_id_5.html). Następnie weź debugger i instrukcja po instrukcji patrz jak ci się zmienia stan. Też warto użyć gcc żeby wygenerować kod assemblerowy.

9:11:45:lew@lenh in ~ : cat /tmp/x.c 
#include <stdio.h>

int main() {
    printf( "Hello world\n" );
    return 0;
}

9:11:58:lew@lenh in ~ : gcc -S -O3 /tmp/x.c -o /tmp/x.s 

9:12:07:lew@lenh in ~ : cat /tmp/x.s 
	.file	"x.c"
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Hello world"
	.section	.text.startup,"ax",@progbits
	.p2align 4,,15
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	leaq	.LC0(%rip), %rdi
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	call	puts@PLT
	xorl	%eax, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (GNU) 7.2.1 20171224"
	.section	.note.GNU-stack,"",@progbits

1 użytkowników online, w tym zalogowanych: 0, gości: 1