Графические устройства

         

Микропрограммный цикл очистки сегмента памяти i



Пример 3.2. Микропрограммный цикл очистки сегмента памяти i

еах, еах ; очистка регистра еах
di, di ; di = 0, адрес начала сегмента
сх, 16384 ; сх = 16384, счетчик повторов
stosd ; очистка сегмента, указанного в ES

примере 3.2 цикл пересылки сократился до одной команды, выполнение которой микропроцессор повторяет до тех пор, пока содержимое сх не окажется равным нулю. Безусловно, микропрограммный цикл выполняется значительно быстрее, чем программный.

Инструкции rep и loop различаются способом работы со счетчиком повторов. Rep сначала проверяет содержимое регистра сх и, если оно отлично от нуля, выполняет строковую операцию и потом уменьшает содержимое сх на 1. Loop сначала уменьшает содержимое сх на 1 и в зависимости от результата повторяет или прекращает выполнение цикла. Это различие проявляется, если при входе в цикл регистр сх очищен. В таком случае указанная после rep операция не выполнится ни разу, в то время как команда loop будет повторять выполнение цикла 65 536 раз!

Таким образом, при обмене данными с видеопамятью можно использовать как обычные, так и строковые операции пересылки. В тех случаях, когда возможен выбор, предпочтение следует отдавать строковым операциям.

 


Содержание раздела