| Author |
Message
|
_piotr86_ Poziom 3

Joined: 15 Jan 2009 Posts: 5
|
#1
14 May 2009 19:35 Asembler (Gnu As) - prosty programik |
|
|
|
Witam! Mam tablice danych .byte. Chce wyswietlic jakis element (np. pierwszy), tzn. odpowiednik liczby w tablicy ASCII. Dlaczego to nie dziala? (GNU As)
| Code: |
############################################
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...
mov $1, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80
############################### |
Po prostu nic mi nie wypisuje :(
Prosze o pomoc....
Pozdrawiam
Piotr
Proszę umieszczać kod w znacznikach [code] - poprawiłem.
[Dr.Vee]
|
|
| Back to top |
|
 |
Google

|
#
14 May 2009 19:35 |
|
|
|
|
|
| Back to top |
|
 |
Dr.Vee Poziom 22

Joined: 16 May 2008 Posts: 1808 Location: Wrocław
|
#2
14 May 2009 21:34 Re: Asembler (Gnu As) - prosty programik |
|
|
|
Wszystko jest źle ;)
Spróbuj:
| Code: |
movl $SYSWRITE, %eax
movl $STDOUT, %ebx
movl $data1, %ecx
movl $1, %edx
int $0x80 |
Pozdrawiam,
Dr.Vee
|
|
| Back to top |
|
 |
_piotr86_ Poziom 3

Joined: 15 Jan 2009 Posts: 5
|
#3
14 May 2009 21:45 Re: Asembler (Gnu As) - prosty programik |
|
|
|
Dzieki, ale to mnie nie urzadza...
Tez tak probowalem i dziala... Tylko pojawia sie drugi problem... Jak dobrac sie do drugiego elementu tablicy, trzeciego itd.????
Pozdrawiam serdecznie i prosze jeszcze o pomoc
Piotr
|
|
| Back to top |
|
 |
Google

|
#
14 May 2009 21:45 |
|
|
|
|
|
| Back to top |
|
 |
Dr.Vee Poziom 22

Joined: 16 May 2008 Posts: 1808 Location: Wrocław
|
#4
14 May 2009 22:50 Re: Asembler (Gnu As) - prosty programik |
|
|
|
Możesz zrobić tak:
| Code: |
movl $data1, %edi
leal 1(%edi), %ecx |
Ewentualnie:
| Code: |
movl $data1, %ecx
addl $1, %ecx |
Albo też:
| Code: |
movl $1, %edi
leal data1(%edi), %ecx |
Pozdrawiam,
Dr.Vee
|
|
| Back to top |
|
 |
_piotr86_ Poziom 3

Joined: 15 Jan 2009 Posts: 5
|
#5
15 May 2009 01:07 Re: Asembler (Gnu As) - prosty programik |
|
|
|
| Dr.Vee wrote: |
Możesz zrobić tak:
| Code: |
movl $data1, %edi
leal 1(%edi), %ecx |
Ewentualnie:
| Code: |
movl $data1, %ecx
addl $1, %ecx |
Albo też:
| Code: |
movl $1, %edi
leal data1(%edi), %ecx |
Pozdrawiam,
Dr.Vee |
Niestety nie za bardzo chce to dzialac :( . Nic nie wypisuje... (bledow tez nie ma)
|
|
| Back to top |
|
 |
Dr.Vee Poziom 22

Joined: 16 May 2008 Posts: 1808 Location: Wrocław
|
#6
15 May 2009 11:01 Re: Asembler (Gnu As) - prosty programik |
|
|
|
No chyba nie muszę za Ciebie pisać całego kodu...
Tymi przykładami zastąp linię
Każdy z podanych przykładów działa na moim systemie (linux i386).
Pozdrawiam,
Dr.Vee
|
|
| Back to top |
|
 |
Google

|
#
15 May 2009 11:01 |
|
|
|
|
|
| Back to top |
|
 |
_piotr86_ Poziom 3

Joined: 15 Jan 2009 Posts: 5
|
#7
18 May 2009 02:23 Re: Asembler (Gnu As) - prosty programik |
|
|
|
Slicznie Ci dziekuje... Napisalem pierwsza instrukcje i dziala... Prosze jeszcze o pomoc... wydawalo to mi sie banalne... ale niestety znowu mi tradycyjnie nie dziala :(
Program teraz wyswietla mi odpowiedniki w ASCII elementu tablicy data1 ... Jaka instrukcja "zamienie" to na cyfry???
Probuje dodac 0x30
... Ale to jest zle...
Liczbe data1, mam tak napisana:
| Code: |
data1:
.byte 0x00, 0x00, 0x00 itd... |
czyli po dodaniu 0x30 powinien dostac znak '0' i to ladnie powinno mi wypisac... Niestety tego nie robi...
Prosze o pomoc...
Pozdrawiam serdecznie
Piotr
|
|
| Back to top |
|
 |
pawelhabas Poziom 4

Joined: 07 Jun 2008 Posts: 10 Location: Tczew
|
#8
18 May 2009 23:28 Re: Asembler (Gnu As) - prosty programik |
|
|
|
Przestaw operandy.
|
|
| Back to top |
|
 |