- •Компилирование шестнадцатиразрядных программ с помощью fasm
- •2. Ввод кода программы
- •2.1. Программа "com"
- •2.2. Программа "exe"
- •3. Задание кодов данных
- •4. Системный сервис
- •5. Компилирование программ
- •6. Компилирование и исполнение программ в 64 разрядной версии Windows
- •7. Задания для самостоятельной работы
- •Приложение № 1. Некоторые функции системного прерывания 21h Организация ввода с клавиатуры
- •Организация вывода
- •Приложение №2. Система машинных команд мп 8086 в приложении приводится базовый набор команд процессора. Команды пересылки данных
- •Команды управления процессом вычисления
- •Команды для выполнения действий над байтами
- •Прочие команды
7. Задания для самостоятельной работы
Требуется разработать программу в EXE или COM формате. Выполните запуск программы обычным путем для 32х разрядной операционной системе и выполните запуск программы через эмулятор.
Вариант №1. Написать программу для замены первого и последнего символа строки из 10 байтов на символ ‘#’. Вывести на экран исходную строку и преобразованную. Формат программы «COM».
Вариант №2. Написать программу для обмена местами первого и последнего байта строки из 10 символов. Вывести исходную строку и преобразованную. Формат программы «ЕХЕ».
Вариант №3. Написать программу для сравнения двух строки из 10 байтов. Известно, что строки различаются одним байтом. Вывести на экран значение байта. Формат программы «COM».
Вариант №4. Написать программу, которая проверяет нахождение в строке байтов символа «А». Вывести контрольные сообщения. Формат программы «ЕХЕ».
Вариант №5. Задать две строки. Переслать содержимое второй строки в первую. Вывести строки до перезаписи и после. Формат программы «COM».
Вариант №6. Написать программу для замены символов строки на произвольный символ. Вывести исходную строку и преобразованную. Формат программы «EXE».
Вариант №7. Написать программу для замены первой половины символов строки на произвольный символ. Использовать косвенную адресацию со смещением. Вывести исходную строку и преобразованную. Формат программы «COM».
Вариант №8. Написать программу для замены символов строки на произвольный символ. Использовать индексную адресацию. Вывести исходную строку и преобразованную. Формат программы «ЕХЕ».
Вариант №9. Написать программу для замены второй половины строки на произвольный символ. Использовать индексную адресацию со смещением. Вывести исходную строку и преобразованную. Формат программы «COM».
Вариант №10. Известно, что две строки одинаковой длины имеют общий байт. Написать программу, которая выводит значение этого байта на экран. Формат программы «ЕХЕ».
Вариант №11. Задать строку из 10 байтов. Заменить каждый второй байт символом ‘*’. Вывести исходную строку и преобразованную. Формат программы «COM».
Вариант №12. Задать строку, число байтов четно. Выделить из строки первую часть и вторую. Полученные строки вывести на экран. Формат программы «ЕХЕ».
Вариант №13. Задать строку. Вывести на экран значение первого и предпоследнего байтов. Формат программы «COM».
Вариант №14. Задать строку. Число символов четно. В строку поместить код ‘*’. Разделить строку на две по разделителю. Вывести строки на экран. Формат программы «ЕХЕ».
Вариант №15. Дана строка из 7 символов. Выделить из строки каждый второй байт. Значение байтов выводить на экран. Формат программы «COM».
Приложения
Приложение № 1. Некоторые функции системного прерывания 21h Организация ввода с клавиатуры
Функция 01h – ввод символа с эхом.
Вызов: AH=01h
Возврат: AL=байт входных данных.
07h – Ввод символа без эха и без обработки ^+C.
08h – Ввод символа без эха с обработкой ^+C.
Организация вывода
Для вывода на экран одного символа служит функция 02h.
Обращение:
AH=02h
DL=байт данных.
Для вывода последовательности символов служить функция 09h.
Вызов:
AH=09h
DS:DX=адрес выводимой строки.
Последний байт выводимой строки должен хранить код символа ‘$’.
Для формирования строк нужно включать управляющие коды 0Ah(10) и 0Dh(13).
Пример:
mes db ‘Пример многострогчного’,0ah,0dh
db ‘текста на экране’,’$’
Функция 40h.
Служит для вывода заданного количества байтов на требуемое устройство. Для идентификации устройств используются дескрипторы.
При выводе информации на экран служит дескриптор 1.
Вызов:
AH=40h
BX=дескриптор.
CX=количество выводимых байтов.
DS:DX=адрес выводимой строки.
При работе с многострочным текстом можно использовать счетчик текущего адреса для определения количества выводимых байтов.
Пример:
mes db ‘Пример многострочного’,0ah,0dh
db ‘текста на экране’
actlen=$-mes