Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 134; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |