Brodaci siwi dziadkowie przynależący do kasty milenialsów często pamietają jeszcze jak komputery PC były na węgiel i miały procesory taktowane zawrotnymi szybkosciami kilku do kilkunastu megaherców. Często sklecenie na nich gierki która nie doprowadzała tych blaszanych klatek na podzespoły do zadyszki wymagało cudów ekwilibrystyki w zakresie optymalizacji. Jedną z najbardziej porąbanych moim prywatnym zdaniem technik było pisanie tzw. kompilatorów sprajtów/spritów które grafike bitmapową zamieniały w... kod maszynowy "rysujacy" grafikę od razu w pamięci karty graficznej. Wspierała tą technikę m.in. popularna kiedyś w Polsce, w tym na tym forum, biblioteka Allegro. Oczywiście najlepiej dla prędkości działania by kod rysujący nie wykorzystywał pętli. Przy czym często ograniczało to wymiary grafiki z powodu limitów pamieci. Kompilacja w latach 80tych była w zasadzie jedyną sensowną metodą uzyskania przezroczystości na PC. Bardziej egzotyczne mutacje tej techniki obejmowały dynamiczną modyfikację kodu rysowania takich elementów celem ściśniecia danych w skromnych ilościach pamięci operacyjnej - tak uzyskiwano np. skalowanie bez konieczności trzymania w pamieci wielu wariantów tej samej grafiki. Oszczędzało to pamięć, ale mogło wprowadzać dodatkowe opóźnienia związane z koniecznością odwoływania się co jakiś czas do pamięci operacyjnej by pobrać nową wersję kodu do cache procesora. O ile twój procesor w ogóle posiadał cache xD. Ładowanie dynamicznie z dysku często nie wchodziło w grę bo zmieniałoby to rozgrywkę w pokaz slajdów z powodu koszmarnie długiego czasu ładowania. A tutaj video ilustrujące w praniu jak bardzo przyśpieszała taka kompilacja rysowanie grafiki, acz tutaj wersja bez skalowania
We work through the process of creating a sprite engine on the IBM PC. The PC 5150 doesn't have any sprite hardware, so we have to resort to some sophisticat...
https://www.youtube.com/watch?v=q1S23G3S7IAAssembler x86(-64) Tutorial cz. 2 - Rejestry Procesora: rejestry ogólnego przeznaczenia, rejestry specjalnego przeznaczenia, rejestry segmenntowe, rejestre flag
https://techniczniej.pl@nonameuser: książka jest o podstawach, malware i inżynieria wsteczna dużo by namieszała
Windows API; WinAPI c c++; NtAPI c c++; Windows Native API NtAPI; co to jest WinAPI; WinAPI przykłady c c++
https://techniczniej.plassembler x86 tutorial poradnik ksiazka; x86 assembly tutorial
https://techniczniej.pl@jarekr000000: Ten kod działa pod 32bit ;). Zwróć uwagę, w jaki sposób został skompilowany.
64bit byłby jeszcze ładniejszy - jest rok 2022 i 64 to od dawna standard, a jest w nim dużo dobrego (zresztą sam syscall to w praktyce "ciekawostka" - mało kto bezpośrednio wywołuje systemowe funkcje)
Po co nauczyłem się assemblera - jak przeszedłem od programowania wysokopoziomowego do niskopoziomowego.
https://techniczniej.plJa bym wolał tytuł "Czego się nauczyłem (oprócz assemblera) ucząc się Assemblera". Bo tytuł "Po co uczyłem się assemblera?" brzmi jak krzyk rozpaczy "Po co, no po co? tyle zmarnowanych godzin, a kurde w Heroesy IV mogłem pograć. No powiec mi po co bo ja nie wiem"
Update spojrzałem na ten twój system operacyjny. Bardzo małe readme tworzysz. Co to za system operacyjny co nie jest napisane na jakie procesory działa?
@KamilAdam: Tytuły artykułów to dosyć ciężki temat ;). Co do repo, to nazwa może być myląca, bo to jest baardzo prosty kernel pod x86.
CloudPro@Spine: dopieściłeś projekt :)