1. To predsa zavisi na tom ako to konkretne napises v tom assembleri (nastavis raz segment-register pre viac zapisov, pouzivas instrukciu pre blokovy zapis, apod), najvacsie straty su ale aj tak v pristupe na konkretne pamatove miesto (musi to ist cez relativne pomale zbernice) takze hlavny doraz by som kladol na co najmenej pristupov (pri viacnasobnych operaicach s rovnakym miestom drzat si obsah v registri apod), a pouzivat 32bitove data za predpokladu ze sa meni viac posebe iducich bytov.
P.S: vseobecne ale asm bloky uprostred nejakej funkcie sposobuju compileru vyssich jazykov problemy pri optimalizacii zvysku funkcie, takze celkovo optimalnost vzdy zavisi od konkretneho programu ze co je kde a ako urobene, vseobecne sa daju len tliachat nezmysly...
2. Zmenou palety.
Napr. priamo zavolat VESA BIOS Int10h, napr. AX=4F09h, ak to BIOS konkretnej VGA karty podporuje. Napr. http://pdos.csail.mit.edu/6.828/2006/readings/hardw are/vgadoc/VESA.TXT
3. V popise VESA fcii si najdi slova "linear framebuffer", treba nastavit prislusny bit pri nastavovani VESA modu. Fcia 4F01 ti vrati "Physical address of linear video buffer"
Na to aby si tam vedel pristupovat potrebujes byt v protected mode alebo "big real" mode.
Ak chces robit s VESA modmi najlepsie urobis ak si googlom najdes nejaky slusny popis VESA Int10h volani, alebo nejaku VESA specifikaciu, aby si chapal ze co tvoj program robi.