The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Книга является практическим пособием по программной модели процессоров i80x86/64. Простейшие элементы этой модели (переменные, константы, методы адресации и система команд) изучаются с помощью ассемблера a86, отладчика d86. 32-битные возможности i80x86, включая защищенный режим, вентили, исключения и прерывания, привилегии, страничное преобразование, исключения, LDT и TSS, а также 64-битные режимы процессора x64 с исключениями и прерываниями в long mode изучаются с использованием ассемблера nasm.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2023-07-21 00:40:58

Ассемблер и программная модель процессоров x86/64

Книга является практическим пособием по программной модели процессоров i80x86/64. Простейшие элементы этой модели (переменные, константы, методы адресации и система команд) изучаются с помощью ассемблера a86, отладчика d86. 32-битные возможности i80x86, включая защищенный режим, вентили, исключения и прерывания, привилегии, страничное преобразование, исключения, LDT и TSS, а также 64-битные режимы процессора x64 с исключениями и прерываниями в long mode изучаются с использованием ассемблера nasm.

Keywords: Ассемблер

Список источников 1. AMD64 Architecture Programmer’s Manual Volume 1: Application Programming. Advanced Micro Devices Inc., 2020. 385 p. 2. AMD64 Architecture Programmer’s Manual, Volume 2: System Programming. Advanced Micro Devices Inc., 2021. 722 p. 3. AMD64 Architecture Programmer’s Manual, Volume 3: General-Purpose and System Instructions. Advanced Micro Devices Inc., 2021. 640 p. 4. AMD64 Architecture Programmer’s Manual, Volume 5: 64-Bit Media and x87 Floating-Point Instructions: 2013. 342 p. 5. Bartlett J. Learn to Program with Assembly: Foundational Learning for New Programmers. Apress, 2021. 344 p. 6. Berger H. Automating with STEP7 in STL and SCL: Programmable Controllers SIMATIC S7-300/400. Wiley, 2009. 543 p. 7. Carter P.A. PC Assembly Language. N.-Y.: Paul A. Carter, 2006. 195 p. 8. Duntemann J. Assembly Language Step-by-Step: Programming with Linux. 3rd ed. — Hoboken: Wiley, 2009. 648 p. 9. Intel 64 and IA-32 Architectures Software Developer's Manual. Volume 3 (3A, 3B, 3C & 3D): System Programming Guide. Intel Corporation, 2016. 1998 p. 10. Intel Processor Identification and the CPUID Instruction. Intel Corporation, 2009. 112 p. 11. Kusswurm D. Modern X86 Assembly Language Programming: Covers x86 64-bit, AVX, AVX2, and AVX-512. Apress, 2019. 604 p. 12. Lunt B. FYSOS: The System Core (FYSOS: Operating System Design Book 1). Kindle Edition, 2013. 320 p. 13. Nentwig J., Kreuder M., Morgenstern K. General and Inorganic Chemistry Made Easy (Chemistry Made Easy Series), 1st ed. Wiley-VCH, 1992. 727 p. 14. Ochem Q., Hoffmann G., Tice R., Rogers P. Ada for the Embedded C Developer. AdaCore, 2021. 253 p. 15. Sen-cuo Ro. I386/I486 Advanced Programming: Real Mode, Protected Mode, Virtual 8086 Mode. Automata Publishing Company, 1993. 227 p. 16. Shanley T. Protected Mode Software Architecture. Addison-Wesley Professional, 1996. 310 p. 17. Streib J. T. Guide to Assembly Language: A Concise Introduction, 2nd Edition. Springer Nature, 2020. 340 p.


Предметный указатель B Bochs ◊ конфигурация 15, 377 ◊ образ диска 16 ◊ отладочный вариант 18, 379, 380 magic breakpoint 151, 174, 387 отображение данных 152, 223, 250 ◊ параметры запуска 15 ◊ рабочий вариант 15 D d86 ◊ ошибки 393 ◊ режим непосредственного выполнения 10, 69, 113 ◊ форматы отображения данных 383 G Global Descriptor Table, GDT 220 I Interrupt Descriptor Table, IDT 253, 256, 362 P Program Segment Prefix, PSP 29, 46, 68, 143, 149, 151, 153, 221, 275 ◊ параметры командной строки 62, 149, 153, 159 А Адрес ◊ видеобуфера 154 ◊ виртуальный 174 ◊ линейный 150 ◊ номер параграфа 152 ◊ сегмента линейный 150, 151, 153 ◊ сегментный 152 ◊ физический 174 ◊ эффективный 150, 151 Адресация ◊ базово-индексная 66, 151 ◊ индексная со множителем 390 ◊ косвенная 63, 66, 71, 150, 151, 211 со смещением 64, 71 ◊ непосредственная 60, 70, 76 ◊ относительная 151, 157 ◊ прямая 61, 70, 76, 150, 151, 344 относительная 305, 342, 344, 345, 347, 348 ◊ регистровая 60, 70, 76 Ассемблер ◊ a86 (особенности) 10, 21, 23, 32, 38, 50, 112, 126, 127, 175 ◊ nasm (особенности) 191, 224, 385 В Вентиль 331, 341 ◊ вызова 229, 253, 307, 311, 328, 329, 336, 339, 352 ◊ прерываний 253, 259, 261, 265, 328, 341 поле IST 364, 365


Глава 1. Установка программ 399 Д Дескриптор 220 ◊ LDT 269 ◊ TSS 276, 285, 311, 315 IOPB 317, 318, 358, 362 в 64-битовом режиме 277, 286, 341, 357 ◊ атрибуты 341 C (Conforming) 311, 331 D (Data size) 331 L (Long) 331, 335, 336 ◊ данных 237 ◊ кодовый 221 ◊ нулевой 221, 284 И Исключение 185 ◊ General Protection Fault (13) 188, 207, 208, 209, 221, 225, 232, 258, 272, 284, 369 ◊ Page Fault (14) 293 ◊ код ошибки 258 К Каталог таблиц страниц 289, 292, 295 Л Линия A20 242 П Привилегии 226, 259 ◊ CPL 226, 307 ◊ DPL 226, 259, 307 ◊ RPL 226, 307 Р Регистры ◊ CR0 222, 225, 290, 327 бит NE 388 ◊ CR2 293 ◊ CR3 277, 289, 290, 296, 304, 327 ◊ CR4 292, 306, 351 бит PAE 295, 327 бит PSE 292, 295 ◊ GDTR 220, 222 ◊ IDTR 253, 256 ◊ LDTR 271 ◊ MSR EFER (Extended Feature Enable Register) 323, 354 LSTAR 354, 356 SFMASK 354 STAR 354 СSTAR 354 ◊ MSR (Model Specific Register) 330, 351, 354 ◊ r8–r15 329, 341, 343 ◊ spl, bpl, sil, dil 343 ◊ TR (Task Register) 279, 285, 286, 315, 320, 358 ◊ сегментные 151, 153, 219 ◊ селекторы 219, 284 теневые 231, 232, 233, 272 ◊ флагов 266 бит I 266 поле IOPL 266 Режим ◊ 64-битовый 304, 323, 333, 336, 340 ◊ unreal 231, 241 ◊ совместимости 323, 335, 336 С Сегменты ◊ атрибуты 225 ◊ защищенный режим 219 ◊ конформные 227 ◊ реальный режим 219 Системные вызовы ◊ SYSCALL/SYSRET 233 ◊ SYSCALL/SYSRET 352 ◊ SYSENTER/SYSEXIT 233 Страничное преобразование адресов 277 Т Таблица страниц 289, 292


Click to View FlipBook Version