Вывод символов строки в хаотичном порядке. - Assembler

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

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

Всем доброго времени суток. Нужна помощь, в решение задачи по Assembler: Нужно сделать так, чтобы выводилась символы строки в хаотическом порядке (в разных столбцах и разных строчках)

Решение задачи: «Вывод символов строки в хаотичном порядке.»

textual
Листинг программы
  1. org  256
  2. jmp  start
  3. mes  db   'String: $'
  4. start:
  5.      mov   ax,3
  6.      int   16
  7.      push  47104
  8.      pop   es
  9.      mov   ah,9
  10.      mov   dx,mes
  11.      int   33
  12. @@1: xor   ax,ax
  13.      int   22
  14.      cmp   al,13
  15.      je    @@3
  16.      mov   di,ax
  17.      shr   di,2
  18.      test  di,1
  19.      jz    @@2
  20.      dec   di
  21. @@2: mov   ah,14
  22.      stosw
  23.      jmp   @@1
  24. @@3: ret

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

  1. Организация начала работы: код начинается с метки org 256, которая указывает на то, что сегмент данных должен быть 256 байт. Далее следует команда jmp start, которая перенаправляет выполнение программы на метку start.
  2. Вывод строки: команда mov ax,3 задает значение 3 для регистра ax. Затем происходит переход в сегмент 16 с помощью команды int 16, что приводит к выводу значения регистра ax в кодировке 16-бит на 16-й порт ввода-вывода. После этого происходит запись в буфер строки символа '$' с помощью команды mov dx,mes. Далее команда int 33 выводит символ из буфера на экран.
  3. Цикл вывода символов: цикл начинается с метки @@1. Регулярное выражение xor ax,ax устанавливает начальное значение регистра ax равным 0. Затем происходит переход на метку @@3, если значение в регистре al больше или равно 13. Если это не так, то происходит перезапись значения регистра di значением регистра ax. Затем регистр di делится на 2 с помощью команды shr di,2, и проверяется, является ли старший бит равным 1 с помощью команды test di,1. Если это так, то значение регистра di уменьшается на 1 с помощью команды dec di.
  4. Регистры и переменные: регистр ax используется как счетчик, а регистр di используется для хранения индекса текущего символа в строке. Буфер строки mes используется для хранения строки символов, которую необходимо вывести.

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


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

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

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы