Cześć mirki - zna ktoś jakieś godne polecenia(bo googla mam) ebooki, poradniki, tutoriale, instrukcje, które wprowadzą mnie szybko, na praktycznych przykładach w asm x86? Nie chcę biblii asemblera, coś co mnie na przykładach wprowadzi w to. Ogarniałem trochę mipsa, ale tutaj z tego co widzę trochę inaczej te rejestry są ponumerowane, nie ogarniam do końca ile tego jest, ile tak naprawdę mogę przechowywać wartości równocześnie itd. #programowanie #assembler
Wszystko
Najnowsze
Archiwum
- 1
@g500s: całkiem elegancki jest kurs http://pacman128.github.io/pcasm/ - co prawda IO na jakiejś wewnętrznej bibliotece, ale coś czuję że to akurat będzie Ci zbędne.
- 1
@g500s:
1. jeżeli CI życie miłe to nie korzystaj z OGLa - inicjalizacja okna z wcześniejszej biblioteki rozrosła się 2-3 razy, trzeba mieć też relatywnie dużo intuicji/doświadczenia żeby ogarnąć wszystko(a robiłem wcześniej GKOMy, więc trochę to ogarniam). Plus taki że możesz np. liczyć kolory na shaderach
2. wcześniej próbowałem działać na SFMLu - całkiem przyjemnie, nawet da radę - problem w tym że strasznie nie lubi się w konfiguracjach wielomonitorowych -
1. jeżeli CI życie miłe to nie korzystaj z OGLa - inicjalizacja okna z wcześniejszej biblioteki rozrosła się 2-3 razy, trzeba mieć też relatywnie dużo intuicji/doświadczenia żeby ogarnąć wszystko(a robiłem wcześniej GKOMy, więc trochę to ogarniam). Plus taki że możesz np. liczyć kolory na shaderach
2. wcześniej próbowałem działać na SFMLu - całkiem przyjemnie, nawet da radę - problem w tym że strasznie nie lubi się w konfiguracjach wielomonitorowych -
piszę nowy post, bo problem wygląda teraz trochę inaczej, ale zawołam @grzegorzx86 , bo ostatnio mi pomagał ( ͡° ͜ʖ ͡°)
http://pastebin.com/jgaMh3fB
jak zmieniam z malej litery na duza (kierujac sie tablica ascii powinienem odjac 32) pokazuja sie jakies dziwne znaczki zamiast tego, czego oczekuję. niewazne ile odejme. za to zamiana z duzej na mala dziala poprawnie. dodakowo nie wyswietla sie napis v_blad. zamiast niego pojawia się duża litera alfabetu. btw
http://pastebin.com/jgaMh3fB
jak zmieniam z malej litery na duza (kierujac sie tablica ascii powinienem odjac 32) pokazuja sie jakies dziwne znaczki zamiast tego, czego oczekuję. niewazne ile odejme. za to zamiana z duzej na mala dziala poprawnie. dodakowo nie wyswietla sie napis v_blad. zamiast niego pojawia się duża litera alfabetu. btw
- 0
@grzegorzx86: zamiast and dx, 255, zmieniłem cmp dx, 96 na cmp dx, 351 (tutaj dodałem te 255) i działa prawie jak powinno.
dodałem z powrotem pomnożenie rejestru cx razy 2, jednak bez tego się psuło jak podawałem tylko 3 znaki. obecnie to wygląda tak http://pastebin.com/AJgD0Abb
tylko że jeszcze program zacina się jak czwarty raz chcę prowadzać znaki i za trzecim razem pojawia się jakaś dzika ósemka. czemu? zakładam, że nie
dodałem z powrotem pomnożenie rejestru cx razy 2, jednak bez tego się psuło jak podawałem tylko 3 znaki. obecnie to wygląda tak http://pastebin.com/AJgD0Abb
tylko że jeszcze program zacina się jak czwarty raz chcę prowadzać znaki i za trzecim razem pojawia się jakaś dzika ósemka. czemu? zakładam, że nie
Ej nie xD Nie wiem dlaczego działa Ci z 351. Chodzi o to że są śmieci w górnym bajcie (w dh). Zrób albo "and dx,255" albo "mov dh, 0" albo jeżeli nie chcesz się bawić z dh to rób cmp dl, 96 <- dl zamiast dx
murki pomocu ( ͡° ʖ̯ ͡°) mam do napisania w assemblerze (8086 bodajże) program pobierający od użytkownika ciąg znaków (np. "aBcDE") i wypisujący ten sam ciąg, tylko że, ze zmienioną wielkością liter ("AbCde"). program musi wykorzystywać stos. wyrzuca mi jakieś krzaczki zamiast tego ciągu. męczę się z tym już od dłuższego czasu i nie wiem jak naprawić błąd. http://pastebin.com/JHn4C8Ea myślę, że problem jest gdzieś w okolicy linii 55.
- 0
@grzegorzx86:
- jak zamienię bp na sp, to przy kompilacji wywala błąd "error: invalid effective address" w tej linijce. próbowałem też zamienić si na di lub bx i to samo.
- fakt, lepiej będę porównywał indexy, żeby wiedzieć kiedy skończyć odczytywać ze stosu
myślałem jeszcze nad zdjęciem wszystkiego ze stosu do jakiejś zmiennej i potem odczytać te znaki z niej, ale nie wiem czy tak się da ( ͡°
- jak zamienię bp na sp, to przy kompilacji wywala błąd "error: invalid effective address" w tej linijce. próbowałem też zamienić si na di lub bx i to samo.
- fakt, lepiej będę porównywał indexy, żeby wiedzieć kiedy skończyć odczytywać ze stosu
myślałem jeszcze nad zdjęciem wszystkiego ze stosu do jakiejś zmiennej i potem odczytać te znaki z niej, ale nie wiem czy tak się da ( ͡°
@peon125: Nie da się, stos jest już "zmienną" ( ͡° ͜ʖ ͡°) i przesuwanie danych z jednego miejsca w inne nic tu nie da. Najlepiej zdejmij tyle ile włożyłeś, trzymasz tam licznik. Spróbuj najpierw drukować jeden znak z tego co wprowadził użytkownik, później pojedyncze znaczki bez konwersji duże/małe litery i wreszcie dodaj konwersję - wyłapiesz na którym etapie masz błąd.
Siema mirki. Jest problem z #programowanie #assembler w 6502, xasm ktoś potrafi pomoc?
- 1
- 1
@Franceshinio: nie znam się na atarowskim asmie ale org to pewnie punkt w pamięci w którym zaczyna się dany kod, więc możesz zostawić $1000 i kod z printowaniem dać na koniec po prostu.
a, i "text" to pointer do miejsca gdzie jest tekst. także jakbyś miał ciągnąć cały kod z codebase64.org to pamiętaj by zmienić "dst" na "text" bądź odwrotnie (⌐ ͡■ ͜ʖ ͡■)
a, i "text" to pointer do miejsca gdzie jest tekst. także jakbyś miał ciągnąć cały kod z codebase64.org to pamiętaj by zmienić "dst" na "text" bądź odwrotnie (⌐ ͡■ ͜ʖ ͡■)
- 1
hej mircy, asembler 8086 here, mam problem z odejmowaniem dwóch liczb w spakowanym BCD - dziadostwo nie chce mi działać ( ͡° ͜ʖ ͡°)
mam sobie trzy takie zmienne:
mam sobie trzy takie zmienne:
liczbaLL db- 10
Wiem, że nocna i w ogóle, ale może znajdzie się ktoś, kto miałby wiedzę aby pomóc mi z napisaniem funkcji rekurencyjnej w assemblerze? Wydaje mi się, że z napisaniem nie będzie problemu, ale nie mogę zrozumieć działania. Mamy funkcję np. f(n-1)+(n-2)*(n-3). Przypuśćmy, że wartość wprowadzamy przez eax. Jeśli eax=1, to wrzucamy na stos 0, jeśli 2, to 1, jeśli 3 to 2 (totalny przykład). Ale jak to rozwiązać później, kiedy stos mamy
mov dx, 2
mov cx, 4
mov ax, 2
**mul cx**
add dx, dx
add ax, dx- 0
@krasnoludko: wynik działania mul (przynajmniej dla dwubajtowego argumentu) jest przechowywany w ax:dx, więc tak. No chyba że akurat wyjdzie to samo, co było w ax xD
@krasnoludkolo:
The Art of Assembly Language
http://www.plantation-productions.com/Webster/www.artofasm.com/DOS/pdf/ch05.pdf
196 strona dx:ax :=ax*reg/mem
The Art of Assembly Language
http://www.plantation-productions.com/Webster/www.artofasm.com/DOS/pdf/ch05.pdf
196 strona dx:ax :=ax*reg/mem
halo murki, podacie jakiś kompilator do asemblera, który by pokazywał które linijki kodu po kolei się wykonują? coś jak f11 w visual studio ( ͡° ͜ʖ ͡°) #programowanie #assembler bodajże do 32bitowego assemblera, bo jak próbowałem kompilować przez emu8086, to wyrzuca jakieś dzikie błędy, a w sieci przeczytałem, że to przez to, że ten kompilator nie obsługuje 32bitów
@peon125: podejrzewam że nie chodzi Ci o kompilator, tylko o debugger. W visual studio taki jest w pakiecie, jeżeli linux to kompilujesz np. w taki sposób:
gcc -g -o moj_prog_asm main.s i za pomocą gdb uruchamiasz ( gdb moj_prog_asm). Tu jest instrukcja (linkuje odrazu do rozdziału opisującego prostą sesję Sample session - Debugging with GDB- 2
@peon125: Nie trzeba żadnej instalki. Po prostu tworzysz projekt c++, dajesz normalnie int main() i co tam potrzebujesz, a w środku
__asm {
Kod
}
I tyle, debuguje się bardzo fajnie. Scr rel.
__asm {
Kod
}
I tyle, debuguje się bardzo fajnie. Scr rel.
źródło: comment_omI81SJwyMHdwsaH9RZ05HX54mj0acpb.jpg
Pobierz- 1
Witam!
Jak dokładnie działa funkcja TEST w asemblerze 8086?
Mam taki króciutki fragment kodu:
Jak dokładnie działa funkcja TEST w asemblerze 8086?
Mam taki króciutki fragment kodu:
Komentarz usunięty przez moderatora
- 1
To co @FailedNormie podał jest fajnym przykładem na to jak to zrobić wykorzystując TEST, ale tak szczerze, to bym raczej tu na czytelność postawił, i zrobił po prostu tak:
and ax, 0Ch ; ew wczesniej zachować ax gdzieś
cmp ax, 4
je costam16
cmp ax,
and ax, 0Ch ; ew wczesniej zachować ax gdzieś
cmp ax, 4
je costam16
cmp ax,
- 32
#naukaprogramowania #assembler #wytrzeszczoweasemblery dziś będą rady dot. #pcmasterrace
Lekcja 3.
Temat: Bity,bajty,słowa- słowem pamięć.
Zacznijmy od czegoś co bardzo trudno sobie uświadomić.
bit to podstawowa jednostka informacji, pojedyncza cyfra binarna 1 albo 0.
I wszystko jest spoko dopóki te bity są jakieś wirtualne, nienamacalne.
Lekcja 3.
Temat: Bity,bajty,słowa- słowem pamięć.
Zacznijmy od czegoś co bardzo trudno sobie uświadomić.
bit to podstawowa jednostka informacji, pojedyncza cyfra binarna 1 albo 0.
I wszystko jest spoko dopóki te bity są jakieś wirtualne, nienamacalne.
- 17
#naukaprogramowania #assembler #wytrzeszczoweasemblery
Lekcja 2.
Temat: Podstawowe bloki procesora i pętla rozkazowa
Po poprzedniej lekcji powinieneś wiedzieć jak wygląda podstawowy komputer.Dziś popatrzymy na procesor intela 8086. Tego staruszka każdy z nas ma w swoim PC.
Z mojej wiedzy wynika że aż do Core-i Intel budził się z opuszczoną 20 linią adresową, a więc mógł zaadresować tylko 1MB pamięci operacyjnej.
(Jako ćwiczenie policz na ile kombinacji można zapisać 0 i 1 na
Lekcja 2.
Temat: Podstawowe bloki procesora i pętla rozkazowa
Po poprzedniej lekcji powinieneś wiedzieć jak wygląda podstawowy komputer.Dziś popatrzymy na procesor intela 8086. Tego staruszka każdy z nas ma w swoim PC.
Z mojej wiedzy wynika że aż do Core-i Intel budził się z opuszczoną 20 linią adresową, a więc mógł zaadresować tylko 1MB pamięci operacyjnej.
(Jako ćwiczenie policz na ile kombinacji można zapisać 0 i 1 na
źródło: comment_3BTPf2o8DBQW67vhCnUbyuQ1uf5XevUR.jpg
Pobierz- 1
@remek4x4:
http://www.wykop.pl/wpis/20887319/naukaprogramowania-assembler-lekcja-1-temat-ogolni/
nie jest to głupia opcja niby mam tag #wytrzeszczoweasemblery ale michał tagi spsuł i nie pyka
http://www.wykop.pl/wpis/20887319/naukaprogramowania-assembler-lekcja-1-temat-ogolni/
nie jest to głupia opcja niby mam tag #wytrzeszczoweasemblery ale michał tagi spsuł i nie pyka
- 33
#naukaprogramowania #assembler
Lekcja 1.
Temat: Ogólnie z czego składa się komputer.
Do szczegółów jak komponenty naszego komputera ze sobą oddziałują jeszcze wrócimy.
Najprostszy komputer to maszyna Turinga. Bardzo długa taśma i głowica, która na podstawie
danych na tej taśmie zmienia zawartość owej taśmy.
Lekcja 1.
Temat: Ogólnie z czego składa się komputer.
Do szczegółów jak komponenty naszego komputera ze sobą oddziałują jeszcze wrócimy.
Najprostszy komputer to maszyna Turinga. Bardzo długa taśma i głowica, która na podstawie
danych na tej taśmie zmienia zawartość owej taśmy.
@wytrzzeszcz: Jak nie chcesz robić tagu to zrób listę. A z takich porad, to mógłbyś jakoś bardziej przejrzyście pisać, i nie chodzi mi tu o treść, ale o estetykę wpisu, zastosuj więcej wypunktowań, stosuj pogrubienia dla najważniejszych informacji, i zadbaj o wygląd ogólny, bo szczerze nie wygląda to zbyt ciekawie, w przeciwieństwie do treści, która jest ok.
- 3
@dridex: i na tym jak zbudowany jest procesor zajmiemy się na nastepnej lekcji, tu chciałem rzucić tylko że są 2 architektury
#naukaprogramowania #assembler
miałem robić kurs, ale myślę nad tematami lekcji i nie mogę jakoś sensownie tego podzielić
Assembler jest zbyt monolityczny, macie jakieś pomysły jak to podzielić?
miałem robić kurs, ale myślę nad tematami lekcji i nie mogę jakoś sensownie tego podzielić
Assembler jest zbyt monolityczny, macie jakieś pomysły jak to podzielić?
- 1
@mk321: i takich mirasów szanuje
@wytrzzeszcz: Przeglądnij sobie spis lekcji np. z tego kursu - https://www.udemy.com/x86-asm-foundations/
- 2
Znacie coś do "debugowania" #assembler? Chodzi mi żeby pokazywało mi np. na boku jakie wartości są aktualnie w rejestrach, co się wykonuje w danej linijce (np. zapisane w C++ czy coś).
#programowanie.
#programowanie.
- 3
@Colek: muśle że TUI to bedzie to czego szukasz
The gdb Text User Interface (TUI) is a terminal interface which uses the curses library to show the source file, the assembly output, the program registers and gdb commands in separate text windows. The TUI mode is supported only on platforms where a suitable version of the curses library is available.
The TUI mode is enabled by default when you invoke
The gdb Text User Interface (TUI) is a terminal interface which uses the curses library to show the source file, the assembly output, the program registers and gdb commands in separate text windows. The TUI mode is supported only on platforms where a suitable version of the curses library is available.
The TUI mode is enabled by default when you invoke
- 2
@Colek: Visual Studio nawet w tej darmowej wersji jest uniwersalne. I najwygodniej mi się koduje frontend i w asemblerze da się podejrzeć rejestry procesora i koprocesora.
Ej mirki, chcę sobie użyć funkcji _read w masmie i nie działa, dostaję LNK2001 unresolved external symbol write Co dziwne działa mi MessageBoxA@16 i _MessageBoxW@16 używam visual studio 15, mam w linkerze dodane libcmt.lib
#programowanie #asm #assembler
#programowanie #asm #assembler
@znowu_musze_wymyslac: nie doczytałem :/ sugerowałem VS2015, niestety nie pomogę
- 0
@Wiktor426: spoko, dzięki
- 1
Istnieje odpowiednik "debug.exe" dla Linuxa czy pozostaje zabawa z dosboxem?
#asembler #assembler #programowanie #linux
#asembler #assembler #programowanie #linux
;get direct access to video memory
@LockSurface:
DDSURFACE Lock,lpDDSPrimary,NULL,offset ddsd,DDLOCKWAIT or DDLOCKWRITEONLY,NULL
test eax,eax ;cmp eax,DDOK
jz @DymankoSieZaczyna ;)
@LockSurface:
DDSURFACE Lock,lpDDSPrimary,NULL,offset ddsd,DDLOCKWAIT or DDLOCKWRITEONLY,NULL
test eax,eax ;cmp eax,DDOK
jz @DymankoSieZaczyna ;)
http://pastebin.com/PYmgQVP6
napisałem takie coś, żeby trzykrotnie pobierało małą literę od użytkownika, za każdym razem zamieniało na dużą literę i go wyświetliło, ale wyskakuje mi jakieś guwno jak podam znak. co źle zrobiłem??? kompiluję nasmem i uruchamiam przez dosboxa, jeśli to ma jakiekolwiek znaczenie
#programowanie #assembler
napisałem takie coś, żeby trzykrotnie pobierało małą literę od użytkownika, za każdym razem zamieniało na dużą literę i go wyświetliło, ale wyskakuje mi jakieś guwno jak podam znak. co źle zrobiłem??? kompiluję nasmem i uruchamiam przez dosboxa, jeśli to ma jakiekolwiek znaczenie
#programowanie #assembler
26
Architektura procesorów z rodziny x86(-64) - informacje ogólne

Artykuł opisuje architekturę procesorów z rodziny x86(-64) z punktu widzenia programisty języka Asembler. Opisana została organizacja pamięci, rejestry procesora, stos, tryby pracy procesora, tryby adresowania, zestawy instrukcji oraz format instrukcji.
z- 2
- #
- #





















Poszukuję ogarniętego gościa od assemblera 8086, potrzebuje wytluamczenia od 0 i zrobienia kilku zadań.
Płace złotem !
PW !
@luke_cornet: to masz czas do 18 ( ͡° ͜ʖ ͡°)