Ошибка в коде (вроде не видно а она есть) - 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

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

  1. Объявлены переменные DL и CX.
  2. Переменная DL инициализируется значением 'A', а переменная CX -10.
  3. Затем выполняется цикл, который состоит из двух шагов:
    • Выполняется процедура Write_char, которая выводит на экран текущее значение переменной DL.
    • Значение переменной CX уменьшается на единицу.
  4. Если значение переменной CX не равно нулю, то цикл продолжается.
  5. Если значение переменной CX равно нулю, то выполняется переход к метке DoExit.
  6. Код в блоке DoExit выполняет функцию ожидания нажатия клавиши.
  7. После выхода из цикла выполняется переход к метке Exit.
  8. Код в блоке Exit выполняет возврат в DOS.
  9. В процедуре Write_char происходит вывод символа на экран, используя функцию 02h.
  10. Значение переменной DL увеличивается на единицу, чтобы получить код следующего символа.
  11. Процедура Write_char завершается возвратом в основную программу.

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


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

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

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