Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ponovo mi javlja gresku u drugom programu,pa ako moze pomoc

[es] :: Asembler :: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc

[ Pregleda: 2686 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marija_st210
Novi Sad

Član broj: 63261
Poruke: 28
213.244.197.*



Profil

icon ponovo mi javlja gresku u drugom programu,pa ako moze pomoc25.05.2007. u 06:38 - pre 205 meseci
Code:
#program: konverzija iz internog formata u ceo oktalni broj u znakovnom obliku

.section .data
broj:    .long 7628572
okt_duz=11
okt_br:    .fill okt_duz,1,0
greska:    .byte 0

.section .text
.globl main

#deklaracija funkcije na c-u glasi:
#long conv3(long broj, long duz_niz, char* niz)
#ovo znaci:
#    prvi argument je na ebp+8, prenosi se preko vrenosti (broj koji se konvertuje)
#    drugi argument je na ebp+12, prenosi se preko vrednosti (max duzina stringa)
#       treci argument je na ebp+16, prenosi se po adresi (adresa izlaznog niza)
#    greska se vraca preko povratne vrednosti f-je, odnosno preko eax
conv3:
           pushl %ebp
       movl %esp, %ebp
       movl 8(%ebp), %eax    #broj koji se konvertuje
       movl 16(%ebp), %edi  #adresa stringa
           movl $8, %ebx        #baza
c3_cifra:
           cmpl $1, 12(%ebp)    #da li ima jos mesta u stringu
       jle c3_greska
           xorl %edx, %edx      #neophodno zbog divl
           divl %ebx
           addb $'0', %dl
           movb %dl, (%edi)
           incl %edi
       decl 12(%ebp)    #u stringu sada ima jedno mesto manje
           andl %eax, %eax      #kraj algoritma?
           jnz c3_cifra
           movb $0, (%edi)      #kraj stringa
       xorl %eax, %eax      #nema greske
       
           decl %edi            #obrtanje niza
           movl 16(%ebp), %esi
c3_obrni:
           cmpl %edi, %esi
           jae c3_kraj
           movb (%esi), %bh
           movb (%edi), %bl
           movb %bl, (%esi)
           movb %bh, (%edi)
           decl %edi
           incl %esi
           jmp c3_obrni
c3_greska:
           movl $1, %eax
c3_kraj:
           movl %ebp, %esp
       popl %ebp
       ret
main:
    pushl $okt_br
    pushl $okt_duz
    pushl broj
    call conv3
    addl $12, %esp
    movb %al, greska
kraj:
    nop


Ako vidite gde je greska,napisite mi.

Meni pise segmentation fault kada kompajliram.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc26.05.2007. u 12:33 - pre 205 meseci
Nisam gledao kod (ako primetim nesto javicu ti) ali vidim da da ti uglavom imas probleme sa "kompailiranjem" == asembliranjem
Trabala bi da bolje proucis sintaksu svog asemblera i njegove opcije za asembliranje.
Pozdrav
 
Odgovor na temu

marija_st210
Novi Sad

Član broj: 63261
Poruke: 28
213.244.197.*



Profil

icon Re: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc27.05.2007. u 01:09 - pre 205 meseci
Sve sam iscitala sta imam.
Sve fakultetske skripte,praktikum,knjigu...
Ne mogu da se snadjem u knoppix okruzenju u onom njihovom dibageru ddd i gledanju registara.

Ako neko ima GNU/Linux Debian neka mi kaze kako da kompajliram ovaj zadatak i kako da gledam registre.
Ja uzmem gcc -g -o program program.S
Onda uzmem status->registers i gledam registre.
I onda mi odjednom napise poruku S:32 Segmentation fault,posle pedesetak koraka,kada uzmem run opciju.

Nije mi jasno...

 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc07.06.2007. u 22:49 - pre 205 meseci
Pogledaj primer komandne linije za kompailiranje koji ti je dao rumpl u tvojoj predhodnoj temi.
Code:

$ make exo1   
cc    exo1.s   -o exo1 
$ ./exo1
Unesite ime i prezime: asdf
Vi ste: asdf

Ja radim na Windows-u ali primecujem da on ne koristi -g opciju kao ti
Pozdrav
 
Odgovor na temu

marija_st210
Novi Sad

Član broj: 63261
Poruke: 28
*.vdial.verat.net.



Profil

icon Re: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc10.06.2007. u 03:21 - pre 205 meseci
Prosao mi je ispit...
Nije vise ovo bitno...
Greska je bila u kodovima za konverziju...
Ne u dibageru...
Pozdrav!
 
Odgovor na temu

[es] :: Asembler :: ponovo mi javlja gresku u drugom programu,pa ako moze pomoc

[ Pregleda: 2686 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.