Вывод определенного элемента массива на экран - Assembler
Формулировка задачи:
Имеется следующий код:
Как его преобразовать, чтобы выводился, скажем, только n-ый символ массива?
Пробую сам - не получается:
.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
.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
Объяснение кода листинга программы
- Объявлен сегмент данных .data и сегмент кода .code
- Переменная mes имеет сегмент данных ds и содержит строку 'hello_world$'
- При запуске программы происходит очистка экрана и установка видеорежима, который нам нужен
- Затем происходит загрузка сегмента данных в регистр ds
- В регистре ah устанавливается значение 2, которое определяет команду вывода на экран
- В регистре dl содержится адрес символа 'hello' в сегменте данных ds
- Команда int 21h выполняет вывод на экран символа 'hello'
- Выполняется команда перехода в конец программы exit:
- Завершается выполнение программы командой int 4Ch
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д