Написать программу, которая спросит сначала Ваше имя - Assembler
Формулировка задачи:
Задание такое :Написать программу, которая спросит сначала Ваше имя, после ввода имени спросит фамилию, а потом выведет: привет, введенная ФАМИЛИЯ введенное имя.
на FASM
Решение задачи: «Написать программу, которая спросит сначала Ваше имя»
textual
Листинг программы
Hello db 'H',0,'e',0,'l',0,'l',0,'o',3 dup(0)
Объяснение кода листинга программы
- Сначала в коде описывается переменная
Helloтипаdb(double byte), которая содержит строкуHelllo. - Затем описывается переменная
nameтипаsb(string byte), которая будет использоваться для хранения введенного пользователем имени. - Далее идет инструкция
mov ax, @data- перенос содержимого регистраaxв регистрdata. - Затем идет инструкция
mov ds, ax- установка сегмента данных равным сегментуdata. - После этого идет инструкция
mov dx, offset name- установка регистраdxравным смещению переменнойname. - Затем идет инструкция
mov cx, 8- установка регистраcxравным 8. - Далее идет цикл
rep ins(repeat insert), который будет выполняться 8 раз. - В каждой итерации цикла в переменную
nameбудет добавляться один символ из строкиHello. - После завершения цикла идет инструкция
mov dx, offset name- установка регистраdxравным смещению переменнойname. - Затем идет инструкция
mov cx, 3- установка регистраcxравным 3. - Далее идет цикл
rep ins(repeat insert), который будет выполняться 3 раза. - В каждой итерации цикла в переменную
nameбудет добавляться один символ из строкиHello. - После завершения цикла идет инструкция
mov dx, offset name- установка регистраdxравным смещению переменнойname. - Затем идет инструкция
mov bx, offset name- установка регистраbxравным смещению переменнойname. - Далее идет инструкция
mov cx, 5- установка регистраcxравным 5. - Затем идет цикл
rep movsb(repeat move string), который будет выполняться 5 раз. - В каждой итерации цикла содержимое регистра
bxбудет копироваться в переменнуюnameс увеличением смещения на 1. - После завершения цикла идет инструкция
mov dx, offset name- установка регистраdxравным смещению переменнойname. - Затем идет инструкция
mov cx, 11- установка регистраcxравным 11. - Далее идет цикл
rep movsb(repeat move string), который будет выполняться 11 раз. - В каждой итерации цикла содержимое регистра
bxбудет копироваться в переменнуюnameс увеличением смещения на 1.