Главная » Просмотр файлов » В.Н. Пильщиков - Программирование на языке ассемблера IBM PC

В.Н. Пильщиков - Программирование на языке ассемблера IBM PC (1110551), страница 17

Файл №1110551 В.Н. Пильщиков - Программирование на языке ассемблера IBM PC (В.Н. Пильщиков - Программирование на языке ассемблера IBM PC) 17 страницаВ.Н. Пильщиков - Программирование на языке ассемблера IBM PC (1110551) страница 172019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Загрузка флагов в регастр ЬВ (1оаб ЬВ Тгсаа Р1адв) г ГЬВР чтеюзе флагов вз регистра ьи (заче ьи зато У1аде): вану Коыаида (.АНЕ записывает в регистр АН правую половину реп(стра флагов Р)адз, а команда ЗАНР записывает содержимое АН в правую половину регистра НаИв. Зти команды введены для совместимости с процессором 8080 (прсдшсствснником пропсссора 8086) и практически нс используются. Очистка флага иереаоса (с1еак сакку Т1ад)г СЬС Установка фгага иаревоса (зеч саггу Тзад)г ВТС Взиевеаие флага леревоса (совр1езюак саггу Т1ад): СИС По команде С1 С флаг СР обнуляется (СЕ:в0), по команде 8ТС флаг СР пачучает значение 1 (СР:и1), а по команде СМС значение флага СГ ыснястся на противоположное (СР;в1-СР). Остальные флаги нс меняются.

Зти команды могут использоваться перед командами циклического сдвига КС1. и КСК для установки нужного значения флага СГ перед сдвигом. Кроме того, поскольку с помощью этих команд значение флага СР можно менять достаточно просто, то флаг СР иногда используется для фиксации того, выполнено или нет некоторое условие; наприыср, процедура может этим флагом сообщить, успешно она проработала или нет. Очистка флага лреразааиа (с1еаг звсеггсра Т1ад)з СЬГ Устааовка флага лреразавил (еек ьзаеггерк Й1ад): втх По команде СЫ флаг 1Р обнуляется (1Г:вО), а по команде 8'П флаг получает значение 1 (1Р:в1). Установка флага 1Г в 1 означает, что процессору разрешено рсапгровать на поступающие к нему прерывания, а при значении 0 процессор нс будет раап(ровать на прерывания (кромс прерываний из-за ошибок в работе аппаратуры).

Эти команды обычно используются в процедурах операционной системы, занимающихся обработкой прерываний (при обработке одного прерывания приходится игнорировать другис прерывания). ЬЬО вгч т моч а(в11 ьп 1ИС Вт ЬООР ОЧ ИОЧ В,ЬВ ;ЬХ язовчаое число из цифр ЬВ а Ьм ) делеавез ли=остаток, ЬХ =велолаое частвоа ;зались иелолвого часюзого в Х Дополнительные воэможности 267 Преривваие нри перенолвевве (звсеггнрс 12 очегя1ом)т 1НТО Если перед этой командой флаг переполнения ОР оказался равным 1, то она вырабатывает прерывание с номероы 4 (работает как команда )й)Т 4). В ПК при выполнении сложения н вычитания знаковых чисел возможно переполнение мантиссы (ее абсолютная величина превышает допустимый разыер и "залезает" на знаковый бит, изыеняя его на противоположный), при котором получается неправильный результат.

Однако процессор не фиксирует в этоы случае ошибку, а лишь засылает 1 в флаг ОР. "Поймать" такую ошибку можно командой условного перехода, а можно и с поыошью команды Е~1ТО. Она ставится сразу же за арифметической коыандой, например: авв ах,т ХВТО и при переполнении мантиссы (при ОРо1) вырабатывает прерывание с номером 4, которое можно обработать по-своеыу, если в 4-й элемент вектора прерываний (по адресу 0000:0010Ь) заранее записать начальный адрес процедуры обработки этого прерывания. (При начальной загрузке вектора прерываний в этот элемент записывается адрес некоторой ячейки, содержащей команду 1ВЕТ, т. е. по умолчанию нет никакой реакции на это прерывание.) "пустая" коивввв (но орегве1ов)т нор Коианда ХОР ничего не делает.

