🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Prosty programik, ale nie dziala...

#1906
From: Bogdan (bogdro)
Date: Fri, 15 May 2009 15:43
65 lines
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-mail
References: <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