Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Архитектура компьютера - Таненбаун Э.

Таненбаун Э. Архитектура компьютера — Спб.: Питер, 2007. — 844 c.
ISBN 5-469-01274-3
Скачать (прямая ссылка): arhkomputera2007.DjVu
Предыдущая << 1 .. 292 293 294 295 296 297 < 298 > 299 300 301 302 303 304 .. 422 >> Следующая

1) Вся программа написана на С.
2) Вся программа написана на ассемблере.
3) Программа сначала написана на С, а затем нужные 2 % программы
переписаны на ассемблере.
2. Для двухпроходных ассемблеров существуют определенные соглашения.
Могли бы они подойти и для следующих компиляторов:
1) Компилятор вместо ассемблерного кода генерирует объектные модули?
2) Компилятор генерирует символический язык ассемблера?
3. Все ассемблеры для процессоров Intel в качестве первого операнда
получают целевой адрес, а в качестве второго - исходный адрес. Какие
проблемы могут возникнуть при другом подходе?
4. Можно ли следующую программу ассемблировать в два прохода? EQU - это
директива, которая приравнивает метку к выражению в поле операнда.
A EQU В В EQU С С EQU D D EQU 4
594
Глава 7. Уровень ассемблера
5. Некая компания планирует разработать ассемблер для компьютера с 40-
раз-рядным словом. Чтобы снизить стоимость, менеджер проекта решил
ограничить длину символических имен, чтобы каждое имя можно было хранить
в одном слове. Менеджер объявил, что символические имена могут состоять
только из букв, причем буква Q запрещена. Какова максимальная длина
символического имени? Опишите вашу схему кодирования.
6. Чем отличается команда от директивы?
7. Чем отличается счетчик адресов команд от счетчика команд? А существует
ли вообще между ними различие? Ведь тот и другой выполняют трассировку
следующей команды в программе.
8. Какой будет таблица символов (имен) после обработки следующих
операторов ассемблера Pentium 4 (первому оператору приписан адрес 1000)?
EVEREST: POP BX (1 байт)
К2: PUSH BP (1 байт)
WHITNEY: MOV BP.SP (2 байта)
MCKINLEY: PUSH X (3 байта)
FUJI: PUSH SI (1 байт)
KIBO: SUB SI,300 (3 байта)
9. Можете ли вы представить себе обстоятельства, при которых метка
совпадет с кодом операции (например, может ли команда MOV использоваться
в качестве метки)? Аргументируйте.
10. Какие шаги нужно совершить, чтобы путем двоичного поиска найти
элемент "Berkeley" в следующем списке: Ann Arbor, Berkeley, Cambridge,
Eugene, Madison, New Haven, Palo Alto, Pasadena, Santa Cruz, Stony Brook,
Westwood, Yellow Springs. Когда будете вычислять средний элемент в списке
из четного числа элементов, возьмите элемент, который идет сразу после
среднего.
И. Можно ли использовать двоичный поиск в таблице, в которой содержится
простое число элементов?
12. Вычислите хэш-код для каждого из следующих символических имен. Для
этого сложите буквы (а = 1, Ъ = 2 и т. д.) и возьмите результат по модулю
размера хэш-таблицы. Хэш-таблица содержит 19 слотов (от 0 до 18).
els, jan, jelle, maaike
Образует ли каждое символическое имя уникальное значение хэш-функции?
Если нет, то как разрешить эту коллизию?
13. Метод хэширования, описанный в тексте главы, позволяет скомпоновать
все элементы, имеющие один хэш-код, в связном списке. Альтернативный
метод - иметь только одну таблицу из п слотов, в которой в каждом слоте
имеется пространство для одного ключа и его значения (или для указателей
на них). Если алгоритм хэширования порождает слот, который уже заполнен,
производится вторая попытка с использованием того же алгоритма хэширо-
Вопросы и задания 595
вания. Если и на этот раз слот заполнен, алгоритм применяется снова и т.
д. Так продолжается до тех пор, пока не будет найден пустой слот. Если
доля слотов, которые уже заполнены, составляет R, сколько попыток в
среднем понадобится для того, чтобы ввести в таблицу новый символ?
14. Вероятно, когда-нибудь в будущем на одну микросхему можно будет
помещать тысячи идентичных процессоров, каждый из которых содержит
несколько слов локальной памяти. Если все процессоры могут считывать и
записывать три общих регистра, то как реализовать ассоциативную память?
15. Pentium 4 имеет сегментированную архитектуру. Сегменты независимы.
Ассемблер для этой машины может содержать директиву SEG N, которая
помещает последующий код и данные в сегмент N. Повлияет ли такая схема на
счетчик адресов команд?
16. Программы часто компонуются с многочисленными библиотеками DLL. А не
будет ли более эффективным просто поместить все процедуры в один большой
DLL-файл, а затем скомпоновать его?
17. Можно ли отобразить DLL-файл на виртуальные адресные пространства
двух процессов с разными виртуальными адресами? Если да, то какие
проблемы при этом возникают? Можно ли их разрешить? Если нет, то что
можно сделать, чтобы устранить их?
18. Опишем один из способов компоновки (статическая компоновка). Перед
сканированием библиотеки компоновщик составляет список необходимых
процедур, то есть имен, которые в компонуемых модулях определены как
внешние (EXTERN). Затем компоновщик последовательно просматривает всю
библиотеку, извлекая каждую процедуру, которая находится в списке нужных
имен. Будет ли работать такая схема? Если нет, то почему и как это можно
исправить?
19. Может ли регистр использоваться в качестве фактического параметра в
макровызове? А константа? Если да, то почему? Если нет, то почему?
Предыдущая << 1 .. 292 293 294 295 296 297 < 298 > 299 300 301 302 303 304 .. 422 >> Следующая