Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Глава 19. Элементы программирования на языке ассемблер
После изучения главы студент должен знать: · -назначение и области использования языка Ассемблера; · -основные компоненты языка; · -основные команды, директивы, модификаторы; · -адресацию регистров МПП и ячеек памяти в ассемблере; · -программирование процедур вывода информации на дисплей и ввода информации с клавиатуры; · -структуру ассемблерной программы; · -процедуры формирования программы формата EXE; · -назначение, команды и варианты использования отладчика программ Debug. Пользователь компьютера, равно как и прикладной программист, программы составляет, как правило, на машинно-независимом алгоритмическом языке высокого уровня (Basic, Pascal, FORTRAN, C, PROLOG и др.), однако иметь представление об основах программирования и на машинно-ориентированных языках грамотному пользователю весьма полезно для: l лучшего понимания архитектуры ПК и более грамотного использования компьютеров; для разработки более рациональных структур алгоритмов и программ решения прикладных задач; l возможности просмотра и корректировки исполняемых программ с расширениями EXE и COM, компилированных с любых языков высокого уровня, в случае утраты исходных программ (вызвав указанные программы в отладчик программ DEBUG и деассемблировав их, можно получить их отображение на языке Ассемблера); l составления программ решения наиболее ответственных задач (машинная программа, подготовленная на машинно-ориентированном языке, обычно эффективнее (короче и быстрее на 30–60%) программ, полученных в результате трансляции с языков высокого уровня) и для реализации процедур, включаемых в основную программу в виде отдельных фрагментов в том случае, если они не могут быть реализованы ни на используемом языке высокого уровня. Основные компоненты языка ассемблер Алфавит языка Алфавит языка составляют символы ASCII: l буквы от А до Z (или от а до z, строчные и прописные буквы в ассемблере не различаются); l цифры от 0 до 9; l специальные символы: @, $,?,., _,–, +, *, ', “,;,: и др. Из букв, цифр и символов: @, $,?,.,_ формируются: l простые сообщения: имена (идентификаторы) процедур (подпрограмм), переменных, директив, команд (метки), значения констант и переменных; l составные сообщения: команды (операторы);
l директивы (псевдооператоры); l модификаторы (операции). Имена меток, переменных, идентификаторов могут быть длиной до 31 символа и начинаться должны обязательно не с цифры. Константы (числа и строки) Только целые числа Различают: l двоичные числа; заканчиваются буквой В; l десятичные числа; без специального окончания или заканчиваются буквой D; l шестнадцатеричные числа; заканчиваются буквой Н. Для обозначения цифр 10, 11, 12, 13, 14, 15 в шестнадцатеричной системе счисления используются, соответственно, буквы A, B, C, D, E, F; но начинаться шестнадцатеричные числа должны обязательно с цифры, например: выражение F19Н — не число, а идентификатор, правильно число надо записать так: 0F19Н. Запись отрицательных чисел: l десятичные числа записываются обычным образом, просто со знаком: –32, –32D; l двоичные числа записываются только в дополнительном модифицированном коде: –32D ® 11.100000B, –19D ® 11.01101B; l шестнадцатеричные числа записываются только в дополнительном коде: l –32D выглядит как 1.E0H, –119D — как 1.89H. Строки (литералы) Строки символов: включают в себя любые буквы, цифры и символы, но заключаются в кавычки: "ПК IBM PC с микропроцессором Pentium D ". Команды (операторы) Формат команды: [Метка [:]] КОП [Операнд] [,Операнд] [;Комментарий]. Между элементами команды вставлены пробелы. Здесь и далее элементы, заключенные в квадратные скобки, необязательны. КОП (Код ОПератора) — мнемокод команды (состоит из 2–6 букв). Может быть до 256 различных кодов (в ассемблере IBM PC их число изменяется в зависимости от типа МП). Операнд — явно заданный адрес (прямой или косвенный); имя метки, переменной; само значение переменной; ассоциативный признак. Количество необходимых в команде операндов ассемблер узнает по КОП. В большинстве двухадресных команд присутствуют операнды приемника (dst — destination) и источника (src — source); источник не изменяет своего содержания, в приемнике 1-е число, участвующее в операции, заменяется результатом. Метка — имя команды ассемблера для ссылки (обращения) к этой команде (до 31 символа). Двоеточие, стоящее после метки, означает, что метка всегда находится в текущем сегменте памяти.
Комментарий —любой текст, поясняющий программу (не воспринимается ассемблером, но выводится в листинге). Директивы (псевдооператоры) Директивы, в отличие от команд, выполняются только в процессе ассемблирования (трансляции) программы, а не в ходе решения задачи на компьютере. То есть команды — это инструкции машине, а директивы — это инструкции ассемблеру (транслятору). Формат директивы: [Идентификатор] КПОП [Операнд] [,Операнд]... [;Комментарий] Как и в случае команд, поле директивы может начинаться в любом месте строки программы при условии, что оно отделено от предыдущего поля хотя бы одним пробелом. Идентификатор — имя директивы (для обращения к ней). КПОП (Код ПсевдоОПератора) — мнемокод директивы (состоит из 2–7 букв). Операнды — их в директиве может быть много; это уже не только адреса, но и различные процедуры. В операндах могут быть записаны простые выражения, использующие модификаторы (операции). Модификаторы В операторах и псевдооператорах языка Ассемблер иногда используются модификаторы, которые определяют ту или иную операцию, учитываемую при трансляции программы. Существует 5 видов модификаторов: арифметические, логические, отношений, возвращения значений и присваивания атрибутов. Наиболее часто используются модификаторы (mdf): l Арифметические модификаторы: «+» — сложить, «-» — вычесть, «*» — умножить, «/» — разделить, mod — остаток от деления и т.д. Формат: l Логические модификаторы: and — «и», or — «или», not — «не», и xor — исключающее «или». Формат: opr mdf opr. l Модификаторы отношения: eq — совпадения, nq— несовпадения, lt — меньше, gt — больше, le — меньше или равно, ge— больше или равно. Формат: l Модификаторы, возвращающие значения: l $ — возвращает значение смещения адреса текущего оператора; l Seg — возвращает адрес сегмента адреса метки или переменной; l Offset — возвращает смещение адреса метки или переменной; l Length — возвращает длину операнда в единицах определения (байтах или словах); l Type — возвращает атрибут типа переменной (1, если byte; 2 — word, 3 — dword) или метки (1 — near, 3 — far); l Size — возвращает произведение length*type. Формат: mdf opr. l Модификаторы присваивания атрибута: l Ptr — изменяет атрибут типа (byte, word или dword) операнда или атрибут дистанции (near или far) адресного операнда. Формат: тип ptr opr. (Здесь: тип — новый атрибут, opr — идентификатор операнда, чей атрибут должен быть изменен). В программах используются: l атрибуты дистанции: l near — близкий, в пределах одного сегмента; l far — далекий, за пределами одного сегмента; l атрибуты типа данных: l byte — длиной 1 байт; l word — длиной 2 байта; l dword — длиной 4 байта.
|
||||||
Последнее изменение этой страницы: 2021-11-27; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.31.77 (0.007 с.) |