Главная » Просмотр файлов » assembler. Учебник для вузов_Юров В.И_2003 -637с

assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 20

Файл №862834 assembler. Учебник для вузов_Юров В.И_2003 -637с (Юров В.И - Assembler. Учебник для вузов. 2003) 20 страницаassembler. Учебник для вузов_Юров В.И_2003 -637с (862834) страница 202021-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 20)

Синтаксис ассемблераЦелые числа могут указываться в двоичной, десятичной или шестнадцатеричной системах счисления. Отождествление чисел при записи их в программах наассемблере производится по определенным правилам. Десятичные числа не требуют для своего отождествления указания каких-либо дополнительных символов.Для отождествления в исходном тексте программы двоичных и шестнадцатеричных чисел используются следующие правила:<шестнадц_число> =» <дес_шестнадц_число>М | 0<сим_шестнадц_число>Ь<дес_шестнадц_число> =» <decdigi 1><сим_шестнадц_число> | <decdigi t><сим_шестнадц_число> =><hexdigi 1><сим_шестнадц_число>| <дес_шестнадц_число> | <decdigi t> | <hexdigi t><decdigit> => 0| 1 12 | 3|4|5 |6| 7|8|9<hexdigit> = > a | b | c | d | e | f | A | B | C | D | E | FВажно отметить наличие символов после (h) и перед (0) записью шестнадцатеричного числа.

Это сделано для того, чтобы транслятор мог отличить в программеодинаковые по форме записи десятичные и шестнадцатеричные числа. К примеру,числа 1578 и 1578h выглядят одинаково, но имеют разные значения. С другой стороны, какое значение в тексте исходной программы может иметь лексема fe023?Это может быть и некоторый идентификатор, и, судя по набору символов, шестнадцатеричное число. Для того чтобы однозначно описать в тексте программы наассемблере шестнадцатеричное число, начинающееся с буквы, его дополняют ведущим нулем «О» и в конце ставят символ «h». Для данного примера правильнаязапись шестнадцатеричного числа — Ofe023h:<двоичн_число> => <bindigi t>b| <bindigi 1><двоичн_число>Ь<bindigit> => 0|1Для двоичных чисел все просто — после записи нулей и единиц, входящих в ихсостав, необходимо поставить латинскую букву «Ь». Пример:Рассуждениями, приведенными ранее, был показан порядок формированияпредложений программы ассемблера и составляющих их элементов (лексем).

Также были рассмотрены правила формирования меток, названий команд (префиксов). Осталось обсудить комментарии и операнды. Что касается комментария, тоэто самый простой элемент предложения ассемблера. Любая комбинация символов ASCII, расположенная в строке за символом точки с запятой (;), трансляторомигнорируется, то есть является комментарием (см. рис. 5.1-5.3). Описанию операндов, ввиду их важности, будет посвящен отдельный подраздел.ОперандыОперанды — это объекты, над которыми или при помощи которых выполняютсядействия, задаваемые инструкциями или директивами.

Машинные команды могут либо совсем не иметь операндов, либо иметь один или два операнда. Большинство команд требует двух операндов, один из которых является источником, а другой — приемником (операндом назначения). В двухоперандной машинной командевозможны следующие сочетания операндов:в регистр — регистр;ii регистр — память;в память — регистр;Синтаксис ассемблера91* непосредственный операнд — регистр;» непосредственный операнд — память.Здесь важно подчеркнуть, что один операнд может располагаться в регистреили памяти, а второй операнд обязательно должен находиться в регистре или непосредственно в команде. Непосредственный операнд может быть только источником.Для приведенных ранее правил сочетания типов операндов есть исключения,которые касаются:к команд работы с цепочками, которые могут перемещать данные из памятив память;<1 команд работы со стеком, которые могут переносить данные из памяти в стек,также находящийся в памяти;II команд типа умножения, которые, кроме операнда, указанного в команде, неявно используют еще и второй операнд.Операндами могут быть числа, регистры, ячейки памяти, символьные идентификаторы.

При необходимости для расчета некоторого значения или определенияячейки памяти, на которую будет воздействовать данная команда или директива,используются выражения, то есть комбинации чисел, регистров, ячеек памяти,идентификаторов с арифметическими, логическими, побитовыми и атрибутивными операторами.Рассмотрим классификацию операндов, поддерживаемых транслятором ассемблера.в Операнд задается неявно на микропрограммном уровне.

