Вывести на экран монитора в режиме эмуляции DOS содержимого двух регистров - Assembler
Формулировка задачи:
Задание на лабораторную работу:
1. Вывести на экран монитора в режиме эмуляции DOS содержимого двух регистров (ax,bl)
Если при выводе значение регистра равно нулевому значению, то предусмотреть в коде программы (без ввода с клавиатуры) возможность записи в данный регистр произвольного значения.
Решение задачи: «Вывести на экран монитора в режиме эмуляции DOS содержимого двух регистров»
textual
Листинг программы
use16 org 100h push ax mov ax,03h int 10h pop ax pushf pop cx or bl,bl jnz @f .loop0: add cx,0EAh or cl,cl jz .loop0 mov bl,cl @@: mov [es:0],bl mov [es:1],0Ah or ax,ax jnz @f .loop0: add cx,0EAh or cx,cx jz .loop0 mov ax,cx @@: mov [es:0],al mov [es:1],0Ah mov [es:2],ah mov [es:3],0Ah ret
Объяснение кода листинга программы
В этом коде на языке Assembler для процессора x86 происходит следующее:
- Вывод на экран содержимого регистра AX (номер 100h) в шестнадцатеричной системе счисления.
- Сохранение в стеке значения регистра AX.
- Установка значения регистра AX равным 3.
- Выполнение команды int 10h, которая выводит на экран содержимое регистра AX.
- Восстановление из стека значения регистра AX.
- Вывод на экран содержимого регистра CX (номер 100h) в шестнадцатеричной системе счисления.
- Выполнение цикла, пока значение регистра CX не станет равным 0.
- Внутренний цикл:
- Увеличение значения регистра CX на 0EAh (11011010b).
- Проверка значения регистра CX.
- Если значение регистра CX не равно 0, переход к внутреннему циклу.
- Если значение регистра CX равно 0, переход к внешнему циклу.
- Сохранение в стеке значения регистра BL.
- Вывод на экран содержимое регистра BL.
- Сохранение в стеке значения регистра AX.
- Вывод на экран содержимое регистра AL (номер 100h).
- Вывод на экран содержимое регистра AH (номер 100h).
- Выполнение команды ret, которая завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д