Написать программу, которая спросит сначала Ваше имя - Assembler

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

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

Задание такое :Написать программу, которая спросит сначала Ваше имя, после ввода имени спросит фамилию, а потом выведет: привет, введенная ФАМИЛИЯ введенное имя.
на FASM

Решение задачи: «Написать программу, которая спросит сначала Ваше имя»

textual
Листинг программы
Hello db 'H',0,'e',0,'l',0,'l',0,'o',3 dup(0)

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

  1. Сначала в коде описывается переменная Hello типа db (double byte), которая содержит строку Helllo.
  2. Затем описывается переменная name типа sb (string byte), которая будет использоваться для хранения введенного пользователем имени.
  3. Далее идет инструкция mov ax, @data - перенос содержимого регистра ax в регистр data.
  4. Затем идет инструкция mov ds, ax - установка сегмента данных равным сегменту data.
  5. После этого идет инструкция mov dx, offset name - установка регистра dx равным смещению переменной name.
  6. Затем идет инструкция mov cx, 8 - установка регистра cx равным 8.
  7. Далее идет цикл rep ins (repeat insert), который будет выполняться 8 раз.
  8. В каждой итерации цикла в переменную name будет добавляться один символ из строки Hello.
  9. После завершения цикла идет инструкция mov dx, offset name - установка регистра dx равным смещению переменной name.
  10. Затем идет инструкция mov cx, 3 - установка регистра cx равным 3.
  11. Далее идет цикл rep ins (repeat insert), который будет выполняться 3 раза.
  12. В каждой итерации цикла в переменную name будет добавляться один символ из строки Hello.
  13. После завершения цикла идет инструкция mov dx, offset name - установка регистра dx равным смещению переменной name.
  14. Затем идет инструкция mov bx, offset name - установка регистра bx равным смещению переменной name.
  15. Далее идет инструкция mov cx, 5 - установка регистра cx равным 5.
  16. Затем идет цикл rep movsb (repeat move string), который будет выполняться 5 раз.
  17. В каждой итерации цикла содержимое регистра bx будет копироваться в переменную name с увеличением смещения на 1.
  18. После завершения цикла идет инструкция mov dx, offset name - установка регистра dx равным смещению переменной name.
  19. Затем идет инструкция mov cx, 11 - установка регистра cx равным 11.
  20. Далее идет цикл rep movsb (repeat move string), который будет выполняться 11 раз.
  21. В каждой итерации цикла содержимое регистра bx будет копироваться в переменную name с увеличением смещения на 1.

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


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

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

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