Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Модификация вашей первой программы на Турбо АссемблереТеперь снова войдем в редактор и модифицируем программу таким образом, чтобы она могла воспринимать какие-то данные из внешней среды (этой "внешней средой" будете вы, а вводимые данные будут набираться на клавиатуре). Измените программу следующим образом: .MODEL SMALL .STACK 100h .DATA TimePrompt DB 'Это время после полудня? (ДА/НЕТ) - [Y/N]$' GoodMorningMessage LABEL BYTE DB 13,10,'Доброе утро!',13,10,'$' GoodAfternoonMessage LABEL BYTE DB 13,10,'Здравствуйте!',13.10,'$' .CODE mov ax,@Data mov dx,ax; установить регистр DS таким образом, чтобы он указывал ; на сегмент данных mov dx,OFFSET TimePrompt; ссылка на сообщение-запрос mov ah,9; функция DOS вывода строки int 21h; получить ответ из одного символа cmp al,'Y'; указано время после полудня (прописная буква Y) jz IsAfternoon; да, время указано после полудня cmp al,'y'; указано время после полудня (строчная буква y) jnz IsMorning; нет, время указано до полудня IsAfternoon: mov dx,OFFSET GoodAfternoonMessage; указывает на ; приветствие "Здравствуйте" jmp DisplayGreeting IsMorning: mov dx,OFFSET GoodMorningMessage; указывает на ; приветствие "Доброе утро" DisplayGreeting: mov ah,9; функция DOS вывода сообщения int 21h; вывести соответствующее сообщение mov ah,4ch; функция DOS завершения программы int 21h; завершить программу END Таким образом вы добавили в программу два очень важных новых средства: возможность ввода и принятие решений. Эта программа запрашивает у вас, является ли вводимое время временем после полудня, воспринимая ответ (один символ) с клавиатуры. Если таким ответом будет буква Y в верхнем или нижнем регистре (что означает ответ ДА), то программа выводит сообщение "Здравствуйте!", в противном случае выводится сообщение "Доброе утро!". В данной программе имеются все основные элементы полезной программы: ввод из информации внешней среды, обработка данных и принятие решения. Сохраните эту модифицированную программу на диске. После этого заново ассемблируйте и скомпонуйте программу, как в предыдущем примере. Запустите ее снова, введя hello в ответ на подсказку DOS. Выведется сообщение: Это время после полудня? (ДА/НЕТ) - [Y/N] Курсор будет мерцать у последнего символа в ожидании ввода ответа. Нажмите Y. Программа ответит: Здравствуйте! Таким образом HELLO.ASM стала теперь интерактивной программой с принятием решений. В ходе ассемблирования вы, конечно, получите различные сообщения об ошибках из-за неправильного набора программы и ошибках в синтаксисе. Турбо Ассемблер перехватывает такие ошибки, сообщая о них. Выводимые сообщения об ошибках разбиваются на две категории: предупреждения и ошибки. Если Турбо Ассемблер обнаруживает что-то подозрительное, но необязательно неверное, он выводит предупреждающее сообщение. Иногда предупреждающие сообщения можно игнорировать, но всегда лучше их проверить и убедиться в том, что вы понимаете суть проблемы. При обнаружении чего-либо явно неправильного в вашей программе, что делает невозможным завершение ассемблирования и формирование объектного файла, Турбо Ассемблер выводит сообщение об ошибке. Другими словами, предупреждающие сообщения не свидетельствуют о критических ошибках, в то время как ошибки, о которых говориться в сообщениях об ошибках, должны быть исправлены перед запуском программы. В Приложении E содержится перечень сообщений об ошибках и предупреждающих сообщений. Как и любой язык программирования, Турбо Ассемблер не может распознавать ошибки в логике программы. Турбо Ассемблер только сообщает вам, может ли ваш ассемблируемый код быть выполнен в том виде, как он введен, но он не может сделать вывод о том, будет ли программа работать так, как вы этого хотите. Об этом можете судить только вы сами. Чтобы получить распечатку программы (вывести ее на устройство печати), обратитесь к руководству по редактору текстов. Исходные файлы Турбо Ассемблера представляют собой обычные текстовые файлы в коде ASCII (американский стандартный код обмена информацией), поэтому вы можете также напечатать исходный текст программы на Ассемблере с помощью команды PRINT, введя ее в ответ на подсказку операционной системы DOS.
|