Hogyan kell írni egy kis programot
Hogyan kell írni egy kis programot?
Kérdés, uv. varázsló, milyen modulot kell használni ahhoz, hogy írjon egy programot a rendszerleíró adatbázishoz grafikus felület nélkül való működéshez. Probyval winAPI - 14,5 kb, KOL ugyanaz. Talán van egy modul, ami még kisebbre teszi a programot. Például valahol megláttam a trójai forráskódját, így összesen 7 kb-t mérnek. Vagy ez nem történhet meg?
Meg kell írni az asbler. A Delphi még az asbler betétekkel sem segít.
És mit ír a trójairól?
8162 Kb. A standard fordító a 6. Delphi.
Assembler: C3 (ret) - 1 bájt :)
Emlékszem: fórum a Delphi-on :-)
Ne baszd meg magad! És 8192 bájtom van a D6-on :-)
És ha biztonsági másolatot is készít, akkor végre 5120 bájt lehet. Itt.
Hé, konzervatívok, akik a Delphi 1-et beszámolják az eredményeiről. )
Modest inkognitó. Már volt értelme azt mondani, hogy nem tudsz kompakt és gyors kódot találni a Delphi-on, és vannak olyan emberek, akik készek vitatkozni, de tény tény. Ez a fordítóról szól.
Egyre gyakrabban látok ilyen felhőket. Igen, és egyszer megkérdezte. Kísérletezett KOL - ez szuper a vizuális programok számára. A WinAPI is volt. De az Api egy kis perverzió. Következtetés: Az Assembler soha nem fáj. Tehát a Delphi és a minimális alkalmazás nincsenek kapcsolatban. A Delphi a fejlődés gyorsasága és a magas szintű nyelv szépsége.
És arról, hogy lehetséges-e összeszerelési kódot írni. Úgy értem, van egy különleges program erre?
Modest inkognitó. A szerelő kódja még a Jegyzettömbben is megírható (én így teszek). Az összeszereléshez még mindig vannak különböző IDE-k, például a RadAsm, az AsmEdit. Ennek eredményeképpen ez a szövegfájl össze van állítva, az objektumfájl megszerzésére kerül sor. Ezután a linkerprogrammal (Linker, általános nyelvhasználat) az objektumfájlokat összeolvasztják. például egy erőforrás-fájl, jól vagy egyszerűen egymás között. És a kimenet friss exe / com / dll / drv fájl (mindez a beállításoktól függ). A leggyakoribb szerelő (AMS, egyszerűen beszéd) a MASM és a TASM.
Hmm. Látom, hogy képviseli az összeszerelő szemszögét.
> AlexZ # xA0; (Aug. 21 04 01:29) [10]
> A Delphi nem tud kompakt és gyors kódot kapni
De az Api Delphi-ban egy kis perverzió.
Miért? Az API-funkciók hívása C programban perverzió? És az API-funkciók hívása az Asm programban perverzió? Tehát miért gondolod, hogy a Pascal programban (vagy a Fortran programban, vagy bármely más programban) ugyanazokat a funkciókat nevezed meg perverziónak? Nagyon nehéz megérteni, hogy egy CALL különbözik a másiktól.
Írtam egy programot a fájlok és egy összeállítás hálózati fájljából való letöltésre:
a tömörítés utáni esetben körülbelül 3696 б - ez nem rossz, de az asme - 1 kb-nél kevesebb. - (tömörítés után 976 bájt) kód:
kezdet:
invoking URLDownloadToFile, NULL, addr, ODR, 0, NULL
hívja a ShellExecute-t, 0, addr nyitott, addr failo, NULL, NULL, SW_NORMAL
hivatkozhat # xA0; ExitProcess, 0
vége
bár Asm esküszik erre a kódra (figyelmeztető üzenet), de működik!
De az Api Delphi-ban egy kis perverzió
Hee-hee :-))
És a ++-nél nem jelentkezik?
> AlexZ # xA0; (22.08.04 19:07) [16]
Senki sem állítja, hogy a legtöbb kompakt és gyors kódot kap Asma (és még inkább kompakt és gyors - közvetlenül a gépi kód, ha van elég türelme).
De mi köze hozzá Delphinek? Lehetséges összehasonlítani az Asm-szal? Összehasonlítsuk a ONE osztályú termékeket, ha szeretnénk becsléseket készíteni - egy ilyen összehasonlítás helyes lesz.
És miért van a Delphi a WinAPI-val a "koryachitsya" -ra? Nem értem. Minden WinAPI-hívást a Delphi-ba ír, pontosan ugyanúgy, mint a C-re és más JAV-ra. Hol van a "koryachenie"?
Ha "koryachenie" -ről akarunk beszélni, akkor leginkább a WinAPI hívásokkal kell foglalkoznunk az Asmán. A regiszterek mögött magad kövesse a köteget - és mindez ugyanazért a CALL csapatért. Természetesen világos, hogy ez a leggyorsabb és legösszetettebb kód - de ha "koryachene" -ről beszélünk, akkor ez is az.
> AlexZ # xA0; (Aug. 22, 04 20:43) [19]
Nem, nem értettél meg: csak azt mondtam a személynek: "Akarsz
> Gyors kód egy pár KB-ban? - Vegyük az Asm-ot, és ne torzítsuk a yazyke-t
> magas szint
Megértettem önt, ahogy maga mondta: (lásd [10]):
1. "Delphi-on nem lehet kompakt és gyors kódot kapni."
2. "De az Api Delphi-ben egy kis perverzió".
Amint látja, mindkét esetben kifejezetten a Delphi-ról beszélt, és nem a "_Language_ of high level" -ről. Abban az időben minden JAVA-ról beszélni kellett, és Delphinek semmi köze ehhez. Amire reagáltam [14].
> Összeszereli azt Assemblerrel és a programjával
> elindul a ret paranccsal (C3k opcode, $ C3 Pascalban).
> A szerelő a feltételes parancsokat a megfelelőikbe fordítja
> opcodes (byte kombinációk)
Kérjük, ne vesztegesd a felesleges magyarázatokat. Mind az Asmában, mind a kódokban írtam - és mégsem mindent elfelejtettem. o)
> ezért semmi fölösleges egyszerűen nem lehet.
És itt, az IMHO, tévednek. Assembler - ez is csak egy fordító, nem mesterséges intelligencia és modern feldolgozók - egy bonyolult dolog. Ha az AFM „s csak ennek közvetlen fordítása, majd egy és ugyanazon input kód minden AFM” s ugyanaz lesz gépi kód - és valójában ez nem igaz. Egy AFM optimalizálja egymással - egyéb (például, még egy egyszerű felül lehet translrovat és ADD és az OR, nem beszélve bonyolultabb METER). Egy személy még jobban ír - mert csak egy személy rendelkezik az intelligenciával, hogy a program minden pontján figyelembe vegye a vasdarab minden jellemzőjét.
Ha érdekel, keress meg egy cikket Chris Kasperski témáról (a folyóirat levéltárában a www.programme.ru címen). Van Chris le a gépi kód által termelt különböző fordítóprogramok (beleértve a szerelőknek) -, és kiderül, hogy egyikük jobban optimalizált a csővezeték feldolgozás, más - még mindig valami, stb És a HUMAN intelligencia lehetővé teszi számukra, hogy a program minden pontján optimalizálják a kódot, pontosan erre a pontra szükség van. Egyik fordító / szerelő sem képes erre (és ha valaha képes lesz rá, akkor tényleg mesterséges intelligencia lesz).
> Több API-t kellett hívnom, eredményeket kell szereznem
> egyet, és küldjön paramétert a másiknak, és felejtse el. Stack -
> Nagyszerű hely a temp adatok tárolására. És a nyilvántartások mögött
> követni kellemesen ugyanaz, mint valójában "globális változók". Vannak
> mit "meghódítani".
Igen, ez az, hogy senki sem vitatkozott. Ez egy másik kérdés volt -, hogy itt csak az Asma hívja fel a WinApi-ot, hogy legyőzze a legtöbbet, és szükség van rá.
> És a PS: a delphi fordító nem sokat megold.
És még egy PS, az Ön engedélyével: nem a Delphi fordító. de bármelyik fordítója. Hadd hangsúlyozzam még egyszer: bárkinek. Erre ő és a JAVA.
Mit jelent a Delphinek ehhez? Miért mindig összehasonlítja a Delphit az Asm-lal, és nem a Java-val?
Istenem. Nos, mi itt a makrók?
2 AlexZ # xA0; (23.08.04 00:54) [21]
> Miért:
> Igen az emberek a fórumon Delphi megkérdezte: "Miért olyan nagy a programom?" Szóval azt mondtam: "Ne vegye Delphit."
"Felosztani a legyeket és a szeleteket". Beszél egy "vizuális programot egy felhasználó számára" vagy egy "nem vizuális rendszerfeladatot, amely kis, de szükséges műveleteket végez"?
Ha az első, akkor fontolja meg a program fejlesztésére fordított időt az ACM-en. Ha a második, akkor hol van Delphi?
> MIGUR # xA0; (23.08.04 05:17) [25]
Mondd meg, tudod, hogy a csomagolt programok kicsiek csak a lemezen és a memóriában - még több, mint a csomagolatlanok? És hogy lassabban működnek kicsomagolva?