Написать подпрограмму заполнения всего дополнительного сегмента (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

Объяснение кода листинга программы

  1. mov cx,-1 — в данном случае происходит установка счётчика циклов (переменной CX) в значение -1.
  2. xor di,di — здесь мы обнуляем счётчик итераций (переменную DI).
  3. mov al,1 — в альговую регистр (AX) записывается число 1.
  4. stosb — выполняется операция заполнения строки байтами из регистра AX (в данном случае 1), начиная с адреса ES:DI.
  5. rol al,1 — происходит сдвиг байта в регистре AX на один разряд вправо и результат записывается в регистр AX.
  6. loop @running — происходит переход к метке @running, при этом CX уменьшается на 1, а DI увеличивается на 1. Процесс повторяется до тех пор, пока CX не станет равным нулю.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы