КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Основы программирования на АссемблереПроцесс преобразования программы на ассемблере в машинные коды называется -компиляцией -загрузкой -компоновкой -ассемблированием
Для создания программы на Ассемблере последовательно выполняются этапы Отладка 4 Компоновка 3 Создание исходного модуля 1 Трансляция 2
Непосредственную загрузку регистра можно выполнить с помощью команды -MOV dst, data -MOV dst, src -LEA reg, mem -XCHG reg, mem
Внутрисегментное смещение переменной var_1 может быть загружено в регистр DX командами -MOV DX, var_1 -MOV var_1, DX -MOV DX, offset var_1 -LEA DX, var_1
Переменную var_1 можно загрузить в регистр AL командой -MOV AL, var_1 -MOV var_1, AL -MOV AL, offset var_1 -LEA AL, var_1
Операндом команды работы со стеком PUSH src может быть -Любой 16 битовый регистр или двухбайтовая ячейка памяти -Любой регистр или ячейка памяти -Любой 16 битовый регистр кроме сегментного или двухбайтовая ячейка памяти -Любой 16 битовый регистр кроме сегментного
Операндом команды работы со стеком POP dst может быть -Любой 16 битовый регистр кроме сегментного -Любой 16 битовый регистр кроме сегментного или двухбайтовая ячейка памяти -Любой 16 битовый регистр или двухбайтовая ячейка памяти -Любой 16 битовый регистр кроме сегментного регистра CS или двухбайтовая ячейка памяти
При прямой адресации к портам ввода-вывода используются команды -IN ac, port -IN ac, DX -OUT DX, ac -OUT port, ac
При косвенной адресации к портам ввода-вывода в качестве указателя адреса порта используется регистр -DS -CS -CX -DX
При прямой адресации к портам ввода-вывода используются команды IN ac, port и OUT port, acв которых операнд port является -Числом в диапазоне 0..255 -Числом в диапазоне –128…-127 -Числом в диапазоне 0…65535 -Числом в диапазоне 0…220
Ошибочными являются ассемблерные команды -MOV AL, CH -MOV CX, 3Eh -MOV SI, AH -MOV DS, 8EEEAh -MOV DX, var_1
Операндами команды MOV dst, src могут быть -Регистр – регистр -Сегментный регистр – сегментный регистр -Память – регистр -Память – память -Регистр – непосредственные данные -Непосредственные данные – регистр -Регистр – память -Сегментный регистр – непосредственные данные
Длина операндов в командах передачи данных должна быть -Равна 1 байту -Разной -Одинаковой -Равна 2 байтам
Операнды логических команд являются -Целыми Числами без знака -Целыми Числами со знаком -Вещественными числами со знаком -Вещественными числами без знака
При выполнении команд логических операций флаг переноса CF -Формируется -Всегда равен 1 -Всегда равен 0 -Не формируется
Если содержимое AL = 0Fh , то результатом выполнения команды NOT AL, будет -11110000b -00001111b -10101010b -00000000b
Формат директив Ассемблера предусмативает следующие поля -имя -метка -директива -комментарий -мнемоника -операнд(ы) -префикс
Формат команд Ассемблера предусматривает следующие поля -метка -мнемоника -имя -префикс -директива -операнд(ы) -комментарий
Каждая команда при трансляции формирует код длиной -1 байт -4 байта -длина зависит от способов адресации операнда -2 байта
В каждой программе на Ассемблере обязательно должен быть -сегмент стека -сегмент кода -сегмент адреса -сегмент данных
Команды Ассемблера могут быть -адресными -безоперандными -двухоперандными -безадресными -однооперандными
.Code это директива -закрытия сегмента кода -открытия сегмента кода -объявления данных -резервирования памяти под сегмент кода
. Data - это директива -объявления данных в программе -резервирования памяти под данные, используемые в программе -открытия сегмента данных -объявления констант, используемых в программе
.Model <модель памяти> - это директива предполагает использования -организацию дополнительного сегмента данных в программе -упрощенных директив описания сегментов .Data, .Stack, .Code -стандартных директив SEGMENT и ENDS -директивы ASSUME для связывания сегментов программы с сегментными регистрами
Директива ASSUME связывает -метку команды с командой -сегментные регистры с логическими сегментами программы -точку входа в программу с командой -точку выхода из программы с командой
Для исполняемых модулей типа .COM справедливо -(DS)>(SS)>(CS) -(DS)<(SS)<(CS) -(DS)=(SS)=(CS) -(DS)(SS)(CS)
В исполняемых модулях типа .COM -логические сегменты программы увеличиваются на 64 Кбайт -стек отсутствует -данные, стек и команды размещаются в одном сегменте -логические сегменты программы равны 16 Кбайт
Сегменты исходного модуля должны располагаться в порядке -данные, стек, код -произвольном -код, данные, стек -стек, данные, код
Результат операции умножения операндов размером byte MUL srcпомещается в -ячейку памяти -в регистр DX -регистр-аккумулятор АХ -в стек
Результатом выполнения команды MUL CL будет -AX:=(AX)*(CX) -DX:=(DL)*(CL) -AX:=(AL)*(CL) -AL:=(AL)*(CL)
|