Процедура, которая отображает строки на экран - Assembler
Формулировка задачи:
нужно написать процедуру, которая отображает строки на экран, смещение строк передается через адрес в стек.
я хочу понять алгоритм. мое понимание: нужно ввести с клавиатуры строку, запихнуть ее в стек(через push), ввести следующую строку и так же через push запихнуть. затем в самой процедуре должен быть pop и сразу вывод на экран? и как понять "смещение строк"?
Решение задачи: «Процедура, которая отображает строки на экран»
textual
Листинг программы
.model small .386 .data string db 80,0,80 dup ('$') .stack db 256 dup(?) .code start: mov ax,@data mov ds,ax mov ah,0Ah lea dx,string int 21h lea bx,string+2 push bx call print pop bx xor ax,ax int 16h mov ah,4Ch mov al,00h int 21h print proc push bp mov bp,sp mov ah,02h mov dl,0Dh int 21h mov ah,02h mov dl,0Ah int 21h mov ah,09h mov dx,[bp+4] int 21h pop bp ret print endp end start
Объяснение кода листинга программы
- Объявлены две переменные:
— string, которая содержит строку
$
80 раз, — stack, которая содержит 256 байтов неопределённых данных. - Код выводит строку
$
на экран 80 раз. - Далее, код выводит на экран два символа: — символ перевода строки '\n', — символ возврата каретки '\r'.
- Затем, код выводит на экран длину строки, равную 80.
- Код завершается выводом на экран двух символов: — символ перевода строки '\n', — символ возврата каретки '\r'.
- В конце кода присутствуют процедуры: — start, — print.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д