Адресация памяти по базе со сдвигом - Assembler

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

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

Необходимо составить свою фамилию, имя, отчество из массива данных, представляющего собой алфавит, используя косвенные методы адресации. Для вывода результата воспользоваться функцией 09h двадцать первого прерывания DOS. Пример вывода текстовой строки приведен в приложении. shumko sergey vladimirovich

Решение задачи: «Адресация памяти по базе со сдвигом»

textual
Листинг программы
masm
    .model  small
    .data
 
alp_e   db  0Dh,0Ah,'abcdefghijklmnopqrstuvwxyz$'
ch1 db  5 dup(?)
    db  "$"
 
    .code
start:
    mov ax,@data
    mov ds,ax
 
    mov al,alp_e[9]
    mov ch1[0],al
    mov dx,offset ch1
    mov ah,09h
    int 21h
 
    mov ah,4Ch
    mov al,00h
    int 21h
 
end start

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

  1. Объединение команд и данных в одном файле.
  2. Используется модель small для формирования сегментов данных и кода.
  3. Сегмент данных начинается с адреса 0100h.
  4. Переменная alp_e объявлена как строка, содержащая 16 символов, включая завершающий символ доллара.
  5. Переменная ch1 объявлена как строка, содержащая 6 символов, включая завершающий символ доллара.
  6. Код программы начинается с метки start.
  7. Команда mov ax,@data устанавливает сегмент данных в регистре AX.
  8. Команда mov ds,ax устанавливает сегмент данных в регистре DS.
  9. Команда mov al,alp_e[9] загружает в регистр AL девятый символ из строки alp_e.
  10. Команда mov ch1[0],al записывает в первый элемент строки ch1 значение регистра AL.
  11. Команда mov dx,offset ch1 устанавливает сегмент и смещение строки ch1 в регистре DX.
  12. Команда mov ah,09h устанавливает код функции 9 в регистре AH.
  13. Команда int 21h вызывает функцию 9, которая выводит на экран содержимое регистра DX.
  14. Команда mov ah,4Ch устанавливает код функции 4Ch в регистре AH.
  15. Команда mov al,00h устанавливает значение регистра AL равным 0.
  16. Команда int 21h вызывает функцию 4Ch, которая завершает выполнение программы.
  17. Значение 09h в регистре AH представляет функцию вывода символа на экран.
  18. Значение 4Ch в регистре AH представляет функцию завершения работы программы.
  19. Значение 00h в регистре AL представляет символ, который выводится на экран.
  20. Значение 0100h представляет начальный адрес сегмента данных в 16-битном коде.

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


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

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

15   голосов , оценка 3.933 из 5
Похожие ответы