Как, используя клавиатуру, преобразовать цифру в ASCII-код и вывести на дисплей? - Assembler

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

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

Как, используя клавиатуру, преобразовать цифру в ASCII-код и вывести на дисплей? С подсказками, которые есть на сайте не получается там синтаксис немного отличается. Помогите пожалуйста.

Решение задачи: «Как, используя клавиатуру, преобразовать цифру в ASCII-код и вывести на дисплей?»

textual
Листинг программы
RD #40
WR R1
RD #10
WR R2
CALL M
WR R6
RD #60
WR R1
RD #5
WR R2
CALL M
WR R7
RD #80
WR R1
RD #10
WR R2
CALL M
ADD R7
ADD R6
DIV #3
OUT
HLT
M: RD #0
WR R3
L2: RD @R1+
JNS M1
RD R3
ADD #1
WR R3
M1: JRNZ R2,L2
RD R3
RET

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

  1. RD #40 — Чтение числа 40 из памяти в регистр R1.
  2. WR R1 — Запись значения регистра R1 в память.
  3. RD #10 — Чтение числа 10 из памяти в регистр R2.
  4. WR R2 — Запись значения регистра R2 в память.
  5. CALL M — Вызов подпрограммы M.
  6. WR R6 — Запись значения регистра R6 в память.
  7. RD #60 — Чтение числа 60 из памяти в регистр R1.
  8. WR R1 — Запись значения регистра R1 в память.
  9. RD #5 — Чтение числа 5 из памяти в регистр R2.
  10. CALL M — Вызов подпрограммы M.
  11. WR R7 — Запись значения регистра R7 в память.
  12. RD #80 — Чтение числа 80 из памяти в регистр R1.
  13. WR R1 — Запись значения регистра R1 в память.
  14. RD #10 — Чтение числа 10 из памяти в регистр R2.
  15. CALL M — Вызов подпрограммы M.
  16. ADD R7 — Сложение значения регистра R7 с неизвестным числом (недостающая операция).
  17. ADD R6 — Сложение значения регистра R6 с неизвестным числом (недостающая операция).
  18. DIV #3 — Деление значения регистра R6 на 3 (недостающая операция).
  19. OUT — Вывод результата на дисплей.
  20. HLT — Остановка выполнения программы. Подпрограмма M:
  21. RD #0 — Чтение числа 0 из памяти в регистр R3.
  22. WR R3 — Запись значения регистра R3 в память.
  23. L2: RD @R1+ — Чтение значения регистра R1 и его инкремент на 1, затем переход на следующий байт.
  24. JNS M1 — Если значение регистра R2 (счетчик числа) не равно нулю, то переход на подпрограмму M1.
  25. RD R3 — Чтение значения регистра R3 из памяти.
  26. ADD #1 — Увеличение значения регистра R3 на 1.
  27. WR R3 — Запись значения регистра R3 в память.
  28. M1: JRNZ R2,L2 — Если значение регистра R2 не равно нулю, то повторный вызов подпрограммы L2.
  29. RD R3 — Чтение значения регистра R3 из памяти.
  30. RET — Возврат в основную программу.

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

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