#nasm #assembler #linux #informatyka #programowanie
Jak definiować i tworzyć programy w nasmie?
Na wykładach był pokazany jedynie program typowy "hello world" , zaś zadane zadania to program ma dostać od użytkownika 2 liczby i je dodać, a 2 program to tworzenie pliku który zapisuję naszą wiadomość ( ಠ_ಠ)(╯︵╰,)
Jak definiować i tworzyć programy w nasmie?
Na wykładach był pokazany jedynie program typowy "hello world" , zaś zadane zadania to program ma dostać od użytkownika 2 liczby i je dodać, a 2 program to tworzenie pliku który zapisuję naszą wiadomość ( ಠ_ಠ)(╯︵╰,)
Mam coś takiego
hello:
push rbp ; robimy ramkę stosu
mov rbp, rsp
sub rsp, 16 ; stack musi być wyrównany do 16 bajtów w SysV ABI, ofc w tym przykładzie w ogóle nie muszę sobie robić tych 16 bajtów, bo ich nie używam, ale wstawiam, żeby napisać ten komentarz o wyrównaniu stosu :P
mov rcx, 10 ; loop counter
hello_loop:
mov rdi, hello_fmt
mov rsi,
https://www.youtube.com/watch?v=OTLyD2EEN0w&list=PL7CA8FE35B665D4DD
@zwei: Te 8 bajtów zostanie zajęte przez "return adress" pod który ma wrócic funkcja po wywołaniu. Jest to zazwyczaj odkładane na stosie przez "call" i zdejmowane przez "ret"