Ошибка в коде (вроде не видно а она есть) - Assembler
Формулировка задачи:
Всем доброго дня.
Извините заранее что достаю тут всех, просто голова уже не варит.
Данный код записан у меня в учебном пособии, нужно его просто переписать и всё.
но выскакивает ошибка синтаксиса
вот код
[org 100h] ; ; Вывод 10 символов от А до J ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Вызовы: Write_char ; Start: mov dl,‘A’ ; В DL код буквы А mov cx,10 ; В счетчике символов -10 .Loop: call Write_char ; Вывод символа loop .Loop ; Переход к следующему символу int 20h ; Возврат в DOS ; ; Вывод символа на экран и увеличение кода символа на 1 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Входы: DL содержит код символа ; Выходы: DL содержит код нового символа ; Write_char: push ax mov ah,02 ; Функция вывода символа int 21h ; Вывод символа на экран inc dl ; Код следующего символа pop ax ret ; Возврат из процедуры
Решение задачи: «Ошибка в коде (вроде не видно а она есть)»
textual
Листинг программы
model small .code org 100h Start: mov dl, 'A' ; В DL код буквы А mov cx, 10 ; В счетчике символов -10 @Loop: call Write_char ; Вывод символа loop @Loop ; Переход к следующему символу DoExit: xor ah,ah ; ждать ( не обязательно ) int 16h ; нажатия клавиши... Exit: mov ah, 04Ch int 21h ; Возврат в DOS ; ; Вывод символа на экран и увеличение кода символа на 1 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Входы: DL содержит код символа ; Выходы: DL содержит код нового символа ; Write_char proc push ax mov ah,02 ; Функция вывода символа int 21h ; Вывод символа на экран inc dl ; Код следующего символа pop ax ret ; Возврат из процедуры Write_char endp end Start
Объяснение кода листинга программы
- Объявлены переменные DL и CX.
- Переменная DL инициализируется значением 'A', а переменная CX -10.
- Затем выполняется цикл, который состоит из двух шагов:
- Выполняется процедура Write_char, которая выводит на экран текущее значение переменной DL.
- Значение переменной CX уменьшается на единицу.
- Если значение переменной CX не равно нулю, то цикл продолжается.
- Если значение переменной CX равно нулю, то выполняется переход к метке DoExit.
- Код в блоке DoExit выполняет функцию ожидания нажатия клавиши.
- После выхода из цикла выполняется переход к метке Exit.
- Код в блоке Exit выполняет возврат в DOS.
- В процедуре Write_char происходит вывод символа на экран, используя функцию 02h.
- Значение переменной DL увеличивается на единицу, чтобы получить код следующего символа.
- Процедура Write_char завершается возвратом в основную программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д