• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Echo assembler

Object Storage Arubacloud
0 głosów
443 wizyt
pytanie zadane 2 listopada 2017 w Assembler przez Bish0p Obywatel (1,940 p.)

Witam próbuje ostatnio zrobić tzw. echo w assemblerze

Na początku probowałem przy użyciu printf oraz scanf lecz niestety nie działało

extern printf
extern scanf

section .data
napis2    db    "%s",10,0
napis1    db    "Wpisz q zeby wyjsc",10,0

global main
main:

_petla:
mov rdi,qword napis2
xor rax,rax
call printf

mov rdi,napis2
xor rax,rax
call scanf

cmp qword[napis2],'q'
je _koniec

mov rdi,napis2
xor rax,rax
call printf

jmp _petla

_koniec:
mov eax,1
mov ebx,0
int 80h

A następnie postawiłem sprobować bez tych funkcji i wtedy już działało ale ...

Nie działało wyjście przy pomocy q oraz czasami wypisywało mi znaki/wyrazy z poprzedniej petli echa

section .data
napis1	db	"%s",10,0
napis2	db	"Wpisz q zeby wyjsc",10,0
napis2_dl	equ	$-napis2

section .bss
echo	resb	32

section .text
global _start
_start:

_petla:
mov eax,4
mov ebx,1
mov ecx,napis2
mov edx,napis2_dl
int 80h

mov eax,3
mov ebx,0
mov ecx,echo
mov edx,32
int 80h

cmp ecx,"q"
je _koniec

mov eax,4
mov ebx,1
mov ecx,echo
mov edx,32
int 80h

xor rax,rax

jmp _petla

_koniec:
mov eax,1
mov ebx,0
int 80h

Byłbym bardzo wdzięczny za znalezienie błędów i pomoc w ich naprawie w obu programach :D

Z góry dzieki i pozdrawiam

komentarz 2 listopada 2017 przez Chess Szeryf (76,710 p.)
Czy mógłbyś napisać, jak kompilujesz ten program, bo mi po wpisaniu tego:

nasm -fwin32 uds.asm

wyrzuca komunikat:
uds.asm:12: error: instruction not supported in 32-bit mode
komentarz 2 listopada 2017 przez Bish0p Obywatel (1,940 p.)
nasm -f elf64 echo.asm

Musisz mieć linuxa 64 bitowgo
komentarz 2 listopada 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
To logiczne, że funkcje printf , czy scanf nie będą Ci działały, jeśli wywołujesz nasma w ten sposób. One są częścią biblioteki standardowej języka C. W poprzednim twoim pytaniu, w którym udzieliłem Ci odpowiedzi (a do teraz nie otrzymałem informacji, czy Cię ona satysfakcjonuje), jeśli dobrze pamiętam, to podałem, jak należy kompilować i linkować taki program.
komentarz 2 listopada 2017 przez Bish0p Obywatel (1,940 p.)
Tak twoja odpowiedź rozjaśniła mi sytuacje :D

Co do otwierania programu używam następujących komend:

nasm -f elf64 echo.asm

gcc echo.o -o echo

./echo

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 323 wizyt
pytanie zadane 31 maja 2021 w PHP przez Doge Gaduła (3,370 p.)
0 głosów
0 odpowiedzi 58 wizyt
pytanie zadane 14 listopada 2019 w Systemy operacyjne, programy przez bodej1 Nowicjusz (120 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...