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
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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 -
  • Odpowiedz
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
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
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
  • Odpowiedz
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.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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 ( ͡°
  • Odpowiedz
@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.
  • Odpowiedz
@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 ( ͡ ͜ʖ ͡)
  • Odpowiedz
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:

liczbaLL db
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
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
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Witam!

Jak dokładnie działa funkcja TEST w asemblerze 8086?

Mam taki króciutki fragment kodu:

  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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,
  • Odpowiedz
#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
wytrzzeszcz - #naukaprogramowania #assembler #wytrzeszczoweasemblery
Lekcja 2.
Tema...

źródło: comment_3BTPf2o8DBQW67vhCnUbyuQ1uf5XevUR.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#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.
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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.
  • Odpowiedz
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.
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
@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.
  • Odpowiedz
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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach