Главная » Просмотр файлов » К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003)

К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 21

Файл №1114649 К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003)) 21 страницаК. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649) страница 212019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В некоторых случаях ассемблер не заменяет представляющее адрес имя реальным значением этого адреса. В частности, в командах перехода не заменяется реюгьным адресом имя, определяющее точку, к которой будет выполняться переход. В командах перехода целевой адрес обычно задается в режиме относительной адресации (см. раздел 2.5). Ассемблер вычисляет смещение перехода, то есть расстояние до целевого адреса, и помещает его в машинную команду. Сканируя исходную программу, ассемблер записывает все имена и соответствуютцие им числовые значения в специальную таблицу, называемую глаблицей символов. Когда имя встречается в программе повторно, оно заменяется соответствующим значением из таблицы. Проблема может возникнуть лишь в том случае, если имя использовалось в качестве операнда до того, как ему было присвоено значение.

Такое возможно, в частности, при выполнении перехода вверх по программе. Ассемблер не сможет определить целевой адрес перехода, так как указанное в команде имя еще не записано в таблицу символов. Для решения проблемы достаточно дважды просканировать исходную программу.

На первом проходе ассемблер создает полную таблицу символов. В конце этого прохода всем встречающимся в программе именам должны быть поставлены в соответствие числовые значения. 88 Глава 2. Машинные команды н программы После этого ассемблер снова проходит по исходной программе и заменяет все имена значениями из таблицы символов. Такой ассемблер называется двухпроходным. Ассемблер сохраняет объектную программу на магнитном диске. Перед выполнением эта программа загружается в память компьютера. Для этого там должна присутствовать еще одна служебная программа, называемая загрузчиком. Загрузчик выполняет последовательность операций ввода, необходимых для пересылки программы на машинном языке с диска в заданное место памяти.

При этом загрузчик должен знать длину программы и адрес, по которому ее необходимо загрузить. Обычно ассемблер помещает такого рода информацию в заголовок программы, предшествующий объектному коду. Загрузив код, загрузчик начинает выполнение объектной программы с перехода к той ее команде, которая должна быть реализована первой. Адрес этой команды включается в программу на языке ассемблера в качестве операнда директивы ассемблера ЕЫП. Ассемблер помещает этот адрес в заголовок, предшествующий объектному коду на диске. Программа начинает выполняться и выполняется до своего завершения, если только в ней нет логических ошибок. Пользователь должен уметь находить такие ошибки.

Что касается синтаксических ошибок, то ассемблер выявляет их сам и сообщает об этом пользователю. Для того чтобы помочь пользователю найти другие программные ошибки, в состав системного программного обеспечения обычно включают программу, называемую отладчиком. Эта программа предоставляет пользователю возможность остановить выполнение объектной программы в указанной им точке и проанализировать содержимое памяти и регистров процессора. Об отладке программ подробнее рассказывается в главе 4. 2.6.3.

Запись чисел При работе с числовыми значениями обычно используют привычную десятичную запись. Конечно, в компьютере числовые значения хранятся как двоичные числа. В некоторых случаях удобнее прямо задавать двоичные значения. Большинство реализаций ассемблера позволяет задавать числовые значения различными способами, используя соглашения, определяемые синтаксисом языка. Рассмотрим в качестве примера число 93, представленное в виде 8-разрядной двоичной записи 01011101.

Если непосредственно использовать это значение в качестве операнда, его можно задать в виде десятичного числа, как в следующей команде: АП1) №93,21 или же в виде двоичного числа, на что указывает специальный префикс, такой как символ «',4ю А1)Р №7" 01011101,21 Двоичные числа можно записать более компактно, используя шеплиадцаглеричную систему, в которой каждые четыре бита числа представлены одной шестнадцатеричной цифрой. Шестнадцатеричную запись можно считать расширенной версией двоично-десятичной записи (см.

приложение Д). Первые десять кодов, 0000, 2.7. Базовые операции ввода-вывода 89 0001, ..., 1001, обозначаются цифрами О, 1, ..., 9, как в двоично-десятичной системе кодирования. Оставшиеся шесть 4-разрядных кодов, 1010, 1011, ..., 1111, обозначаются буквами А, В, ..., Е В шестнадцатеричном представлении десятичное значение 93 записывается как 5Р. В языках ассемблера шестнадцатеричное представление часто задается с помощью префикса в виде знака доллара.

