Основы программирования на Ассемблере



Организация ЭВМ и С

 

###THEMES###

Представление информации в ЭВМ

Выполнение операций в ВТ

Основы программирования на Ассемблере

Базовые принципы организации ЭВМ

Логический уровень организации ЭВМ

Архитектура и организация МП IA-32

Формат команд и способы адресации

Память ЭВМ

Система прерываний

Организация ввода-вывода

 

Представление информации в ЭВМ

Система счисления в которой вес цифры меняется в зависимости от ее местоположения в числе называется

-Двоичной

-Позиционной

-Непозиционной

-восьмеричной

 

Количественный эквивалент числа в позиционной системе счисления описывается выражением

, где n –

-Количество цифр в дробной части

-Количество цифр в целой части

-Количество цифр в числе

-Основание системы счисления

 

Количественный эквивалент числа в позиционной системе счисления описывается выражением, где m –

-Количество цифр в дробной части

-Количество цифр в целой части

-Количество цифр в числе

-Основание системы счисления

 

Количественный эквивалент числа в позиционной системе счисления описывается выражением, где p –

-Количество цифр в дробной части

-Количество цифр в целой части

-Количество цифр в числе

-Основание системы счисления

 

Двоичное число 0101,1b cоответствует десятичному эквиваленту

-4,5d

--5,2d

-5,5d

-11d

Шестнадцатеричное число A9h cоответствует десятичному эквиваленту

-169d

-89d

-38d

--09d

 

Двоичное число 10101111b соответствует шестнадцатеричному эквиваленту

-FAh

-AAh

-10Fh

-AFh

 

Шестнадцатеричное число 93h соответствует двоичному эквиваленту

-10010011b

-00111001b

-11001001b

-10000011b

 

Десятичное число 25d соответствует двоичному эквиваленту

-10011b

-11001b

-11101b

-10111b

 

Десятичное число 0,375d соответствует двоичному эквиваленту

-1,111b

-0,110b

-0,011b

-0,001b

 

Расположите шестнадцатеричные числа в порядке возрастания:

4-C9h

3-A9h

1-9Ah

2-9Ch

 

Дополнительный двоичный код десятичного числа со знаком +12d равен

-11000000b

-11001100b

-00001100b

-10001100b

 

Дополнительный двоичный код десятичного числа со знаком -12d равен

-11001111b

-11110100b

-00001100b

-10001100b

 

Двоичные целые числа без знака форматом 1 байт находятся в диапазоне 

--127…+128

--128… +127

- 0… 255

-0…65535

 

Двоичные целые числа со знаком форматом 1 байт находятся в диапазоне 

--127…+128

--128… +127

--32768…+32767

-0…65535

 

Двоичные целые числа без знака форматом 2 байта (слово) находятся в диапазоне 

--128… +127

--127…+128

-0… 255

-0…65535

 

Двоичные целые числа со знаком форматом 2 байта (слово) находятся в диапазоне 

--127…+128

--128… +127

- -32768…+32767

-0…65535

 

В стандарте IEEE754 для представления двоичных чисел с плавающей точкой используются нормализованные числа, в которых точка располагается

-слева от старшего ненулевого бита мантиссы

-справа от старшего бита мантиссы

-слева от старшего бита мантиссы

-справа от старшего ненулевого бита мантиссы

 

Нормализованное по стандарту IEEE754 двоичное число 10110,0011*22 соответствует

-1,01100011*26

-0,01100011*26

-1,01100011*2-4

-0,01100011*2-4

 

Вещественные числа в формате IEEE754 имеют в своем представлении три двоичных поля

-Знак мантиссы

-Знак порядка

-Смещенный порядок

-Порядок

-Целая часть мантиссы

-Дробная часть мантиссы

 

Смещенный порядок в представлении вещественного числа в формате IEEE754 позволяет сэкономить 1 бит, предназначенный для

-Знака мантиссы

-Знака порядка

-Дробной части числа

-Целой части числа

 

