Вывод строки (int 10h) - Assembler
Формулировка задачи:
MODEL TINY STACK 256 DATASEG str_text DB 'text' CODESEG start: mov ax,@data mov ds,ax mov cx,4 ff: dec cx push cx mov bx,1 mov cx,21 mov dx,offset str_text mov ah,40h int 21h pop cx jcxz endprog jmp ff endprog: mov ah,04Ch mov al,1h int 21h end start
Решение задачи: «Вывод строки (int 10h)»
textual
Листинг программы
cld lea si,str_text jmp @@2 ; а лучше cmp ax,? + org $-2 (для тех, кто в теме) @@1: int 10h @@2: lodsb test al,al jnz @@1
Объяснение кода листинга программы
- cld - Код команды: 0E. Переменные: нет. Функция: нет.
- lea si,str_text - Код команды: 8D. Переменные: SIB (индексный регистр), str_text (строка). Функция: нет.
- jmp @@2 - Код команды: E9. Переменные: нет. Функция: нет.
- int 10h - Код команды: 10. Переменные: нет. Функция: нет.
- lodsb - Код команды: 8D. Переменные: SIB (индексный регистр), byte (байт). Функция: нет.
- test al,al - Код команды: 85. Переменные: AL (регистр AX). Функция: нет.
- jnz @@1 - Код команды: 85. Переменные: нет. Функция: нет. Список не содержит более 20 элементов, поэтому на этом все.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д