Таким образом, команда, прибавляющая к содержимому регистра число 93, при использовании шестнадцатеричной системы кодирования чисел записывается так: АРР Ф5Р,К1 2.7. Базовые операции ввода-вывода В предыдущем разделе описывались машинные команды и режимы адресации. При этом мы предполагали, что данные, на которые воздействуют указанные команды, уже хранятся в памяти. Далее речь пойдет о средствах, с помощью которых данные пересылаются между памятью компьютера и внешним миром. Операции ввода-вывода являются одной из важнейших составляющих работы компьютера, и от того, как они выполняются, в значительной мере зависит его производительность. Эта тема подробно освещается в главе 4. А пока мы рассмотрим несколько базовых концепций ввода-вывода.

Предположим, нам необходимо считать вводимые с клавиатуры символы и вывести их на экран. Простейший способ выполнения подобных задач заключается в использовании метода, который называется программно управляемым вводом-выводом. Скорость передачи данных от клавиатуры к компьютеру зависит от того, насколько быстро пользователь может их вводить (а зто едва ли больше нескольких символов в секунду!).

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

Процессор ждет сигнала, означающего, что пользователь нажал одну из клавиш и что ее код помещен в некоторый буферный регистр, связанный с клавиатурой. Получив сигнал, процессор считывает код клавиши. Как показано на рис 2.19, клавиатура и дисплей являются совершенно независимыми устройствами. Нажатие клавиши на клавиатуре само по себе не вызывает вывода на экран соответствующего символа. Один блок команд в программе ввода-вывода пересылает символы в процессор, а другой выводит таковые на экран.

Рассмотрим, как пересылается код символа от клавиатуры процессору. В ответ на нажатие клавиши соответствующий ей код символа сохраняется в 8-разрядном буферном регистре, связанном с клавиатурой. Назовем его РАТА1Х, как 90 Глава 2. Машинные команды и программы на рис. 2.19. Для уведомления процессора о наличии нового кода символа в регистре ПАТА?Х специалъный флаг состояния 5?Х устанавливается в 1. Программа отслеживает состояние этого флага, и когда он оказывается установленным в 1, процессор считывает содержимое регистра. После пересылки символа в процессор значение флага Я?Х автоматически сбрасывается в О.

Когда с клавиатуры вводится второй символ, флаг Я 1Х снова устанавливается в 1 и процесс повторяется. Вывод символа на экран осуществляется аналогичным образом. Но в этом случае для его пересылки от процессора к монитору используются буферный регистр ЭАТАОПТ и флаг ЯОПТ. Если значение ЯОПТ равно 1, значит, дисплей готов к приему символа. Процессор под управлением программы отслеживает содержимое флага ЯО??Т, и когда его значение оказывается равным 1, процессор пересылает код символа в регистр ?)АТАО ПТ.

После этого флаг Я О ??Т сразу же снимается. Когда дисплей готов к приему следующего символа, флаг ЯО??Т опять устанавливается в 1 и процесс повторяется. Буферные регистры ?1АТА?Х и ?)АТАО??Т совместно с флагами состояния Я?Х и ЯОПТ являются частью схемы, называемой интерфейсом устройства. Такая схема имеется у каждого устройства ввода-вывода. С процессором она соединяется через шину (рис. 2.19). Шина Рис. 2.19. Шина, соединяющая процессор с клавиатурой и дисплеем Для выполнения операций ввода-вывода необходимы машинные команды, проверяющие состояние флагов и пересылающие данные между процессором н устройствами ввода-вывода. Эти команды сходны с командами пересылки данных между процессором и памятью.

Например, процессор может отслеживать состояние флага клавиатуры Я?Х и пересылать символ из регистра ?)АТА?Х в К1 путем применения такой последовательности операций: КЕА?)ЖА?Т ВгапсЬ 1о КЕА?)ЖА?Т ?? Б?Х - О ?прог й ош?)АТА?Х го К1 Операция ВгапсЬ обычно реализуется посредством двух машинных команд. Первая проверяет флаг состояния, а вторая выполняет переход. Процесс отслеживания состояния флага в различных компъютерах может быть реализован немного 2Л.

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

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

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

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