Hirdetés

2024. április 27., szombat

Gyorskeresés

Hozzászólások

(#1) Sixkiller6


Sixkiller6
őstag

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 -

(#2) Rover623 válasza Sixkiller6 (#1) üzenetére


Rover623
félisten

És ezt pont assembly-ben...:F
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...:U

primus inter pares

(#3) P.H. válasza Sixkiller6 (#1) üzenetére


P.H.
senior tag

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 ˙˙˙

(#4) Sixkiller6 válasza P.H. (#3) üzenetére


Sixkiller6
őstag

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 -

(#5) Robiba válasza Sixkiller6 (#4) üzenetére


Robiba
tag

Megírtam Delphiben. Persze semmi értelme.
Elég nagy lett (15 360 byte).
Optimalizálás folyamatban:D

Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!

(#6) Robiba válasza Robiba (#5) üzenetére


Robiba
tag

Most már csak 14 848 byte.

Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!

(#7) Sixkiller6 válasza Robiba (#6) üzenetére


Sixkiller6
őstag

hogy fordítod be delphiben h ekkora legyen? mit és hol kell kihagyni?

áááá... konichiwaaaa.... nekem már csak 8192 byte

[Szerkesztve]

- no es importante -

(#8) Flashy válasza Sixkiller6 (#4) üzenetére


Flashy
veterán

ezt nem lehet assemblyben megcsinálni

(#9) Sixkiller6 válasza Flashy (#8) üzenetére


Sixkiller6
őstag

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 -

(#10) Flashy válasza Sixkiller6 (#9) üzenetére


Flashy
veterán

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]

(#11) wnix válasza Flashy (#10) üzenetére


wnix
senior tag

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 :)

(#12) ollie válasza Flashy (#10) üzenetére


ollie
MODERÁTOR

A WinAPI-t Assemblyből is meg lehet hívni. Delphiből is ezt kell csinálni.

***

(#13) Flashy


Flashy
veterán

állat. megint tanultam valamit :)

[Szerkesztve]

(#14) Robiba válasza Sixkiller6 (#7) üzenetére


Robiba
tag

Hogy lett 8192?

Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!

(#15) Sixkiller6 válasza Robiba (#14) üzenetére


Sixkiller6
őstag

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 -

(#16) Robiba válasza Sixkiller6 (#15) üzenetére


Robiba
tag

THX
:DD:DD:DD:DD:DD:DD:DD
4096 byte (D7)
:DD:DD:DD:DD:DD:DD:DD

Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!

(#17) Sixkiller6 válasza Robiba (#16) üzenetére


Sixkiller6
őstag

ehh, hogyan?

- no es importante -

(#18) Robiba válasza Sixkiller6 (#17) üzenetére


Robiba
tag

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!

(#19) Sixkiller6 válasza Robiba (#18) üzenetére


Sixkiller6
őstag

3584 byte
d5
kivettem a {$R *.RES} fodítási direktívát, ez hozott 1 kbyte-ot

- no es importante -

(#20) Robiba válasza Sixkiller6 (#19) üzenetére


Robiba
tag

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!

(#21) Sixkiller6 válasza Robiba (#20) üzenetére


Sixkiller6
őstag

ya, nálam is

- no es importante -

(#22) Robiba válasza Sixkiller6 (#21) üzenetére


Robiba
tag

Ennyit az asm-ről (windows alatt).

Billentyűzet hiba! Nyomjon F1-et a folytatáshoz!

(#23) sonar


sonar
addikt

Nincs vkinek ingyenes assembly fordítója
(tudom google de ha egyszer modemmel vagyok és max 24 kbit/s :O )

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#24) wnix válasza sonar (#23) üzenetére


wnix
senior tag

Nasm: Bővebben: link

Eine Kuh macht muh und die Kühe machen Mühe :)

(#25) sonar válasza wnix (#24) üzenetére


sonar
addikt

Itt a legalsó 3xmegás file kell nekem? :F

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#26) wnix válasza sonar (#25) üzenetére


wnix
senior tag

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 :)

(#27) Sixkiller6 válasza sonar (#23) üzenetére


Sixkiller6
őstag

masm32:
Bővebben: link

- no es importante -

(#28) Flashy válasza Robiba (#22) üzenetére


Flashy
veterán

thx az eszmefuttatást! :)

(#29) kisfurko


kisfurko
senior tag

Ha még ennél is kisebbre akarjátok, tömörítsétek UPX-szel.

(#30) wnix válasza kisfurko (#29) üzenetére


wnix
senior tag

Ú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 :)

(#31) kisfurko válasza wnix (#30) üzenetére


kisfurko
senior tag

Az import32.lib-ben mi van?

(#32) wnix válasza kisfurko (#31) üzenetére


wnix
senior tag

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 :)

(#33) kisfurko válasza wnix (#32) üzenetére


kisfurko
senior tag

É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?

(#34) wnix válasza kisfurko (#33) üzenetére


wnix
senior tag

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 :)

(#35) VladimirR


VladimirR
nagyúr

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

(#36) csosza


csosza
csendes tag

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

(#37) Robiba válasza VladimirR (#35) üzenetére


Robiba
tag

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!

(#38) sonar


sonar
addikt

Most elég stupid leszek :DDD 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!

(#39) Spyx


Spyx
tag

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?!...

(#40) kisfurko válasza Spyx (#39) üzenetére


kisfurko
senior tag

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.

(#41) Spyx


Spyx
tag

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?!...

(#42) sonar válasza Spyx (#39) üzenetére


sonar
addikt

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!

(#43) Spyx válasza sonar (#42) üzenetére


Spyx
tag

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?!...

(#44) kisfurko válasza Spyx (#41) üzenetére


kisfurko
senior tag

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.

(#45) sonar válasza Spyx (#43) üzenetére


sonar
addikt

kösz

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!

(#46) wnix


wnix
senior tag

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 :)

(#47) wnix válasza wnix (#46) üzenetére


wnix
senior tag

UP

Eine Kuh macht muh und die Kühe machen Mühe :)

(#48) wnix válasza wnix (#46) üzenetére


wnix
senior tag

Senkinek nincs meg ??

UP

Eine Kuh macht muh und die Kühe machen Mühe :)

(#49) wnix válasza wnix (#46) üzenetére


wnix
senior tag

UP

Eine Kuh macht muh und die Kühe machen Mühe :)

(#50) RedAnt válasza wnix (#49) üzenetére


RedAnt
aktív tag

Nekem meg egyaltalan nem adtak hozza floppyt!:O Mammut Libri:(((

Nah mind1, be kell gepelni a kodot, attol tanul az ember :DDD

╚╦╦╦

Copyright © 2000-2024 PROHARDVER Informatikai Kft.