Эта однобайтовая команда обычно используется для того, чтобы "забить" команды, ставшие ненужныыи, не сдвигая при этом остальные команды программы, либо длв того, чтобы сначала зашпь место в програыие, в которое затем будут занесены "настоящие" коыанды. остапов (Ьв).е): пьт По этой команде процессор приостанавливает свою работу и ждет поступления любого прерывания.

В этот моыент регистры СЗ и 1Р указывают на следующую за Н1.Т коыанду. При возникновении прерывания, как обычно, в стек записывается содержимое этих регистров и управление передается в операционную систему на состветствуюшую процедуру обработки прерывания. По завершении ее рабаты в регистрах СЗ и 1Р будет восстановлен адрес команды, следующей за Н1.Т. С этой следующей команды и возобновится выполнение приостановленной програымы. Команда Н(.Т используется, когда процессору нечего делать и он ожидает, например, нажатия какой-нибудь клавишы на клавиатуре. Ввогировга вава (1оси Еье Ьнв): ЬОСК Эта команда блокирует передачу какой-либо информации по линиям связи, пока не будет полностью завершено выполнение следующей за ней команды (перед которой л(ожет находиться префикс повторения или префикс сегментного реп(стра).

"ДИАЛОГ.МИФИ" 266 Прогрвммироевние нв языке ассемблере lеы рС Команда 1.ОСК нужна для реализации многозадачного режима работы ПК, когда одновременно выполняется несколько программ. Она используется, чтобы запретить другим программам прерывать текущую программу в тот момент, когда та выполняет сложную операцию (типа пересылки строки из одного места памяти в другое), чтобы другие программы не могли в "середине" такой операции испортить ее операнды. Пврекявчвяив яв сопроцессор (ввеарв)л КЯС ор1,ор2 По этой команде посылается сипюл арифметическому сопроцессору (8087, 80287 и т. и.), чтобы он выполнил одну из своих операций: ор1 задает код этой операции, а ор2 указывает местоположение ее операнда. После этого сопроцессор начинает выполнять закаюнную операцию, а центральный процессор, не дожидаясь ее окончания, переходит к выполнению команды, следующей за ЕБС.

Отметим, что в ЯА предусмотрены специальные мнемокоды для разных вариантов комыщы ЕЗС (например, мнемокод гАРП, если нужно выполнить сложение вещественных чисел), поэтому в программах на ЯА в явном виде команда ЕБС обычно не указывается. Поскольку сопроцессор работает медленнее центрального процессора (наполняемые сопроцессором операции на вещественными числаыи требуют значительного времени), то для согласованной (синхронной) работы центральный процессор в общем-то должен приостанавливать свою работу, пока сопроцессор не закончит операцию.

Для этого центральный процессор должен использовать следующую команду: переход в ооотояавв окядввяял их1т По этой команде центральный процессор прекращает свою рабозу и ожидает, пока сопроцессор не пришлет сигнал об окончании выполнения заказанной ему операции. 142. Дополнительные операторы. В агом разделе вкратце описываются те операторы ЯА, которые не были рассмотрены в предыдущих главах книги. <коаотватаов вярвкваяв> вня <коаствятяов вирвкваив> <коаетввтаов вврвквяяв> ВВЬ <кояотватяов вмрвкваяв> Это операторы сдвига, они относятся к констаитныл» выражениям. Оператор ЗНК (ЗНЦ сдвигает значение своего первого операнда, трактуемое как шкала из 1б битов, вправо (влево) на число разрядов, равное значению второго операнда, которое должно быть неотрицательным целым. Биты, сдвигаемые за пределы шкалы, теряются. Примеры: Дополнительные еозыо нное ти 209 ;МОР СХ,101100Ь )АМО ЗВ,101Ъ ;оэавяа (2-й операнд - 160Ь - ае байт) Операторы ЗНК и ЗН1.

обычно используются лля построения одних масок по другим при работе с упакованными данныыи, записями. Действие этих операторов совпадает с действием одноименных коьащд ПК, одмако не надо путать их: операторы вычисляются на этапе трансляции программы и в машинной программе их уже нет, а команды выполняются на этапе счета программы. ЬВМСРВ <имя перемеяяой> Этот оператор относится к константным выражениям. Его операнд должен быль именем переменной, описанной в директиве ОВ, ПЧЧ, 1)1) или директиве, определяющей структуру или запись. Значение оператора - коэффициент кратности в конструкции ЮЩ если она является первым операндом этой директивы, и 1 во всех остальных случаях.

Примеры: А ОВ 100 ООР(2) В ОИ 100 ООР (1тз ОВР(0) ) С ОО 20,30,66 ООР(0) О ОВ 'евой' Оператор 1 с(нОТН имеет смысл, только если в директиве, описывающей имя переменной, указан один операнд и им является конструкция вида )г 1)АР(х); в этоы случае оператор сообщает количество (1() элементов, описаннмх по этой директиве. В остальных случаях сыысл оператора малопонятен. 3122 <амя перемеаэой> И этот оператор относится к константныьг выражемиям, а его операнд должен быть таким же, как и в операторе (.ЕХОТН.

Значение оператора ЯКЕ вычисчяется по следующей формуле: ахгв ч = (тхвв ч) * (ьгнетв ч) Оператор 31ЕЕ имеет смысл, только если в директиве, описывающей нмя переменной, указан один операнд и им является конструкция вида 1г ОУР(х); в этом случае оператор указывает количество байтов, занятых всеми элементами, описанных по этой директиве. В остальных случаях оператор мало о чем говорит. РХРВ <амя> Это константный оператор, его операндоы может быть любое имя. Значением оператора является число разыером в байт, биты которого указывают следующие днлпог-мнии" Н 200 1ОНЬ МОЧ СХ,М ВВЬ 2 ВМО ВВ,М ВВВ 1 ов ам,н внь 5 )ьвнегв а 1ое )Ьвмегв В 100 ;ьгнатв с ;ЬВМСРВ О - 1 270 Прогреммироввние нв воине ассемблере ГВМ РС характеристики имени (нумерация битов ведется справа налево от 0 до 7, значе- ние 1 у бита означает наличие характеристики): номер бима эараднэрнснгнна иьш описано как метка или имя процедуры имя описано кюс переменная или описано (так или иначе) в программе юш описано (в ЕХТК)ч) квк внешнее тнгв <тлл> Этот оператор относится к адресным выражениям.

Его значение - адрес, который равен текущему значению счетчика размещения (3) и которому предписывается указанный тип. (В качестве операзда могут использоваться служебные слова ВУТЕ, ЪУОКТЗ, ьэФОКО, ХЕАК, РАК или соответствующие им числовые значения). Оператор ТН13 обычно используется в директиве Е(2() лля поро:кдения имени, адресующего текущую точку программы и имеющую заданный тип (в подобных целях используется и директива ЬАВЕЬ - см. разд. 14.6). Например: ЗХ а В ссвлввтсл ав одна а тот ле мвссав, ао а - мвссяз яз слов, в В - аз байтов зь1 я Ь2 метлт одну л ту кв команду, ао Ь1 - двлзаял метка, в Ь2 - влазквя а впв тиха вовд В ВВ 20 ВВР (Г) щ впв тньа уьи Ьзэ МОЧ аХ,О В1СИ <колстватаов варвкеале> ЬОИ <колстватаое зарвкеаяв> Это константные операторы.

Нх результат - старший (левмй) байт (для Н10Н) или ьшадший байт (для ЬОУн) значения операнда. Например: Х ВПЧ 12ЗЭЬ моч сь,нхан х;вкзазвлеатао иоч сь,12ь МОЧ СЬ,ЬОИ Х ;вквлзвлеатао ИОЧ СЬ,З4Ь (остальные биты равны О). Лля имен регистров, констант, сегментов, групп, ыакросов, типов записей и структур, полей 'записей и структур оператор выдает значение 20й.

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

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

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

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