Вещественные числа одинарной точности в формате IEEE754 разрядность

-80 бит

-16 бит

-32 бита

-64 бита

 

Вещественные числа двойной точности в формате IEEE754 разрядность

-80 бит

-16 бит

-32 бита

-64 бита

 

Сколько двоичных разрядов занимает беззнаковое число 96d (десятичное) в неупакованном двоично-десятичном формате (BCD)

-8

-12

-16

-32

 

Сколько двоичных разрядов занимает число 96d (десятичное) в упакованном двоично-десятичном формате (BCD)

-8

-12

-16

-32

 

ASCII коды символов “C” и “D” отличается на

-2

-1

-28

-8

 

Cтарший разряд четырехразрядного целого двоичного числа имеет вес

-2

-8

-4

-1

 

Младший разряд восьмиразрядного целого двоичного числа имеет вес

-2

-8

-4

-1

 

Старший разряд восьмиразрядного целого двоичного числа имеет вес

-27

-28

-20

-21

 

Знаковый разряд однобайтового числа – это разряд

-D7

-D0

-D1

-D8

 

Выполнение операций в ВТ

Результат логической операции AND над операндами A = 01100011b и В = 10000111b будет равен

-00000011b

-11100111b

-10011100b

-11111100b

 

Результат логической операции OR над операндами A = 01100011b и В = 10000111b будет равен

-00000011b

-11100111b

-10011100b

-11111100b

 

Результат арифметической операции сложения над операндами A = 01100011b и В = 10000111b будет равен

-00000011b

-11100111b

-10011100b

-11101010b

 

Результат арифметической операции сложения над операндами A = -9d и В = 15d будет равен

-00000011b

-11100111b

-00000110b

-11111100b

 

Результат арифметической операции сложения над операндами A = 12d и В = -15d будет равен

-00000011b

-11100111b

-00000110b

-11111101b

 

Результат арифметической операции сложения равен 11111101b,а флаги результата имеют значения

-PF=0, ZF=0, SF=1

-PF=1, ZF=1, SF=1

-PF=0, ZF=0, SF=0

-PF=1, ZF=0, SF=1

 

Результат операции логического умножения равен 10000101b,а флаги результата имеют значения

-PF=0, ZF=0, SF=0

-PF=1, ZF=1, SF=1

-PF=0, ZF=0, SF=0

-PF=0, ZF=0, SF=1

 

Результат арифметической операции вычитания равен 00111101b,а флаги результата имеют значения

-PF=0, ZF=0, SF=0

-PF=1, ZF=1, SF=1

-PF=0, ZF=1, SF=0

-PF=0, ZF=0, SF=1

 

При сложении беззнаковых чисел индикатором переполнения является флаг

-OF

-SF

-CF

-AF

 

При сложении чисел со знаком индикатором переполнения является

-CF= OF

-CF=1

-OF=1

-CF# OF

 

При сложении чисел со знаком переполнение может происходить если операнды имеют

-Разные знаки

-Одинаковые знаки

-не происходит никогда

-происходит всегда

 

При вычитании чисел со знаком переполнение может происходить если операнды имеют

-Разные знаки

-Одинаковые знаки

-не происходит никогда

-происходит всегда

 

При выполнении логических операций знак результата кодируется

-значением старшего бита

-значением младшего бита

-результат не имеет знака

-всегда отрицательный

 

При выполнении логических операций сигнал межразрядного переноса

-не формируется

-учитывается в следующем разряде

-устанавливает флаг CF

-устанавливает флаг AF

 

Беззнаковые целые числа - это числа

-среди которых нет отрицательных

-среди которых нет 0

-в диапазоне -65535...+65535

-среди которых нет положительных

 

Основы программирования на Ассемблере

Процесс преобразования программы на ассемблере в машинные коды называется

-компиляцией

-загрузкой

-компоновкой

-ассемблированием

 

 

Для создания программы на Ассемблере последовательно выполняются этапы

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)

 


Дата добавления: 2018-05-13; просмотров: 270; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!