Не выводится первый символ - Assembler
Формулировка задачи:
Листинг программы
- .model small
- .stack 256
- .data
- mes db 'Enter the string: $'
- mas db 256 dup (0)
- len dw 0
- .code
- start:
- mov ax, @data
- mov ds, ax
- mov ah, 9
- lea dx, mes
- int 21h
- m:
- mov ah, 1
- int 21h
- cmp al, 32
- je m
- mov si, 0
- input:
- mov ah, 1
- int 21h
- cmp al, 13
- je metka
- k:
- inc len
- mov mas[si], al
- inc si
- cmp al, 32
- je n
- jmp input
- n:
- mov ah, 1
- int 21h
- cmp al, 13
- je metka
- cmp al, 32
- je n
- jmp k
- metka:
- mov ah, 9
- mov si, len
- mov mas[si], '$'
- lea dx, mas
- int 21h
- mov ah, 4ch
- int 21h
- end start
Уже нашел ошибку.
Решение задачи: «Не выводится первый символ»
textual
Листинг программы
- m:
- mov ah, 1
- int 21h
- cmp al, 32
- je m
- mov si, 0
- jmp k
- input:
Объяснение кода листинга программы
- Устанавливается значение регистра
ah
равным 1. - Вызывается прерывание 21h для ввода данных с клавиатуры.
- Сравнивается содержимое регистра
al
с числом 32. - Если
al
равно 32, выполняется переход на меткуm
. - Устанавливается значение регистра
si
равным 0. - Происходит переход на метку
k
. - Программа продолжает выполнение с метки
input
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д