Вывод символов строки в хаотичном порядке. - Assembler
Формулировка задачи:
Всем доброго времени суток. Нужна помощь, в решение задачи по Assembler:
Нужно сделать так, чтобы выводилась символы строки в хаотическом порядке (в разных столбцах и разных строчках)
Решение задачи: «Вывод символов строки в хаотичном порядке.»
textual
Листинг программы
org 256 jmp start mes db 'String: $' start: mov ax,3 int 16 push 47104 pop es mov ah,9 mov dx,mes int 33 @@1: xor ax,ax int 22 cmp al,13 je @@3 mov di,ax shr di,2 test di,1 jz @@2 dec di @@2: mov ah,14 stosw jmp @@1 @@3: ret
Объяснение кода листинга программы
- Организация начала работы: код начинается с метки
org 256
, которая указывает на то, что сегмент данных должен быть 256 байт. Далее следует командаjmp start
, которая перенаправляет выполнение программы на меткуstart
. - Вывод строки: команда
mov ax,3
задает значение 3 для регистраax
. Затем происходит переход в сегмент 16 с помощью командыint 16
, что приводит к выводу значения регистраax
в кодировке 16-бит на 16-й порт ввода-вывода. После этого происходит запись в буфер строки символа '$' с помощью командыmov dx,mes
. Далее командаint 33
выводит символ из буфера на экран. - Цикл вывода символов: цикл начинается с метки
@@1
. Регулярное выражениеxor ax,ax
устанавливает начальное значение регистраax
равным 0. Затем происходит переход на метку@@3
, если значение в регистреal
больше или равно 13. Если это не так, то происходит перезапись значения регистраdi
значением регистраax
. Затем регистрdi
делится на 2 с помощью командыshr di,2
, и проверяется, является ли старший бит равным 1 с помощью командыtest di,1
. Если это так, то значение регистраdi
уменьшается на 1 с помощью командыdec di
. - Регистры и переменные: регистр
ax
используется как счетчик, а регистрdi
используется для хранения индекса текущего символа в строке. Буфер строкиmes
используется для хранения строки символов, которую необходимо вывести.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д