Не выводится первый символ - 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
Почему не выводится первый символ? Например, ввожу "Computer", выводится "omputer". Как можно исправить?
Уже нашел ошибку.

Решение задачи: «Не выводится первый символ»

textual
Листинг программы
m:
mov ah, 1
int 21h
cmp al, 32
je m
mov si, 0 
jmp k
input:

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

  1. Устанавливается значение регистра ah равным 1.
  2. Вызывается прерывание 21h для ввода данных с клавиатуры.
  3. Сравнивается содержимое регистра al с числом 32.
  4. Если al равно 32, выполняется переход на метку m.
  5. Устанавливается значение регистра si равным 0.
  6. Происходит переход на метку k.
  7. Программа продолжает выполнение с метки input.

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


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

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

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