Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура вычислительных систем и Ассемблер с приложением методических указаний к лабораторным работам. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Предметный указатель 351
Предметный указатель
0x66, префикс изменения размера опе-
ранда, 132, 139
0x67, префикс изменения размера ад-
реса, 132, 139
1С, 28
APL, 28, 34 Apple II, 38 ARM, 38, 39 ASCII, 42, 274, 286, 287, 294, 324, 345
Bash, 27, 284, 308 Bell Model V, 26, 33 BINAC, 27, 34 BIOS, 8
C#, 28, 37 CDC 6600, 34 CISC, 17, 24, 131 Colossus Mark I, 33 Colossus Mark II, 33 Commodore PET, 38 cp1251, 287 cp866, 287 Cray-1, 37 Cray-X1E, 38 CSIRAC, 34
EDSAC, 27, 34 EDSAC-2, 34 EDVAC, 34 Elliot-803, 34 ENIAC, 33, 34 EVEX, префикс, 138
Ferranti, 34 FPU, 95, 104, 120, 129, 209
Harvard Mark I, 33 Harvard Mark II, 33 Harvard Mark III, 33, 34
IBM 360, 35–37 IBM 370, 36, 37 IBM 7030, 34, 35 IBM 704, 26 IBM 709, 26 IBM PC, 38, 40, 104 IDE Code::Blocks
дамп памяти, 324 окно дизассемблера, 328, 330 переменные, 322 подключение модуля на ассем-
блере, 333 регистры, 330 синтаксис дизассемблера, 329
IDE Qt Creator
дамп памяти, 323 окно дизассемблера, 329 переменные, 323 подключение модуля на ассем-
блере, 333 регистры, 331 синтаксис дизассемблера, 329 точки останова, 322
IDE TheIDE
окно дизассемблера, 328 переменные, 322 регистры, 330
Intel 4004, 37, 103 Intel 4040, 103 Intel 8008, 103 Intel 80186, 104
352 Предметный указатель
Intel 80286, 104 Intel 80386, 40, 105 Intel 8080, 103 Intel 8086, 103, 104 Intel 8087, 104 Intel 8088, 38, 40, 104 Intel Itanium, 105
Java, 28, 37
koi8, 287
Lorenz SZ, 32
main(), 233, 284
PDP-1, 34, 35 PDP-11, 36 PDP-4, 35 PDP-5, 35 PDP-7, 39 PDP-8, 35, 36 Perl, 28 PHP, 28 POSIX, 39, 40 Python, 28
REX, префикс, 105, 117, 137, 139, 140,
172 RISC, 17, 24 Ruby, 28
Simens-2002, 34 SUS, 39
Tandy TRS-80, 38 TRADIC, 35 TX-0, 34 TX-2, 34
Unicode, 42, 288 UNIVAC, 34 Unix, 39 UTF-16, 288 UTF-32, 288 UTF-8, 42, 288, 296, 306
VEX, префикс, 138 void, специальный тип C++, 289
Xerox Alto, 37
Z1, 31, 32, 45 Z2, 32, 45 Z22, 34 Z3, 32
Адресация
виды, 131, 179 косвенная, 131, 134, 180, 188, 192,
270 непосредственная, 131, 133, 179 неявная, 131 прямая, 131, 134, 179, 188 прямая относительная, 131, 135,
179, 188, 190, 192 регистровая, 131, 133, 136, 180,
192
Айкен, Говард, 32 Акация, 37 АЛУ, 9, 23, 31, 36 Алгол, 28, 34 Алмаз, 36 Альтаир, 38 Арифметика
беззнаковая, 62, 129, 195, 197,
198
вычитание, 64
Предметный указатель 353
деление, 66 сложение, 63
умножение, 65 двоично-десятичная, 79, 129, 186 знаковая, 73, 129, 195, 197, 198
вычитание, 74
сложение, 73
умножение, 76 модулярная, 80 с насыщением, 81 с плавающей запятой, 98 с фиксированной запятой, 90
Арифмометр, 25, 29, 31 Арка, 36 Арфа, 36 Архитектура
гарвардская, 18 фон-неймановская (принстонская),
17 Ассемблирование, 148 Атака, 36
Байт, 10, 24, 35
порядок байтов, 11 Бардин, Джон, 34 Бейсик, 28 Бит, 10, 23, 31 Битовые операции, 82 Битовые сдвиги, 86, 196, 198, 200 Бонч-Бруевич, Михаил Александро-
вич, 33 Браттейн, Уолтер, 34 БЭСМ-1, 34 БЭСМ-2, 34 БЭСМ-4, 34 БЭСМ-6, 34, 36, 37 Бэббидж, Чарльз, 18, 25, 30–33, 45
Бэкус, Джон, 28
Вещественные типы C++, 288 Виберг, Мартин, 31
Гранит, 35
Декорирование, 148, 255 Диана, 35 Днепр-2, 36
да Винчи, Леонардо, 31 де Кольмар, Тома, 31
ЕС ЭВМ, 37
Жаккар, Жозеф, 25, 30
Защищённый режим, 104, 106
К-340А, 46 Калькулятор, 23, 25, 29–31 Карат, 36 Карат-КМ-Е, 37 Качественные данные, 41 Керниган, Брайан, 39 Кеш-память, 10, 18 Килби, Джек, 35 Клён, 35 Кобол, 28, 34 Количественные данные, 41 Команды
adc, 196 add, 164–166, 189, 195, 196, 202,
236, 254, 258 and, 200, 202 bound, 186 bt, 162, 200 btc, 200
354 Предметный указатель
btr, 200 bts, 200 call, 139, 191, 192, 235, 241, 254,
258, 259 cbw/cbtw, 184, 199 cdqe/cltq, 184, 199 clc, 203 cld, 203 cli, 203 cmc, 203 cmovCC, 204, 208, 262, 265 cmp, 196, 203, 262–266, 268, 269,
271 cqo/cqto, 184, 199 cwd/cwtd, 184, 199 cwde/cwtl, 184, 199 dec, 196, 202, 204, 207 div, 196, 197 enter, 178, 242 f2xmi, 124, 226, 227 fabs, 227 fadd[p], 215, 221, 222 fbld, 216 fbst[p], 124, 217 fcmovCC, 204, 208, 219 fcom[p[p]], 229 fcomi, 203 fcomi[p], 229, 230 fcos, 124, 226, 227 fdiv[p], 185, 221, 222 fdivr[p], 185, 221, 222 fiadd[p], 221, 222 ficom[p], 229 fidiv[p], 221, 222 fidivr[p], 221, 222 fild, 216 fimul[p], 221, 222
finit, 209, 213 fist[p], 124, 217 fisub[p], 221, 222 fisubr[p], 221, 222 fld, 215, 216 fld1, 216 fldcw, 220 fldl2e, 216 fldl2t, 216 fldlg2, 216 fldln2, 216 fldpi, 216 fldz, 216 fmul[p], 221, 222 fnstcw, 220 fnstsw, 220, 230 fpatan, 124, 226–228 fprem1, 227 fptan, 124, 226, 227 FPU
арифметические, 221 выгрузки, 217 дополнительные, 226 загрузки, 216 пересылки, 217 сравнения, 229
трансцендентные, 124, 226 fscale, 227 fsin, 124, 226, 227 fsincos, 124, 226, 227 fsqrt, 227 fst[p], 124, 215, 217 fsub[p], 185, 221, 222 fsubr[p], 185, 221, 222 ftst, 229 fucom[p[p]], 229, 230 fucomi[p], 229, 230
Предметный указатель 355
fwait/wait, 214 fxam, 228 fxch, 219 fyl2x, 124, 226, 227 fyl2xp1, 124, 226, 227 idiv, 196, 197 imul, 165, 196, 197, 202, 253, 258 inc, 196, 202, 204, 268, 269, 271 int, 191–193, 238, 259, 260 into, 186 iret, 191–193 jCC, 190, 191, 204, 207, 208, 263,
266–269, 271 jcxz, 207 jecxz, 207 jmp, 190, 191, 207, 266, 268, 269,
271 lahf, 203 lea, 171, 186, 188, 196 leave, 242 loop, 207, 261 loopCC, 207 mov, 27, 115, 133, 140, 145, 164–
166, 178, 182, 186, 188, 208,
250, 253, 258 movabs, 140, 185, 186, 188 movs, 183, 184, 198, 208 movz, 184, 198, 208 mul, 196, 197, 202 neg, 196 nop, 186, 214 not, 200, 202 or, 200, 202 pop, 112, 139, 186, 189, 235, 241 popf/popfd/popfq, 203 push, 112, 139, 186, 189, 235, 241,
254, 258
pushf/pushfd/pushfq, 203 rcl, 200 rcr, 200 ret, 139, 191, 192, 241, 253, 259 rol, 200 ror, 200 sahf, 203, 230 sal, 196, 200 sar, 196, 200 sbb, 196 setCC, 204, 208, 264 shl, 196, 200 shr, 196, 200, 268, 269 stc, 203 std, 203 sti, 203 sub, 189, 196, 202 syscall, 186, 191–193, 259, 260 sysenter, 186, 191–193, 259, 260 sysexit, 191–193 sysret, 191–193 test, 200, 203 xor, 200, 202, 234, 268, 269, 271 арифметические, 194, 202, 204 обнуления регистра, 194, 234 передачи управления, 190, 207 пересылки, 186 расширения, 184, 198 сравнения, 203 удвоения разрядностиA, 184,
198 условной пересылки, 208, 219 установки байта, 208
Компилятор, 17, 26–28, 143–150 Компиляция
модули, 150 этапы, 146
356 Предметный указатель
Компоновка, 148, 151, 256 Компьютер, 25, 29, 30 Конвейер, 16, 17 Куча, 111, 175
Лада-2, 37 Лейбниц, Готфрид, 31, 45 Лисп, 28 Литералы, 175, 294
вещественные, 295 строковые, 296 целочисленные, 294
Логический вентиль, 23, 35
М-1, 34 М-220, 34 М-222, 34 Мантисса, 92–97, 100, 120, 121, 210,
211
Массивы
динамические, 277 матрицы, 276 многомерные, 276
одномерные, 270 МИР, 34 МИР-2, 36 Минск-1, 34 Минск-2, 34 Минск-32, 34 Мокли, Джон, 17, 27 МЭСМ, 34
Н-1, 34 Наири-1, 34 Наири-2, 34 Наири-3, 36 Наири-4, 36 Наур, Питер, 28
Неопределённость вещественная, 93–
96, 124, 211, 212, 229–231
Нецифровые символы, 50
знак, 50, 67 простые дроби, 51 разделитель дробной части, 51
Нойс, Роберт, 35
Однер, Вильгодт, 31 Октет, 10 Осокин, Юрий Валентинович, 35
Память
виды, 19 внешняя, 7 оперативная, 7 плоская модель, 20, 105, 108 просмотр содержимого, 307, 323 распределение адресов, 108
сегментная модель, 103 Параметр, 36 Параметры командной строки, 26,
284 Паскаль, 27, 28, 142, 153 Паскаль, Блез, 31 Перезаписываемые элементы, 161–163,
165, 167, 215, 271, 336
память, 166
флаги, 166 ПЗУ, 8 Планкалкюль, 28 Подпрограммы, 190, 239
вызов, 241
пролог, 242
соглашения о вызовах, 113, 245
стек вызовов, 113
эпилог, 242
Предметный указатель 357
Поразрядные операции, 82, 200 Порядок, 92–95, 100, 120, 121, 210,
211 ПП-1, 28 Представление вещественных чисел
двойной точности, 95, 289 одинарной точности, 95, 289 позиционное, 51 простые дроби, 51 расширенной точности, 95, 210,
289
с плавающей запятой, 72, 92, 210,
212, 289
с фиксированной запятой, 89
Представление знаковых целых чи-
сел, 67, 212, 287
двоично-десятичное, 212, 213 дополнительный код, 72 код с избытком, 71 код со знаком, 68
Представление натуральных чисел,
58, 287
восьмеричное, 59, 60 двоично-десятичное, 77 двоичное, 58 модулярное, 45, 80 перевод, 47 позиционное, 46 троичное, 45 шестнадцатеричное, 61
экономичность, 45, 49 Препроцессинг, 147 Препроцессор, 147
включение файла, 153
макросы, 155, 299
условия, 154 Проминь, 35
Процессор, 6, 9, 36
Радон, 35 Раздан-2, 34, 35 Расширение целых чисел, 84, 198 Реальный режим, 104, 106 Регистры, 9, 115
общего назначения, 115–117 расширений, 119 специальные, 119
флагов, 126 Реле, 32, 33, 45 Ритчи, Денис, 39
САВ-500, 35 Сегмент, 103, 108, 175 Сетунь, 23, 35, 45 Синтаксис
AT&T,144,173,174,221
Intel, 144, 173, 174 Система
автоматизированная, 5, 6
архитектура, 5
вычислительная, 5, 6, 11, 19, 22,
29, 41, 42, 49, 58, 59, 62, 63,
73, 142 Системная (материнская) плата, 6, 7 Системные вызовы, 26, 190, 237–239,
259, 260 Слово
x86, 10, 103 двойное, 10 машинное, 10, 24, 31, 241
четверное, 10 Стандарты C/C++, 283 Стек, 104, 108, 112, 117, 136, 139, 161,
175, 181, 189, 192, 234, 236, 241–243, 245–247, 250, 255
358 Предметный указатель
Стрела, 34 Суперскалярность, 16, 17
Табулятор, 29 Тактовый генератор, 7 Томпсон, Кен, 39 Транзистор, 34, 35, 45 Триггер, 33, 35 Триод, 33, 34 Трит, 23
Уилер, Дэвид Джон, 27 Урал-1, 34 Урал-11М, 36 Урал-14, 34 Урал-25, 36 УУ, 9, 23, 31, 36
Фаулер, Томас, 31 Феликс, 31 Флаги, 14, 15
AF (вспомогательного перено-
са), 127–129, 202, 205
CF (переноса), 64, 75, 86, 126–
130, 200, 202, 205, 208, 228–
231, 269 DF (направления), 127 FPU, 125
C0, 129, 220, 229–232 C1, 129, 220, 231 C2, 129, 220, 229–232 C3, 129, 220, 229–232
OF (знакового переполнения),
75, 126–129, 202, 205, 269 PF (чётности), 127–130, 202, 205,
208, 228–231 SF (знака), 127, 128, 202, 205,
269
ZF (нуля), 127–130, 202, 205, 208,
228–231, 269 проверка, 204, 207, 208, 219 состояния, 128 установка, 129, 202
Фортран, 26, 28, 34, 143
фон Нейман, Джон, 17, 49
Холлерит, Герман, 32 Хоппер, Грейс, 28
Целые типы C++, 285 Цикл выполнения команды, 14 Цузе, Конрад, 17, 25, 28, 30–33, 45
Шаблоны C++, 297, 309 Шестидесятичетырёхбитный режим,
106, 107, 111, 117, 119, 134,
135, 137–140, 179, 186, 188,
192, 193, 247
Шиккард, Вильгельм, 31 Штибитц, Джордж, 32 Шутц, Георг, 31
Экерт, Джон Преспер, 17, 27 Электроника НЦ-8010, 38 Эльбрус, 37, 105 ЭНИАК, 45 Энигма, 32 Эпос, 46
Список таблиц 359
Список таблиц
2.1 Перевод 0,13510в двоичную систему счисления .......... 57
2.2 Перевод 0,0010001010
2.3 Соответствие двоичных триад восьмеричным цифрам ....... 61
2.4 Соответствие двоичных тетрад шестнадцатеричным цифрам . . . 61
2.5 Различные способы представления знаковых чисел (кодирование) 69
2.6 Различные способы представления знаковых чисел (декодирование) 70
2.7 Логические операции над разрядами ................. 82
2.8 Знаковое и беззнаковое расширение ................. 85
2.9 Стандартные двоичные форматы с плавающей запятой ....... 95
3.1 Регистр флагов flags ......................... 127
3.2 Загрузка состояния FPU в регистр флагов .............. 130
3.3 Адресация операнда при помощи полей Modи R/M ........ 134
3.4 Номера (коды) регистров ....................... 136
3.5
Номера (коды) регистров общего назначения при использовании
REX .................................. 138
в десятичную систему счисления ..... 58
2
4.1 Модификаторы параметров ассемблерных вставок GCC ...... 172
5.1 Суффиксы размера операндов .................... 183
5.2
Двойные суффиксы размера для копирования целых чисел с расши-
рением ................................. 183
5.3 Основные общие команды ....................... 187
5.4 Команды передачи управления, вызова и возврата ......... 191
5.5 Команды целочисленной арифметики ................ 196
5.6 Команды умножения и деления неявного аргумента A ....... 197
5.7 Команды расширения (увеличения разрядности) .......... 199
5.8 Мнемоники команд знакового расширения A ............ 199
5.9 Основные битовые операции ..................... 201
5.10 Команды обработки флагов ...................... 203
5.11 Условия и их связь с флагами состояния flags ........... 205
5.12 Команды передачи управления .................... 207
5.13 Команды пересылки данных ..................... 208
5.14 Команды загрузки данных в стек FPU ................ 216
360 Список таблиц
5.15 Команды выгрузки данных из стека FPU ............... 217
5.16 Команды пересылки данных FPU ................... 219
5.17 Условия fcmovCC и их связь с флагами состояния flags ...... 220
5.18 Команды загрузки и выгрузки управляющих регистров FPU .... 220
5.19 Основные арифметические операции FPU .............. 222
5.20 Шесть форм основных арифметических команд FPU ........ 223
5.21 Дополнительные арифметические и трансцендентные команды FPU 227
5.22 Команды сравнения FPU ....................... 229
5.23 Значение флагов при сравнении .................... 229
5.24 Значение флагов при определении вида st(0) ............ 231
6.1 Тридцатидвухбитные соглашения о вызовах ............. 246
6.2 Шестидесятичетырёхбитные соглашения о вызовах ........ 247
6.3 Механизм системных вызовов Linux ................. 260
6.4 Размер выравнивания для данных различных типов ......... 278
7.1 Минимальная разрядность стандартных целых типов ........ 286
7.2 Основные форматы вывода printf () ................. 303
7.3 Основные флаги вывода printf () ................... 304
7.4 Основные форматы ввода scanf () .................. 305
7.5 Основные модификаторы размера .................. 305
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]