Вопросы по курсу Языки программирования (ассемблер).
-
16-разрядные регистры общего назначения (POH) процессора (АХ, ВХ, СХ, DX, SI, DI, SP, ВР). Назначение и использование. Специальное назначение регистров.
-
Регистр флагов. Основные флаги (CF, OF, AF, SF, ZF, IF, DF). Какие группы команд их устанавливают. Использование флагов. Команды ассемблера PUSHF и POPF.
-
Понятие сегментной адресации. Определение сегмента в ассемблере (директивы SEGMENT и ENDS). Сегментные регистры (CS, DS, SS, ES, FS, GS). Их назначение. Директива ASSUME. Директива GROUP.
-
Способы задания операндов в командах (виды адресации).
-
Понятие программного счетчика. Директивы работы с программным счетчиком (ORG, ALIGN EVEN). Регистры CS и IP.
-
Директивы упрощенной сегментации. Директива определения модели. Связь директив упрощенной сегментации с определением сегментов.
-
Директивы определения данных. Инициализация данных различных типов. Хранение строк и отрицательных чисел.
-
Понятие строк с терминатором (ASCIIZ-строки) и строки со счетчиком. Необходимость подобного представления строк. Достоинства и недостатки каждого метода.
-
Структуры, объединения, записи и перечисления. Директивы их описания в языке ассемблер. Работа с ними.
-
Операторы ассемблера. Операторы присваивания, арифметические, логические, сдвигов, сравнения. Отличия операторов от команд ассемблера.
-
Команды перемещения данных (MOV, XCHG, LEA, LDS, LSS, LES, LFS, LGS, XLATB, PUSH, POP, IN, OUT, CBW, CWD). Назначение, ограничения.
-
Арифметические команды (ADD, ADC, SUB, SBB, CMP, MUL, IMUL, DIV, IDIV, NEG). Назначение, устанавливаемые флаги.
-
Логические команды (AND, OR, XOR, NOT, TEST). Назначение, устанавливаемые флаги.
-
Команды сдвигов (SHL, SHR, SAL, SAR, RCL, RCR, ROL, ROR). Назначение, устанавливаемые флаги.
-
Команды работы с двоично-десятичными числами (ААА, DAA, AAS, DAS, AAD, ААМ). Назначение, принцип их работы.
-
Команды переходов. Условный (Jcc) и безусловный (JMP) переход. Ограничения на дальность перехода. Короткий, близкий и дальний переход. Косвенный переход. Директива LOCALS для локализации меток.
-
Команда организации циклов (LOOP). Алгоритм работы. Команды организации циклов с условием (LOOPE/LOOPZ и LOOPNE/LOOPNZ). Команда JCXZ.
-
Команды вызова (CALL) процедур и возврата (RET) из них. Алгоритм их работы. Определение процедур в ассемблере (директивы PROC и ENDP). Директивы LOCAL, ARG и USES.
-
Способы передачи параметров процедурам. Задание способа передачи параметров через стек. Стандартный пролог и эпилог процедур при передаче параметров через стек. Упрощенный вызов процедур при передаче параметров через стек.
-
Понятие прерывания. Аппаратные и программные прерывания. Таблица векторов прерываний. Команды вызова (INT) прерываний и возврата (RET) из них.
-
Строковые команды (MOVS, LODS, STOS, CMPS, SCAS, INS, OUTS). Назначение. Префиксы повторения строковых команд (REP, REPE/REPZ, REPNE/REPNZ).
-
Команды работы с флагами. Команды NOP и HALT.
-
Понятие макроопределения. Директивы определения макросов (MACRO и ENDM). Условные директивы и их использование в макросах. Директива LOCAL и ее использование в макросах.
-
Макросы повторения (REPT, IRP, IRPC) Директивы работы с текстовыми макросами.
-
Многомодульная разработка программ. Директивы описания внешних процедур и данных. Директивы включения заголовочных и библиотечных файлов. Процесс компиляции и компоновки многомодульных программ.
-
32-разрядные регистры процессора. Виды адресации в современных процессорах.
Достарыңызбен бөлісу: |