Создание и компиляция программ на ассемблере Процесс разработки программы на ассемблере состоит из пяти этапов: 1. Создание файла с исходным текстом программы в любом текстовом редакторе. Расширение файла с исходным текстом может быть .asm, или .txt, или .doc. 2. Создание объектного модуля. В среде DOS или NORTON или FAR в командной строке набираете следующую команду: tasm name.asm или tasm.exe name.asm name.obj name.asm файл с исходным текстом программы. При этом файлы tasm.exe и name.asm должны находится в одном каталоге. После запуска этой команды мы получаем объектный файл с расширением .obj. Если объектный файл не появился, то в программе содержатся ошибки. Перечень ошибок можно посмотреть, отключив панели (ctrl+o или Ctrl+f1 и ctrl+f2). 3. Создание исполнительного файла. В командной строке набираем следующую команду: tlink name.obj или tlink.exe name.obj name exe При этом файлы tlink.exe и name.obj должны находится в одном каталоге. После запуска этой команды мы получаем запускной файл с расширением .exe. Если запускной файл не появился в этом каталоге, то в данном каталоге не хватает некоторых библиотек. Перечень файлов можно посмотреть, отключив панели (ctrl+o или Ctrl+f1 и ctrl+f2). 4. Тестирование программы. Запустите исполнительный файл. 5. Пошаговая отладка. В командной строке набираем следующую команду: td name . exe Структура программы на ассемблере Model small ;модель программы, или же количество памяти на сегмент . data ;сегмент данных ;описание переменных . stack 100 h ;сегмент стека . code ; сегмент данных ;процедуры, макрокоманды main : mov ax,@data mov ds , ax ;основная программа mov ax ,4 c 00 h int 21 h ;выход из программы end main Директивы резервирования памяти Для описания простых типов данных в программе используются специальные директивы резервирования и инициализации данных, которые, по сути, являются указаниями транслятору на выделение определенного объема памяти. Если проводить аналогию с языками высокого уровня, то директивы резервирования и инициализации данных являются определениями переменных. Машинного эквивалента этим директивам нет; просто транслятор, обрабатывая каждую такую директиву, выделяет необходимое количество байт памяти и при необходимости инициализирует эту область некоторым значением . Директивы резервирования и инициализации данных простых типов имеют формат: Рис. 1. Директивы описания данных простых типов На рис. 1 использованы следующие обозначения: · ? показывает, что содержимое поля не определено, то есть при задании директивы с таким значением выражения содержимое выделенного участка физической памяти изменяться не будет. Фактически, создается неинициализированная переменная; · значение инициализации — значение элемента данных, которое будет занесено в память после загрузки программы. Фактически, создается инициализированная переменная, в качестве которой могут выступать константы, строки символов, константные и адресные выражения в зависимости от типа данных. Подробная информация приведена в приложении 1; · выражение — итеративная конструкция с синтаксисом, описанным на рис. 5.17. Эта конструкция позволяет повторить последовательное занесение в физическую память выражения в скобках n раз. · имя — некоторое символическое имя метки или ячейки памяти в сегменте данных, используемое в программе. · db — резервирование памяти для данных размером 1 байт. Директивой db можно задавать следующие значения: o выражение или константу, принимающую значение из диапазона: для чисел со знаком –128...+127; для чисел без знака 0...255; o символьную строку из одного или более символов. Строка заключается в кавычки. В этом случае определяется столько байт, сколько символов в строке. · dw — резервирование памяти для данных размером 2 байта . o выражение или константу, принимающую значение из диапазона: для чисел со знаком –32 768...32 767; для чисел без знака 0...65 535; o выражение, занимающее 16 или менее бит, в качестве которого может выступать смещение в 16-битовом сегменте или адрес сегмента; o 1- или 2-байтовую строку, заключенная в кавычки. · dd — резервирование памяти для данных размером 4 байта. o выражение или константу, принимающую значение из диапазона: для чисел со знаком –2 147 483 648...+2 147 483 647; для чисел без знака 0...4 294 967 295; o относительное или адресное выражение, состоящее из 16-битового адреса сегмента и 16-битового смещения; o строку длиной до 4 символов, заключенную в кавычки. · df — резервирование памяти для данных размером 6 байт; · dp — резервирование памяти для данных размером 6 байт. Директивами df и dp можно задавать следующие значения: o выражение или константу, принимающую значение из диапазона: для чисел со знаком –2 147 483 648...+2 147 483 647; для чисел без знака 0...4 294 967 295; o относительное или адресное выражение, состоящее из 32 или менее бит (для i80386) или 16 или менее бит (для младших моделей микропроцессоров Intel); o адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения; o строку длиной до 6 байт, заключенную в кавычки. · dq — резервирование памяти для данных размером 8 байт. относительное или адресное выражение, состоящее из 32 или менее бит o константу со знаком из диапазона –263 ...263–1 ; o константу без знака из диапазона 0...264–1 ; o строку длиной до 8 байт, заключенную в кавычки. · dt — резервирование памяти для данных размером 10 байт. относительное или адресное выражение, состоящее из 32 или менее бит o адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения; o константу со знаком из диапазона –279 ...279-1 ; o константу без знака из диапазона 0...280-1 ; o строку длиной до 10 байт, заключенную в кавычки; o упакованную десятичную константу в диапазоне 0...99 999 999 999 999 999 999. Очень важно уяснить себе порядок размещения данных в памяти. Он напрямую связан с логикой работы микропроцессора с данными. Микропроцессоры Intel требуют следования данных в памяти по принципу: младший байт по младшему адресу . Для иллюстрации данного принципа рассмотрим пример 1, в котором определим сегмент данных. В этом сегменте данных приведено несколько директив описания простых типов данных. Пример 1. Пример использования директив резервирования и инициализации данных. Результатом работы данной программы будет строка 'Привет, все работает' model small . stack 100 h .data mes db 'Привет, все работает',’$' ;определение строки perem_1 db 0ffh ;определение контстантыperem_2 dw 3a7fh ;определение контстантыperem_3 dd 0f54d567ah ;определение контстантыmasdb 10 dup (' ') ;определение пустого массива из 10 байтadrdwperem_3 ;переменная adr содержит адрес ;внутри сегмента переменной perem_3a_fullddperem_3 ;переменная a_full содержит полный ;адрес переменной perem_3fin db 'Конец сегмента данных программы $'.code start: ;занесение в сегментный регистр адреса сегмента данныхmov ax,@data mov ds , ax mov ah,09hmov dx,offset mesint 21h ;вывод на экран строки mesmov ax ,4 c 00 h int 21 h ;выход из программы end start Окончание работы программы сопровождается полной выгрузкой программы из оперативной памяти, это осуществляется функцией 4с00h прерывания int 21h. Все что в данной программе выделено жирным шрифтом обязательно при написании любой программы. При написании программ на ассемблере регистр букв не важен.
Рефераты по информатикеСоздание и компиляция программ на ассемблере Процесс разработки программы на ассемблере состоит из пяти этапов: 1. Создание файла с исходным текстом
Оценок: 354 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.