Article View: pl.comp.lang.asm
Article #1906Re: Prosty programik, ale nie dziala...
From: Bogdan (bogdro)
Date: Fri, 15 May 2009 15:43
Date: Fri, 15 May 2009 15:43
65 lines
2611 bytes
2611 bytes
Piotr pisze: > Witam! Mam tablice danych .byte. Chce wyswietlic jakis element (np. > pierwszy), tzn. odpowiednik liczby w tablicy ASCII. Dlaczego to nie > dziala? (GNU As) > > ############################################ > > SYSEXIT = 1 > SYSREAD = 3 > SYSWRITE = 4 > STDOUT = 1 > STDIN = 0 > EXIT_SUCCESS = 0 > > .section .data > > data1: > .byte 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30 > > > .section .text > > .globl _start > > _start: > > mov $0, %edi > > > mov $SYSWRITE, %eax > mov $STDOUT, %ebx > mov data1(,%edi,1), %ecx # - chyba ta linijka jest zla... Tak, raczej tak. Tutaj do %ecx ładujesz zawartość komórki o numerze %edi z tablicy "data1". W składni intela, jeśli znasz, wyglądałoby to tak: mov ecx, [data1+edi] a tymczasem w ECX ma być wskaźnik do bufora z danymi (innymi słowy - adres bufora z danymi). Można to osiagnąć na co najmniej dwa sposoby: 1. Użyć LEA zamiast MOV: lea data1(,%edi,1), %ecx Ta instrukcja załaduje do %ecx adres pierwszego argumentu instrukcji, czyli adres zmiennej o adresie "data1(,%edi,1)". 2. Wpisać adres bezpośrednio do %ecx. Nie jestem biegły w AT&T, ale myślę, że powinno to wyglądać tak: mov $data1(,%edi,1), %ecx (tzn. ze znakiem dolara przed zmienną). [...] > Po prostu nic mi nie wypisuje :( Ale, patrząc z pozytywnej strony, program nie jest mordowany przez system :) (a tak się mogło zdarzyć). -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<guk2ja$ka5$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<guho5b$j38$1@atlantis.news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Prosty programik, ale nie dziala... Date: Fri, 15 May 2009 17:43:36 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 65 Message-ID: <guk2ja$ka5$1@inews.gazeta.pl> References: <guho5b$j38$1@atlantis.news.neostrada.pl> NNTP-Posting-Host: 124.235.114.223 Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1242402220 20805 124.235.114.223 (15 May 2009 15:43:40 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 15 May 2009 15:43:40 +0000 (UTC) X-User: bog.d In-Reply-To: <guho5b$j38$1@atlantis.news.neostrada.pl> User-Agent: Thunderbird 2.0.0.21 (X11/20090302) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit