Команды обработки строк данных - Assembler

Узнай цену своей работы

Формулировка задачи:

Дана последовательность из 6 символов (байтов), размещённых в сегменте данных, начиная с адреса DS:0000h. Записать строку в обратном порядке по адресу ES:0050h Помогите пожалуйста написать программу

Решение задачи: «Команды обработки строк данных»

textual
Листинг программы
lea si,string+5
mov di,50h
mov cx,6
write:
std
lodsb
 
cld 
stosb
loop write

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

  1. lea si,string+5 - выполняет привязку регистра SI к адресу строки в памяти, сдвинутому на 5 байт вправо от начала строки.
  2. mov di,50h - выполняет пересылку регистра DI на адрес 50 в сегменте данных.
  3. mov cx,6 - выполняет пересылку регистра CX на значение 6.
  4. write: - это метка цикла.
  5. std - выполняет вывод символа в регистре DL в порт вывода на экран.
  6. lodsb - выполняет загрузку байта из памяти в регистр AL.
  7. cld - устанавливает флаг направления передачи данных в сегменте данных на 1, что означает, что данные передаются от старших адресов к младшим.
  8. stosb - выполняет запись байта из регистра AL в память, начиная с адреса в регистре SI.
  9. loop write - это цикл, который повторяет последние 8 команд до тех пор, пока не будет выполнено условие остановки.

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


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

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

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