hej, od czego polecacie zacząć nauke asemblera komuś kto umie C ?? chodzi mi raczej o sposoby za które nie trzeba płacić bo ostatnio cienko z kasą
z góry dzieki za pomoc
Zalezy jeszcze jakiego, jak do Intelow to polecam manuale Intela (mozna za darmo zamowic papierowe na stronie intela, badz sciagnac pdf).
wielkie dzieki a co do tych manuali intela to oni wyśla za free do polski ?? :>
Ta, a przynajmniej wysylali.
looper napisał(a)
wielkie dzieki a co do tych manuali intela to oni wyśla za free do polski ?? :>
Baaa wyślą. Kurier przyniesie!
Manuale Intela nie nauczą cię języka.
Jeżeli chodzi o naukę samego pisania programów to link do strony podany wcześniej jest na dzisiaj chyba najlepszym wyjściem.
Co do dokumentacji intela to radzę przejrzeć wersje elektroniczną zanim zamówisz coś do rozpalania w kominku.
Nevar napisał(a)
Co do dokumentacji intela to radzę przejrzeć wersje elektroniczną zanim zamówisz coś do rozpalania w kominku.
Jestem Polakiem, jak za darmo to zamawiam ;-P
@Nevar, chyba ich na oczy nie widziałeś... jak nie nauczą języka? jest opis wszystkich mechanizmów procesora, dokładnie omówione instrukcje, sposób ich dobierania... Ja assemblera nauczyłem się właśnie z manuali i z grzebania w programach, ale to stare dzieje, praktycznie razem z asmem wziąłem się za RE.
Jakby co - wysyłka manuali Intela dopiero po Nowym Roku.
Hej czytam sobie tak z teog linka co podaliscie i fajnie sie to czyta, ale mam pytanie. Znalazlem taki motyw w adresowaniu:
Pytanie: do jakich segmentów odnosi się to całe adresowanie? Przecież mamy kilka rejestrów segmentowych, które mogą wskazywać na zupełnie co innego.
Odpowiedź:
Na rejestrach 16-bitowych obowiązują reguły:
* jeśli pierwszym rejestrem jest BP, używany jest SS
* w pozostałych przypadkach używany jest DS
Na rejestrach 32-bitowych mamy:
* jeśli pierwszym w kolejności rejestrem jest EBP lub ESP, używany jest SS
* w pozostałych przypadkach używany jest DS
Co to znaczy "jesli pierwszym rejestrem jest BP/ EBP lub ESP"? Co to ten pierwszy rejestr?
Wszyscy znają asemblera, a nikt sie nie garnie do odpowiedzi.
Pierwszy rejestr czyli ten który dajesz jako pierwszy w nawiasach (przy adresowaniu).
mov ax, [bx+si] ;bx jest pierwszym rejestrem
mov ax, [bp+si] ;bp pierwszy rejestr
Powyższe jest równoważne temu:
mov ax, [ds:bx+si]
mov ax, [ss:bp+si]
Chodzi o to że nie wpisując żadnego rejestru segmentowego procesor używa tego który przypisany jest do pierwszego z rejestrów używanych przy adresowaniu.
Akurat sieć mi padła, nie mogłem odpisać wcześniej:
Do rejestrów odpowiedzialnych za stos stosowany jest rejstr SS, do pozostałych DS. Przy operacjach łańcuchowych zaś edi jest z segmentem ES. To po prostu segment domyślny. W manualach intela jest dokładnie podane jakich segmentów używa dana instrukcja w połączeniu z jakim rejestrem.
Segmenty oczywiście można nadpisać tak jak pokazał Nevar.