У тебя 4 чтения из памяти и 1 запись. Это если классическое пламя брать. Плюс копирование в видеопамять при буферизации. Первый этап (4 чтения и запись) с обычном памятью будет быстрее (почти наверняка), чем одно чтение из видеопамяти.
Но вывод в видеопамять — тоже не супербыстрая штука. Если нужно ускорить, включают режим write-combining (MTRR-регистры в мануалах Intel есть). Под DOSBox только это не будет работать, т.к. нужен P6+.
Регистр MSR номер 259h — это тип памяти для сегмента 0A000h (4 блока по 16 Кб) в EAX и для 0B000h (тоже 4 блока по 16 Кб) в EDX, их не трогаем (поэтому rdmsr). Выставляет для всех 4-х блоков сегмента 0A000h тип write-combining (номер 1) и записываем в регистр.
Но в режиме write-combining желательно только писать в видеопамять. Иначе могут быть глюки. Но запись ускоряется во много раз (точно не помню во сколько, я как-то тестил, но вроде в десятки раз прям). Но только не меньше, чем в 3-4 раза :))
Т.е. ты либо rdmsr снова делаешь и восстанавливаешь потом EAX (потому что rdmsr читаем из регистра в EDX:EAX), а затем пишешь (wrmsr), либо сохраняешь пару EAX/EDX и потом wrmsr просто.
Но по умолчанию там нули, т.е. кэширование отключено. Собственно, поэтому видеопамять медленно и работает: во-первых, кэширование отключено, во-вторых, сегмент 0A000h — это же отображение видеопамяти.