Процедура, которая отображает строки на экран - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д