-
11. Data: 2010-03-13 17:38:54
Temat: Re: Assembler
Od: Michoo <m...@v...pl>
Wojciech Muła pisze:
> "inst4nce" <i...@g...pl> wrote:
>
>>> W czym juz programowales lub co masz zamiar zrobić?
>> Chodziło mi o początkującego w asmie. Kilka lat temu bawiłem się assemblerem
>> pod dosem (tasm - programy *.com typu 'hello world' i grafika VGA 320x200).
>> Teraz chciałbym sobie odświeżyć pamięć, ale na trochę wyższym poziomie
>> (win32 asm). Chciałbym w wolnych chwilach poznać tajniki assemblera na
>> trochę wyższym poziomie niż kiedyś.
>> Znam w miarę dobrze język C, trochę mniej C++ i kiedyś bawiłem się Pascalem,
>> ale wolę C.
>
> NASM, MASM - darmowe asemblery, są do nich jakieś windowsiane makra. Ale
> pisanie wszystkiego w asemblerze jest "pieprzeniem kotka za pomocą młotka".
> Lepiej koduj w C, a tam gdzie wydaje Ci się, że coś zyskasz asemblerem używaj
> wstawek. Taki GCC ma porządnie rozwiązane wstawki asemblerowe.
>
Czasami fajnie jest zrobić program, który ma 512 bajtów pliku
wykonywalnego ;)
--
Pozdrawiam
Michoo
-
12. Data: 2010-03-15 09:14:27
Temat: Re: Assembler
Od: Maciej Pilichowski <P...@g...com>
On Fri, 12 Mar 2010 13:01:46 +0100, Jacek Czerwinski <...@...z.pl> wrote:
>Co jest celem?
I jeszcze dolacz 3 zdjecia, i wazne badania okresowe. Jacku... ;-)
-
13. Data: 2010-03-15 09:44:41
Temat: Re: Assembler
Od: p...@p...onet.pl
> Jaki darmowy kompilator assemblera pod win32 polecacie dla początkującego?
>
> pozdr
> inst4nce
>
napisz sobie swój: -
ja mam zamiar napisac kompilator swojego uproszczonego wzgledem x86
ale bardziej eleganckiego asma - ktory by sie kompilowal do .exe
najwiekszy chyba problem to jak uzyskac samą 'otoczkę' 'formę'
execa pod windą tj jak wygenerowac program.exe realizujacy
np dziesiec nop'ów
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jak to wrzucic do exe ? jak wygenerowac exe z takim kodem - ktos wie?
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
14. Data: 2010-03-15 16:57:23
Temat: Re: Assembler
Od: Piotr M Kuć <k...@n...invalid>
W artykule <3...@n...onet.pl> p...@p...onet.pl
napisal(a):
>> Jaki darmowy kompilator assemblera pod win32 polecacie dla początkującego?
>>
>> pozdr
>> inst4nce
>
> napisz sobie swój: -
> ja mam zamiar napisac kompilator swojego uproszczonego wzgledem x86
> ale bardziej eleganckiego asma - ktory by sie kompilowal do .exe
>
> najwiekszy chyba problem to jak uzyskac samą 'otoczkę' 'formę'
> execa pod windą tj jak wygenerowac program.exe realizujacy
> np dziesiec nop'ów
>
> nop
> nop
> nop
>
> jak to wrzucic do exe ? jak wygenerowac exe z takim kodem - ktos wie?
Nikt nie wie!
Ostatni mistrzowie tę tajemną wiedzę zabrali ze sobą do grobu.
Nie pozostaje Ci nic innego jak wrócić do filozofi czy tam fizyki,
a programowanie pozostawić typom bez polotu i nudziarzom.
;-)
--
Pozdrawiam, Piotr.Kuc-(szympans)-kuciak.net
Piotr Kuć
-
15. Data: 2010-03-15 17:15:07
Temat: Re: Assembler
Od: "Bogdan (bogdro)" <b...@p...gazeta.pl>
W dniu 15.03.2010 10:44, p...@p...onet.pl pisze:
>> Jaki darmowy kompilator assemblera pod win32 polecacie dla początkującego?
>>
>> pozdr
>> inst4nce
>>
>
> napisz sobie swój: -
> ja mam zamiar napisac kompilator swojego uproszczonego wzgledem x86
> ale bardziej eleganckiego asma - ktory by sie kompilowal do .exe
>
> najwiekszy chyba problem to jak uzyskac samą 'otoczkę' 'formę'
> execa pod windą tj jak wygenerowac program.exe realizujacy
> np dziesiec nop'ów
>
> nop
> nop
> nop
> nop
> nop
> nop
> nop
> nop
> nop
> nop
>
> jak to wrzucic do exe ? jak wygenerowac exe z takim kodem - ktos wie?
Zobacz, jak to robi bin2exe czy podobne programy. W ostateczności, są
kompilatory z otwartym kodem, tam też można zajrzeć. No i oczywiście
do specyfikacji tego wybranego formatu exe.
--
Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
-
16. Data: 2010-03-15 19:38:00
Temat: Re: Assembler
Od: "slawek" <s...@h...pl>
Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
dyskusyjnych:hngih1$5rp$...@n...onet.pl...
> Czasami fajnie jest zrobić program, który ma 512 bajtów pliku
> wykonywalnego ;)
Zgoda, ale ja widzę użyteczność zejścia do poziomu asemblera w czymś trochę
innym. Mamy robić coś z bitami/bajtami, dużo, szybko i strasznie prostego,
choć... nie ujętego w językach high-level.
Dla przykładu: odwrócić porządek bitów w bajcie, tzn. z bitów upakowanych w
bajcie jako 76543210 zrobić 01234567. Różnych bajtów jest 256, więc można to
zrobić np. przez tablicę indeksowaną bajtem wejściowym. Z drugiej strony
jest XLAT. Z trzeciej strony można to robić przez przesuwanie bitów w bajcie
z użyciem flagi pożyczki. Z czwartej strony - cholera wie czy najlepszym
rozwiązaniem jest aby robiło to CPU - bo może szybciej zrobi to... karta
graficzna?!
Unikałbym jednak - poza "sportowymi" problemami - asemblera bo... postęp w
procesorach jest szybki, nigdy nie wiadomo czy np. nie przyjdzie nam chęć
przenieść programu np. na komórki czy jakiś netbook z dziwnym procesorem - i
może być problem.
slawek
-
17. Data: 2010-03-15 19:54:25
Temat: Re: Assembler
Od: Wojciech Muła <w...@p...null.onet.pl.invalid>
"slawek" <s...@h...pl> wrote:
> Unikałbym jednak - poza "sportowymi" problemami - asemblera bo... postęp w
> procesorach jest szybki, nigdy nie wiadomo czy np. nie przyjdzie nam chęć
> przenieść programu np. na komórki czy jakiś netbook z dziwnym procesorem - i
> może być problem.
Owszem, jest szybki, ale nie szybszy niż napisanie specjalizowanej
biblioteki. :) Czasem warto się schylić do niskego poziomu - że
zareklamuję http://wm.ite.pl/proj/sse2string/.
w.
--
Mamy oswojoną sarnę i w związku z tym projektuję, by dorobić do niej kłódkę.
-
18. Data: 2010-03-17 08:11:11
Temat: Re: Assembler
Od: p...@p...onet.pl
> W dniu 15.03.2010 10:44, p...@p...onet.pl pisze:
> >> Jaki darmowy kompilator assemblera pod win32 polecacie dla początkującego?
> >>
> >> pozdr
> >> inst4nce
> >>
> >
> > napisz sobie swój: -
> > ja mam zamiar napisac kompilator swojego uproszczonego wzgledem x86
> > ale bardziej eleganckiego asma - ktory by sie kompilowal do .exe
> >
> > najwiekszy chyba problem to jak uzyskac samą 'otoczkę' 'formę'
> > execa pod windą tj jak wygenerowac program.exe realizujacy
> > np dziesiec nop'ów
> >
> > nop
> > nop
> > nop
> > nop
> > nop
> > nop
> > nop
> > nop
> > nop
> > nop
> >
> > jak to wrzucic do exe ? jak wygenerowac exe z takim kodem - ktos wie?
>
> Zobacz, jak to robi bin2exe czy podobne programy. W ostateczności, są
> kompilatory z otwartym kodem, tam też można zajrzeć. No i oczywiście
> do specyfikacji tego wybranego formatu exe.
>
no tak czytalem juz kiedys cos o formacie PE czy jak mu tam, wiem ze
moge poszukac ale pytajac tutaj pytam czy ktos nie ma osobistej ugruntowanej
praktyka wiedzy w tym temacie - chce napisac asma - samo tlomaczenie asma na
hex jest raczej banalne zostaje tylko jeszcze obudowac to w format exe
i zapisac na dysk - moge poznac ten format execow ale tutaj moze nawet
zaakceptowal bym i jakas funkcyjke ze zgrabnej malutkiej biblioteki
- moje pytanie jest niejako na przyszlosc bo chwilowo lupię OpenGl'a
> --
> Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
> Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
> Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
> www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
19. Data: 2010-03-17 23:10:33
Temat: Re: Assembler
Od: "Wiktor S." <wswiktor&poczta,fm@no.spam>
> Owszem, jest szybki, ale nie szybszy niż napisanie specjalizowanej
> biblioteki. :) Czasem warto się schylić do niskego poziomu - że
> zareklamuję http://wm.ite.pl/proj/sse2string/.
Żeby tylko się kompilowało...
C:\wiktor\vs\ssechar\src>make
gcc -c strchr.S strcmp.S strlen.S strncmp.S strrchr.S
strchr.S: Assembler messages:
strchr.S:30: Warning: .type pseudo-op used outside of .def/.endef ignored.
strchr.S:30: Error: junk at end of line, first unrecognized character is `s'
strchr.S:124: Warning: .type pseudo-op used outside of .def/.endef ignored.
strchr.S:124: Error: junk at end of line, first unrecognized character is
`s'
strcmp.S: Assembler messages:
strcmp.S:95: Warning: .type pseudo-op used outside of .def/.endef ignored.
strcmp.S:95: Error: junk at end of line, first unrecognized character is `s'
strcmp.S:256: Warning: .type pseudo-op used outside of .def/.endef ignored.
strcmp.S:256: Error: junk at end of line, first unrecognized character is
`s'
strlen.S: Assembler messages:
strlen.S:28: Warning: .type pseudo-op used outside of .def/.endef ignored.
strlen.S:28: Error: junk at end of line, first unrecognized character is `s'
strlen.S:92: Warning: .type pseudo-op used outside of .def/.endef ignored.
strlen.S:92: Error: junk at end of line, first unrecognized character is `s'
strncmp.S: Assembler messages:
strncmp.S:18: Warning: .type pseudo-op used outside of .def/.endef ignored.
strncmp.S:18: Error: junk at end of line, first unrecognized character is
`s'
strrchr.S: Assembler messages:
strrchr.S:32: Warning: .type pseudo-op used outside of .def/.endef ignored.
strrchr.S:32: Error: junk at end of line, first unrecognized character is
`s'
strrchr.S:131: Warning: .type pseudo-op used outside of .def/.endef ignored.
strrchr.S:131: Error: junk at end of line, first unrecognized character is
`s'
make: *** [*.o] Error 1
C:\wiktor\vs\ssechar\src>gcc -v
Using built-in specs.
Target: mingw32
Configured with:
../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,jav
a,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enabl
e-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enab
le-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/src/gmp/root
--with-mpfr=/mingw/src/mpfr/root --build=mingw32
Thread model: win32
gcc version 4.4.0 (GCC)
C:\wiktor\vs\ssechar\src>as -v
GNU assembler version 2.19.1 (mingw32) using BFD version (GNU Binutils)
2.19.1
--
Azarien
-
20. Data: 2010-03-18 00:47:08
Temat: Re: Assembler
Od: "Wiktor S." <wswiktor&poczta,fm@no.spam>
> Żeby tylko się kompilowało...
deklaracje wszystkich funkcji pod windowsem powinny wyglądać tak:
.global _sse2_strlen
.def _sse2_strlen; .scl 2; .type 32; .endef
.align 32
_sse2_strlen:
Po tych zmianach biblioteka się kompiluje i daje się linkować pod gcc i pod
MSVC.
--
Azarien