🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1404

Re: Wyświetlanie liczb od 90 do 100

#1404
From: Doleś
Date: Fri, 03 Aug 2007 10:51
54 lines
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-mail
References: <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