В этом случае командаявно не содержит операндов. Алгоритм выполнения команды использует некоторые объекты по умолчанию (регистры, флаги в EFLAGS и т. д.). Например,команды CLI и STI неявно работают с флагом прерывания IF в регистре EFLAGS,а команда XLAT неявно обращается к регистру AL и строке в памяти по адресу,определяемому парой регистров DS:BX.к Операнд задается в самой команде (непосредственный операнд). Это может бытьчисло, строка, имя или выражение, имеющее некоторое фиксированное (константное) значение.

Физически непосредственный операнд находится в кодекоманды, то есть является ее частью. Для его хранения в команде выделяетсяполе длиной до 32 битов (см. главу 3). Непосредственный операнд может бытьтолько вторым операндом (источником). Операнд-приемник может находиться либо в памяти, либо в регистре. Например, команда mov ax,0ffffh пересылаетв регистр АХ шестнадцатеричную константу Offffh. Команда add sum,2 складывает содержимое поля по адресу sum с целым числом 2 и записывает результат поместу первого операнда, то есть в память.

Если непосредственный операнд —имя, то оно не должно быть перемещаемым, то есть зависеть от адреса загрузки программы в память. Такое имя можно определить оператором EQUили =. Пример:вместо num ассемблер везде подставляет 5num equ 5вместо num ассемблер везде подставляет 3imd = num-2эквивалентно mov al,5, здесь 5 - непосредственный операндmov al.num92Глава 5. Синтаксис ассемблераadd [ s i j .

i m d ; сложение [ s i ] : = [ s i ] + 3 ,; з д е с ь imd - непосредственный операндmov a l , 5 ; a l : = 5 , з д е с ь 5 - непосредственный операндВ данном фрагменте определяются две константы, которые затем используются в качестве непосредственных операндов в командах пересылки MOV и сложения ADD.II Адресные операнды задают физическое расположение операнда в памяти путемуказания двух составляющих адреса: сегмента и смещения (рис. 5.4). К примеру:mov ax,0000hmov ds.axmov ax,ds:0000hзаписать слово в ах из области памятипо физическому адресу 0000:0000Здесь третья команда MOV имеет адресный операнд.Рис. 5.4.

Синтаксис адресных операндовПеремещаемые операнды — любые символьные имена, представляющие некоторые адреса памяти. Эти адреса могут обозначать местоположение в памятинекоторой инструкции (если операнд — метка) или данных (если операнд —имя области памяти в сегменте данных). Перемещаемые операнды отличаютсяот адресных тем, что'они не привязаны к конкретному адресу физической памяти. Сегментная составляющая адреса перемещаемого операнда неизвестнаи определяется после загрузки программы в память для выполнения. К примеру:data segmentmas_w dw 25 dup (0)codesegmentlea s i , _ m a s _ w ; mas_w - перемещаемый операндВ этом фрагменте mas_w — символьное имя, значением которого является адрес первого байта области памяти размером 25 слов. Полный физический адресэтой области памяти будет известен только после загрузки программы в память для выполнения.Счетчик адреса — специфический вид операнда.

Он обозначается знаком $.Специфика этого операнда в том, что когда транслятор ассемблера встречаетСинтаксис ассемблера93в исходной программе этот символ, то он подставляет вместо него текущее значение счетчика адреса. Значение счетчика адреса, или, как его иногда называютсчетчика размещения, представляет собой смещение текущей машинной команды относительно начала сегмента кода. При обработке транслятором очередной команды ассемблера счетчик адреса увеличивается на длину сформированной машинной команды. Важно правильно это понимать. К примеру, обработкадиректив ассемблера не влечет за собой изменения счетчика, так как директивы ассемблера, в отличие от его команд, — это лишь указания транслятору навыполнение определенных действий по формированию машинного представления программы, и для них транслятором не генерируется никаких конструкций в памяти.

В качестве примера использования в команде значения счетчикаадреса можно привести следующий фрагмент:jmp $+3 ; безусловный переход на команду moveld; длина команды eld составляет 1 байтmov al,lПри формировании выражения для перехода, подобного $+3, нужно помнитьо длине самой команды, в которой это выражение используется, так как значение счетчика адреса соответствует смещению в сегменте команд данной, а неследующей за ней команды. В нашем примере команда JMP занимает два байта.Нужно быть осторожным, длина этой и других команд зависит от того, какиев ней используются операнды. Команда с регистровыми операндами будет короче команды, один из операндов которой расположен в памяти. В большинстве случаев эту информацию можно получить, зная формат машинной команды (см.

Характеристики

Тип файла
PDF-файл
Размер
14,34 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее