Вывод определенного элемента массива на экран - Assembler

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

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

Имеется следующий код:
.model small
.stack 100h
.data
    mes db 'hello_world$'
.code
start:
    mov ax,@data
    mov ds,ax
    mov ah,09h
    int 21h
exit:
    mov ax,4C00h
    int 21h
end start
Как его преобразовать, чтобы выводился, скажем, только n-ый символ массива? Пробую сам - не получается:
.model small
.stack 100h
.data
    mes db 'hello_world$'
.code
start:
;   mov ax,@data
;   mov ds,ax
;   mov ah,09h
;   int 21h
    
    mov bx,5
    mov al,mes[bx]
    mov dl,al
    mov ah,09h
    int 21h
exit:
    mov ax,4C00h
    int 21h
end start

Решение задачи: «Вывод определенного элемента массива на экран»

textual
Листинг программы
.model small
.stack 100h
.data
    mes db 'hello_world$'
.code
start:mov ax,3; очищаем экран и устанавливаем
    int 10h;тот видеорежим, который нам нужен
    mov ax,@data
    mov ds,ax
    mov ah,2
    mov dl,[mes+8]
    int 21h
exit:mov ah,4Ch
    int 21h
end start

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

  1. Объявлен сегмент данных .data и сегмент кода .code
  2. Переменная mes имеет сегмент данных ds и содержит строку 'hello_world$'
  3. При запуске программы происходит очистка экрана и установка видеорежима, который нам нужен
  4. Затем происходит загрузка сегмента данных в регистр ds
  5. В регистре ah устанавливается значение 2, которое определяет команду вывода на экран
  6. В регистре dl содержится адрес символа 'hello' в сегменте данных ds
  7. Команда int 21h выполняет вывод на экран символа 'hello'
  8. Выполняется команда перехода в конец программы exit:
  9. Завершается выполнение программы командой int 4Ch

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


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

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

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