gondoltam a nagysikerű php kérdések topic után megynitom ezt is, hátha...
szal az első dolog, amit kérdeznék:
grafikus felületen (win) kéne odébbdobni a kurzort, mondjuk a mindenkori jobb alsó sarokba. megoldás?
thx
six
- no es importante -
(#1) Sixkiller6
gondoltam a nagysikerű php kérdések topic után megynitom ezt is, hátha...
szal az első dolog, amit kérdeznék:
grafikus felületen (win) kéne odébbdobni a kurzort, mondjuk a mindenkori jobb alsó sarokba. megoldás?
thx
six
- no es importante -
És ezt pont assembly-ben...
Winfos alatt nem egyszerűbb valami Visual szarban megírni az applikációt, aztán csak a kritikus részt optimalizálni...?
Egyébként már DOS-ban is ez volt a nyerő stratégia...
primus inter pares
Ezt csak WinAPI-n keresztül lehet megcsinálni: a SetCursorPos függvény állítja a kurzor pizíciót, a jobb alsó sarok koordinátája a GetSystemMetrics eljárással kérdezhető le.
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
setcursorpos persze h megvan, delphinél nem használtam is.
de a cél a minél kisebb állomány előállítása. gondoltam, h csak meg lehet oldani pár kbyte-ból. erre meg az assembly a legjobb.
delphiben, ha nincs form, csak az application létezik, akkor is 300 kbyte-os lesz az exe. annak idején c builderben még tudtam, h hogyan kell minden nem használt libraryt kiszedni, h ne fordítsa bele feleslegesen, de delphiben nemtom hol kell.
- no es importante -
Megírtam Delphiben. Persze semmi értelme.
Elég nagy lett (15 360 byte).
Optimalizálás folyamatban
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
Most már csak 14 848 byte.
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
hogy fordítod be delphiben h ekkora legyen? mit és hol kell kihagyni?
áááá... konichiwaaaa.... nekem már csak 8192 byte
[Szerkesztve]
- no es importante -
ezt nem lehet assemblyben megcsinálni
hát, nem hiszem. szvsz mindent meg lehet, csak legfeljebb hosszú és felesleges. de kétlem h asseblyben bármi is lehetetlen lenne...
- no es importante -
persze, de ez most nem DOS, hanem egy védett módú operációs rendszer alatt vagy. nem írhatsz bárhova, nem futtathatsz bármikor bármit, mert nincs jogod hozzá. meghívhatsz Windows függvényeket assemblyből de ahogy mondod baromi macerás és hosszú lenne.
[Szerkesztve]
Tasm Source:
.386P
Locals
jumps
.Model Flat ,StdCall
extrn ExitProcess : PROC
extrn SetCursorPos : PROC
extrn GetSystemMetrics : PROC
SM_CXSCREEN equ 0
SM_CYSCREEN equ 1
.Data
uExitCode dd 000h
.Code
Main:
mov eax,SM_CYSCREEN
push eax
call GetSystemMetrics
push eax ;Y
mov eax,SM_CXSCREEN
push eax
call GetSystemMetrics
push eax ;X
call SetCursorPos
push uExitCode
CALL ExitProcess
End Main
fordítani::
tasm32 /la /mx /m3 /z /q cur
tlink32 -x /Tpe /aa /c cur,cur,, import32.lib
MOD: 4096 byte-os exe lesz belőle.
[Szerkesztve]
Eine Kuh macht muh und die Kühe machen Mühe :)
A WinAPI-t Assemblyből is meg lehet hívni. Delphiből is ezt kell csinálni.
***
állat. megint tanultam valamit
[Szerkesztve]
Hogy lett 8192?
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
nemtom. neked hogy lett 16k?
nálam:
delphi 5->ima application->form eltávolítása->application kódba setcursorpos beszúrása->uses windows.
fordításhoz: project->options->packages->build with runtime->csak vcl50
ennyi. így lesz nálam 8k
- no es importante -
THX
4096 byte (D7)
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
ehh, hogyan?
- no es importante -
Min.dpr
program Min;
uses
Windows;
begin
SetCursorPos(GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
end.
Comp.
project->options->packages->build with runtime->csak vcl
[Szerkesztve]
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
3584 byte
d5
kivettem a {$R *.RES} fodítási direktívát, ez hozott 1 kbyte-ot
- no es importante -
Ez is 4096 (valsz nem lehet kevesebb):
program Min;
uses
Windows;
begin
if MessageBox(0,'Leküldöm az egeret a jobb alsó sarokba!','Egér',MB_OKCANCEL)=IDOK then SetCursorPos(GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN));
end.
[Szerkesztve]
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
ya, nálam is
- no es importante -
Ennyit az asm-ről (windows alatt).
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
Nincs vkinek ingyenes assembly fordítója
(tudom google de ha egyszer modemmel vagyok és max 24 kbit/s )
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Nasm: Bővebben: link
Eine Kuh macht muh und die Kühe machen Mühe :)
Itt a legalsó 3xmegás file kell nekem?
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Ha Windows-hoz kell, akkor Bővebben: link
ha dos-hoz: Bővebben: link
Eine Kuh macht muh und die Kühe machen Mühe :)
masm32:
Bővebben: link
- no es importante -
thx az eszmefuttatást!
Ha még ennél is kisebbre akarjátok, tömörítsétek UPX-szel.
Úgy mekkora lesz ?
A fenti assembler-progit nem tudja tömöríteni, így lehet, hogy ez esetben a Delphi-progi kisebb lesz, mint az asm-progi. Pedig az asm-kód csak 38byte.
Eine Kuh macht muh und die Kühe machen Mühe :)
Az import32.lib-ben mi van?
A kernel32.dll, shel32.dll, gdi32.dll, user32.dll funkcióit linkeltem egybe.
Így a progi linkelésénél a Windows API funciókat is elérhetővé tettem a program számára.
Eine Kuh macht muh und die Kühe machen Mühe :)
Értem. Hmm. Pedig ezen akkor kéne tudnia nyomni. Nekem vizelőcé 6-os kódot 2 KB-osra is összenyom, s még DirectX 8-as lib is van benne... Minden kapcsolót kipróbáltál?
Minden próbálkozásra azt írja, hogy nem tömöríthető.
Próbáltam még PKSmart-tal PEPack-kal, de azok is ezt írják.
UPX-el ha adatként tömörítem akkor egy 3584bytes-os exe-t kapok, de az indításkor elszáll.
Eine Kuh macht muh und die Kühe machen Mühe :)
nem asm, de itt eleg jol nyomtatok a delphi-s dolgokat: az miert van, bepipalom, hogy build with runtime packages, akkor kell neki az rtl70.bpl?
ha meg nem pipalom be, hatalmas a progi
van valami olyan megoldas, hogy ne legyen fel mega a program, de ne kelljen neki semmi, csak az exe?
koszonom
VHDL (hardware leiro nyelv) forditon/szimulatoron dolgozom. Mukodik is szepen, de nagy ''design''-oknal sajnos belassul, mivel egy belso interpreterrel hajtom vegre, igy valoszinuleg nehany az interpreter altal vegrehajtott reszt (pl par library) ki fogom valtani igazi asm bol forditott koddal. Arra gondoltam, hogy ha vhdl-bol forditas soran ilyen reszhez erek, akkor nem belso interpretalhato kodot, hanem asm kodot keszitenek, ezt lementenem egy text file-ba majd egy kulso assemblerrel leforditanam. A kesz binaris kodot egy pl malloc() altal lefoglalt teruletre totlenem be majd amikor szukseg van ra vegrehajtanam. Maga a program Borland C++ Builder ben van. Szerintetek ez jarhato ut e? Masreszt melyik assemblert ajanlatok: kb 500k-s file-t is kb 1-2 sec ( P4 2GHz ) alatt le kene forditania, belso reszt ( C++ os resz ) is el kene tudnom erni az asm kodbol,a fizetos termekkel terjesztheto legyen (magat az assemblert nem modositanam). Esetleg mingw-el is megoldhato e a dolog? Mit javasoltok..
Koszi
Attila
a bwrtp-nél neked kell megadni, hogy mit fordítson az exe-be. tehát ha egy adott gépen 72 programod fut, akkor érdemesebb mindet .bpl-ek (.dll) nélkül fordítani és egyszer bemásolni őket valamelyik path-ba. ha terjeszteni akarod, akkor jobb ha a fordító mindent befordít az exe-be, ami kell.
Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!
Most elég stupid leszek tudtok olyan oldalakat ajánlani ahol assembly programozással foglalkoznak?
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Bővebben: link
Ez egy jó kis assembly ''tankönyvet'' tartalmaz. Szerintem érdemes elolvasni.
Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...
Hmm, egész jó, kár, hogy a legtöbb assembly-s könyv begyöpösödött, tehát elmagyarázza a 8086-ost, ami egy rakás fos, már bocsánat. Rögtön a 386-ossal kell kezdeni védett módban, ezek a DOS-os majomkodások teljesen feleslegesek. Olyan rossz dolgokat rögzítenek, mint hogy csak a BX, meg BP lehetnek bázisok, meg ilyenek. Meg a hülye szegmentálás, ami egy agyrém.
Lehet hogy egy kicsit régimódian indul neki de ha jól megnézed a tartalomjegyzéket a végén szót ejt a 3D Now-ról meg az SSE-ről ( bár azt nem tudom hogy ezt milyen részletességel mert azt nem olvastam el) De egy alapnak nem rossz szerintem ez a jegyzet mert könnyen érthető a gondolatmenete (legalábbis nekem az volt )
Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...
köszi!
egy darabig még fent hagynád. Holnap letöltöm
THX
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Szerintem ez most még fenn lesz addig amíg nagyon mélyre nem süllyed a topic
Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...
Nem azt írtam, hogy nem jó az iromány. Pont az a bajom, hogy tök jó a hozzáállása, kár, hogy ilyen 8086-os szarakodással kezdte. Sok-sok minden benne van, hogy mennyire érthető, azt nem tudom.
kösz
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Pár éve megvettem a ''Horváth Gábor: Assembly Védett módú programozás'' című könyvet. Most egy ismerősőmnek el akartam adni, de kiderült, hogy amikor megvettem nem ehhez a könyvhez tartozó floppy-lemezt adtak hozzá (''Agárdi Gábor: IBM PC Gyakorlati Assembly Haladóknak''-című). Ha valakinek meglenne a fenti lemezmelléklet és elküldené email-ben megköszönném...
Eine Kuh macht muh und die Kühe machen Mühe :)
UP
Eine Kuh macht muh und die Kühe machen Mühe :)
Senkinek nincs meg ??
UP
Eine Kuh macht muh und die Kühe machen Mühe :)
UP
Eine Kuh macht muh und die Kühe machen Mühe :)