drawline: movs word ptr [di], f s: [si] ; !! movs dword ptr [di], f s: [si]
or di, di ; начало нового сегмента ?
jne @F ; -> нет
call NxtWin ; установка следующего окна
I @@: loop drawline ; управление повторами цикла
ret ; возврат из подпрограммы
Первая команда примера 7.И переменная, способ ее записи для пересылки 32-разрядных кодов (режим True color) показан в комментарии.
Для использования всех преимуществ строковой операции из цикла надо исключить проверку значений адресов, т. е. пересылать строку по частям так, как это делалось в примере 7.7. В зависимости от видеорежима, основные действия в нем выполняли команды rep stosw (режим Hi-Color) или rep stosd (режим True color). При подстановке в текст примера 7. И их надо изменить так, как показано ниже.
rep stosw заменяется командой rep movs word ptr [di], fs:[si]
rep stosd заменяется командой rep movs dword ptr [di], fs:[si]
Мы не будем приводить измененный вариант примера 7.7, а перейдем к описанию универсального способа пересылки.