Процедура, которая отображает строки на экран - Assembler

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

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

нужно написать процедуру, которая отображает строки на экран, смещение строк передается через адрес в стек. я хочу понять алгоритм. мое понимание: нужно ввести с клавиатуры строку, запихнуть ее в стек(через push), ввести следующую строку и так же через push запихнуть. затем в самой процедуре должен быть pop и сразу вывод на экран? и как понять "смещение строк"?

Решение задачи: «Процедура, которая отображает строки на экран»

textual
Листинг программы
  1. .model small               
  2. .386                       
  3.  
  4. .data
  5. string db 80,0,80 dup ('$')
  6.  
  7. .stack                 
  8.     db  256 dup(?)     
  9.  
  10. .code                  
  11. start:                 
  12.     mov ax,@data
  13.     mov ds,ax
  14.    
  15.     mov ah,0Ah
  16.     lea dx,string
  17.     int 21h
  18.    
  19.     lea bx,string+2
  20.        
  21.     push bx
  22.    
  23.     call print
  24.    
  25.     pop bx
  26.    
  27.     xor ax,ax
  28.     int 16h
  29.    
  30.     mov ah,4Ch             
  31.     mov al,00h             
  32.     int 21h
  33.  
  34.     print proc
  35.         push bp
  36.         mov bp,sp
  37.        
  38.         mov ah,02h
  39.         mov dl,0Dh
  40.         int 21h
  41.        
  42.         mov ah,02h
  43.         mov dl,0Ah
  44.         int 21h
  45.        
  46.         mov ah,09h
  47.         mov dx,[bp+4]
  48.         int 21h
  49.        
  50.         pop bp
  51.        
  52.         ret
  53.     print endp
  54. end start

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

  1. Объявлены две переменные: — string, которая содержит строку $ 80 раз, — stack, которая содержит 256 байтов неопределённых данных.
  2. Код выводит строку $ на экран 80 раз.
  3. Далее, код выводит на экран два символа: — символ перевода строки '\n', — символ возврата каретки '\r'.
  4. Затем, код выводит на экран длину строки, равную 80.
  5. Код завершается выводом на экран двух символов: — символ перевода строки '\n', — символ возврата каретки '\r'.
  6. В конце кода присутствуют процедуры: — start, — print.

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


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

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

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

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

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

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