Не выводится первый символ - Assembler

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. .model small
  2. .stack 256
  3. .data
  4. mes db 'Enter the string: $'
  5. mas db 256 dup (0)
  6. len dw 0
  7. .code
  8. start:
  9. mov ax, @data
  10. mov ds, ax
  11. mov ah, 9
  12. lea dx, mes
  13. int 21h
  14. m:
  15. mov ah, 1
  16. int 21h
  17. cmp al, 32
  18. je m
  19. mov si, 0
  20. input:
  21. mov ah, 1
  22. int 21h
  23. cmp al, 13
  24. je metka
  25. k:
  26. inc len
  27. mov mas[si], al
  28. inc si
  29. cmp al, 32
  30. je n
  31. jmp input
  32. n:
  33. mov ah, 1
  34. int 21h
  35. cmp al, 13
  36. je metka
  37. cmp al, 32
  38. je n
  39. jmp k
  40. metka:
  41. mov ah, 9
  42. mov si, len
  43. mov mas[si], '$'
  44. lea dx, mas
  45. int 21h
  46. mov ah, 4ch
  47. int 21h
  48. end start
Почему не выводится первый символ? Например, ввожу "Computer", выводится "omputer". Как можно исправить?
Уже нашел ошибку.

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

textual
Листинг программы
  1. m:
  2. mov ah, 1
  3. int 21h
  4. cmp al, 32
  5. je m
  6. mov si, 0
  7. jmp k
  8. input:

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

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

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы