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

Asemblerski kod u C/C++/win32

[es] :: Asembler :: Asemblerski kod u C/C++/win32

[ Pregleda: 2584 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rapidlord
Vladan Markovic
softver inzinjer - V5Play
KG

Član broj: 10145
Poruke: 418
*.kg.sbb.co.yu.

ICQ: 83880106


Profil

icon Asemblerski kod u C/C++/win3206.04.2005. u 14:12

Imam kod jedne aplikacije pisan u standardnom C/C++ za Palm OS, kod treba da prebacim na PC (Windows) sa MFC-om, E sad u tom kodu postoje par funkcija koje su u asembleru , radio sam nesto malo u asembleru ali ne dovoljno da bi ukapirao o cemu se ovde radi, kod je sledeci:

Code:

static asm UInt8* GetGamn()
{
    lea     racer_gamn, a0
    rts
racer_gamn:
    dc.b 0x03,0xff,0x00,0x00,0xff,0x00,0x00,0xf1
    dc.b 0x0e,0x00,0xcd,0x32,0x00,0xa3,0x5c,0x00
    dc.b 0x6a,0x94,0x01,0x04,0x2b,0xd4,0x00,0x00
    dc.b 0x2b,0xd4,0x00,0x00,0x23,0xdc,0x00,0x00
    dc.b 0x23,0xdc,0x00,0x00,0x1c,0xe2,0x01,0x00
    dc.b 0x1c,0xd4,0x0f,0x00,0x1c,0xd7,0x0c,0x00
    dc.b 0x1c,0xc2,0x21,0x00,0x15,0xb5,0x35,0x00
    dc.b 0x0e,0xa3,0x4d,0x01,0x07,0x74,0x80,0x04
    dc.b 0x05,0x2b,0xd4,0x00,0x00,0x00,0x23,0xdc
    ... jos pedesetak slicnih linija ...
    ..
}


a ova funkcija se koristi u sledecoj funkciji:

Code:

set_gamn(GetGamn());
//gde je :
void set_gamn(byte* gamn)
{
...
}


Dali moze neko da mi kaze kako bi ova prva funkcija trebala da izgleda ako bi je radili za Windows, bilo kakva pomoc bi mi dobro dosla.

p.s. Kako neko moze uopste da zna o cemu se radi u ovoj sumi brojeva, dali postoji neki konverter ili nesto slicno???

Hvala.
06.04.2005. u 14:12 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.beotel.net.

Sajt: nonenone.net


Profil

icon Re: Asemblerski kod u C/C++/win3207.04.2005. u 00:32
Meni ovo deluje kao vraćanje podataka iz funkcije s obzirom na logiku koda, mada može biti da je to binarni kod...
No da se držim prve pretpostavke...
Ovo sve možeš ovako prekucati (bcc32 trip):
Code:

char *GetGamn(){
__asm{
    mov eax, offset racer_gamn
    ret
racer_gamn:
    db 0x03,0xff,0x00,0x00,0xff,0x00,0x00,0xf1
    db 0x0e,0x00,0xcd,0x32,0x00,0xa3,0x5c,0x00
    db 0x6a,0x94,0x01,0x04,0x2b,0xd4,0x00,0x00
    db 0x2b,0xd4,0x00,0x00,0x23,0xdc,0x00,0x00
    db 0x23,0xdc,0x00,0x00,0x1c,0xe2,0x01,0x00
    db 0x1c,0xd4,0x0f,0x00,0x1c,0xd7,0x0c,0x00
    db 0x1c,0xc2,0x21,0x00,0x15,0xb5,0x35,0x00
    db 0x0e,0xa3,0x4d,0x01,0x07,0x74,0x80,0x04
    db 0x05,0x2b,0xd4,0x00,0x00,0x00,0x23,0xdc
    .
    ..
 }
}


Citat:

p.s. Kako neko moze uopste da zna o cemu se radi u ovoj sumi brojeva, dali postoji neki konverter ili nesto slicno???


Ne možeš znati :) Prati logiku programa da vidiš da li su podaci ili binarni kod, ako su podaci ostaviš tako kako jeste, ako je binarni kod poteraš ga kroz neki disassembler ili debugger i vidiš kako radi :)
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
07.04.2005. u 00:32 

Sundance

Član broj: 7510
Poruke: 2559
*.sava.sczg.hr.

ICQ: 106979934


Profil

icon Re: Asemblerski kod u C/C++/win3209.04.2005. u 21:20
Laptopovi

Vojislave, mislim da je ovaj binarni kod specifičan za PalmOS arhitekturu (šta on uopće koristi, neki RISC? :). Daj cijeli kod (ostale linije) i saznaj za koji OS, pa ćemo ti dati disasm iz IDA-e, pa možda ako netko zna prepiše ga za x86.
09.04.2005. u 21:20 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
194.106.165.*

Sajt: nonenone.net


Profil

icon Re: Asemblerski kod u C/C++/win3209.04.2005. u 21:51
Nemam pojma meni baš liči na neke podatke, ali šta ga znam možda i jeste binarno :) z0mbie u PalmOS-u :)))
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
09.04.2005. u 21:51 

rapidlord
Vladan Markovic
softver inzinjer - V5Play
KG

Član broj: 10145
Poruke: 418
*.kg.sbb.co.yu.

ICQ: 83880106


Profil

icon Re: Asemblerski kod u C/C++/win3213.04.2005. u 10:56
Evo sta mi je jedan lik odgovorio na pocketpcdn forumu, i mislim da je upravu, kompajlira mi se OK, jos cu da vidim dali i app. radi ok, mozda samo bude pravilo problem little/big endian jer se razlikuje na Palm/PPC.

Citat:

All that code is doing is returning the address of the byte buffer. No need to do that in asm on pocket pc.

Put the data table in a binary file and stick it in your resouses, then use LoadResource() to get a pointer to it.

or

create a fixed array in memory and use the array pointer:
BYTE racer_gamn[] = { 0x03, 0xff, ... };

Cheers,

Pete


Slican odgovor sam imao jos na jednom forumu.
13.04.2005. u 10:56 

Nothingman

Član broj: 31375
Poruke: 261
*.teol.net.



Profil

icon Re: Asemblerski kod u C/C++/win3213.04.2005. u 11:07
Pa to ti je rekao i Vojislav ;)

Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
13.04.2005. u 11:07 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
194.106.165.*

Sajt: nonenone.net


Profil

icon Re: Asemblerski kod u C/C++/win3213.04.2005. u 11:43
hehe :)) Da :))) kao što sam i pretpostavio, podaci su u pitanju :)
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
13.04.2005. u 11:43 

Sundance

Član broj: 7510
Poruke: 2559
*.sava.sczg.hr.

ICQ: 106979934


Profil

icon Re: Asemblerski kod u C/C++/win3218.04.2005. u 14:51
Ma džaba ti što se kompajlira, ako taj PocketPC nema x86 u sebi, to je kod za neki drugi procesor i neće dobro radit!

Ako ima onda OK.
18.04.2005. u 14:51 

[es] :: Asembler :: Asemblerski kod u C/C++/win32

[ Pregleda: 2584 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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