Написать подпрограмму заполнения всего дополнительного сегмента (ES) - Assembler
Формулировка задачи:
Здравствуйте, помогите мне пожалуйста Совсем запарилась, я в этом ничего не понимаю, а вот и задача.
Нужно написать подпрограмму заполнения всего дополнительного сегмента (ES) последовательностью байтов со значениями 1, 2, 4, 8, …64, 128, 1, 2, 4...(бегущая единица), реальный режим работы процессора.
И если можно хотя бы немного объяснений, заранее очень благодарна
Решение задачи: «Написать подпрограмму заполнения всего дополнительного сегмента (ES)»
textual
Листинг программы
mov cx,-1 xor di,di mov al,1 @running: stosb rol al,1 loop @running
Объяснение кода листинга программы
- mov cx,-1 — в данном случае происходит установка счётчика циклов (переменной CX) в значение -1.
- xor di,di — здесь мы обнуляем счётчик итераций (переменную DI).
- mov al,1 — в альговую регистр (AX) записывается число 1.
- stosb — выполняется операция заполнения строки байтами из регистра AX (в данном случае 1), начиная с адреса ES:DI.
- rol al,1 — происходит сдвиг байта в регистре AX на один разряд вправо и результат записывается в регистр AX.
- loop @running — происходит переход к метке @running, при этом CX уменьшается на 1, а DI увеличивается на 1. Процесс повторяется до тех пор, пока CX не станет равным нулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д