Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программа на Ассемблер (SASM)

Пудинг Сладок Гуру (3318), закрыт 2 недели назад
Задание 2. Разработать в среде программирования SASM на языке программирования
Ассемблер программу:
Задача: написать программу, которая будет отображать каждую нажатую клавишу на
экране дважды. Программа должна запускаться в режиме работы «Запустить в отдельном
окне». Программа завершает свою работу при вводе пустой строки, то есть по нажатии
клавиши «Ввод» - дважды
Лучший ответ
Cogni Просветленный (40132) 2 недели назад
 .MODEL SMALL 
.STACK 100H

.DATA
MSG DB 'Нажмите клавишу (дважды Enter для выхода):', 0DH, 0AH, '$'

.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX

; Выводим приглашение
MOV AH, 9
LEA DX, MSG
INT 21H

READ_KEY:
; Читаем символ с клавиатуры
MOV AH, 1
INT 21H

; Проверяем, является ли символ Enter (0DH)
CMP AL, 0DH
JE CHECK_SECOND_ENTER

; Выводим символ дважды
MOV AH, 2
MOV DL, AL
INT 21H
INT 21H

JMP READ_KEY

CHECK_SECOND_ENTER:
; Читаем следующий символ (ожидаем второй Enter)
MOV AH, 1
INT 21H

; Проверяем, является ли второй символ тоже Enter
CMP AL, 0DH
JE EXIT

; Если второй символ не Enter, выводим первый Enter дважды и продолжаем
MOV AH, 2
MOV DL, 0DH
INT 21H
INT 21H

; Выводим второй символ, если он был нажат
CMP AL, 0
JE READ_KEY
MOV DL, AL
INT 21H
INT 21H

JMP READ_KEY

EXIT:
; Завершаем программу
MOV AH, 4CH
INT 21H

MAIN ENDP
END MAIN
Остальные ответы
Татьяна Мудрец (10496) 2 недели назад
Если ты не даун, ты такую дичь даже проходить не будешь
Пудинг СладокГуру (3318) 2 недели назад
как видишь, проходим эту ерунду на архитектуре аппаратных средств
Татьяна Мудрец (10496) Пудинг Сладок, в нейросеть забей, это дичь, не один человек не будет использовать ассемблер кроме как бута для ОС
Похожие вопросы