Article View: pl.comp.lang.asm
Article #1404Re: Wyświetlanie liczb od 90 do 100
From: Doleś
Date: Fri, 03 Aug 2007 10:51
Date: Fri, 03 Aug 2007 10:51
54 lines
3110 bytes
3110 bytes
Kicer wrote: > Doleś wrote: > >> Mam niemały problem z moim programem, który pisałem na Linuksie. Zatem >> naskrobałem taki właśnie kod: >> >> format ELF executable >> >> segment readable executable >> _start: >> >> mov dx,90; od tej liczby zaczynam wyświetlać >> mov cx, 10; robię licznik dla pętli > > tworzysz 32 bitowy program używaj wiec mov edx,90 i analogicznie ecx >> >> wyswietlanie: ;pętla wyświetlająca >> push cx ;wydaje mi się, że skoro będę używał funkcji sys_write >> push dx ; to muszę te rejestry odłożyć na stos bo będą zmodyfikowane > > znowu edx i ecx :) > >> mov eax, 4 >> mov ebx, 1 >> mov ecx,[edx] > ładujesz do ecx wartość z komórki pamieci o offcecie edx (za pierwszym razem > jest to 90) względem segmentu danych, chyba nie o to chodzilo :) >> mov edx, 1 ; wg moich założeń znak powinien zostać wyświetlony >> int 80h > nie wiem jak to jest z funkcjami w linuxie ale powolując się na: > http://rudy.mif.pg.gda.pl/~bogdro/linux/przer80h_1.html > śmiem twierdzić ze próbujesz zapisywać dane do pliku ;) >> xor ecx,ecx ;nie wiem po co ale zeruję rejestr ecx > niepotrzebne ;) >> pop dx ;przywracam stare wartości >> pop cx >> inc dx ;zwiększam dx aby mieć koleją liczbę do wyświetlnia > edx ecx edx >> loop wyswietlanie >> >> mov eax, 1 >> int 80h > tu juz dobra funkcja :) >> Niestety po skompilowaniu tego program i uruchomieniu mam błąd >> "Naruszenie ochrony pamięci". Nie mam IQ na poziomie 180 więc nie wiem, >> gdzie popełniłem błąd, tym bardziej, że w moim mniemaniu napisałem dobry >> algorytm. Byłbym wdzięczny za pomoc. > Wielkie dzięki. Nie używałem rejestrów 32 bitowych bo sobie ubzdurałem, że to marnotractwo. Przyzwyczaiłem się nieco do książki "Assembler dla procesorów Intel. Vademecuum Profesjonalisty" a tam jest właśnie zdecydowana większość kodów napisana na rejestrach 16 bitowych, niemniej 32 też istnieją i to nawet w jednym programie. No cóż najwyraźniej łapię złe nawyki na początek :) Jeszcze raz dziękuję za pomoc.
Technical Details
Message-ID:
<f8v1lb$h7o$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<f8upq6$pn3$1@nemesis.news.tpi.pl> <f8uvai$1gn$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Doleś <doles2@gmail.com> Newsgroups: pl.comp.lang.asm Subject: Re: Wyświetlanie liczb od 90 do 100 Date: Fri, 03 Aug 2007 12:51:43 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 54 Message-ID: <f8v1lb$h7o$1@nemesis.news.tpi.pl> References: <f8upq6$pn3$1@nemesis.news.tpi.pl> <f8uvai$1gn$1@inews.gazeta.pl> NNTP-Posting-Host: abws174.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1186138603 17656 83.8.242.174 (3 Aug 2007 10:56:43 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Fri, 3 Aug 2007 10:56:43 +0000 (UTC) User-Agent: Thunderbird 2.0.0.5 (X11/20070716) In-Reply-To: <f8uvai$1gn$1@inews.gazeta.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit