Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CП_Ответы.doc
Скачиваний:
15
Добавлен:
27.09.2019
Размер:
281.09 Кб
Скачать
  1. Перечислите команды сложения и вычитания двоичных чисел. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры сложения и вычитания двоичных чисел.

Команды сложения: add, adc, inc.

Команды вычитания: sub, sbb, dec.

Синтаксис:

adc приемник,источник 

Сложение двух операндов с учетом переноса из младшего разряда. С помещение результата в приёмник.

add приемник,источник 

Сложение двух операндов источник и приемник размерностью байт, слово или двойное слово. С помещение результата в приёмник.

inc приемник

Команда INC увеличивает приемник (регистр или переменная) на 1.

sub операнд_1,операнд_2 

Целочисленное вычитание из операнда_1 операнд_2, с помещение результата в операнд_1.

sbb операнд_1,операнд_2 

Целочисленное вычитание с учетом результата предыдущего вычитания командами sbb и sub (по состоянию флага переноса cf), с помещение результата в операнд_1.

dec приемник

Команда DEC уменьшает приемник (регистр или переменная) на 1.

Примеры:

add eax, ecx

adc edx, ebx

sub eax, ecx

sbb edx, ebx

inc eax

dec ebx

  1. Перечислите способы передачи аргументов в процедуру. Опишите способ передачи аргументов через стек. Перечислите достоинства и недостатки данного способа. Приведите пример передачи аргументов в процедуру через стек.

Способы передачи аргументов в процедуру: через область памяти, через стек, через регистры, и с помощью extern и public.

Передача аргументов через стек при вызове процедур используется наиболее часто. Суть этого способа заключается в том, что вызывающая процедура самостоятельно заносит в стек передаваемые данные, после чего обращается к вызываемой процедуре.

Достоинством является простота передачи(командой PUSH).

Недостатком является то, что неправильная работа со стеком приведёт к краху программы.

  1. Перечислите логические команды языка ассемблер. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования логических команд.

логические команды языка ассемблер: not, and, or, xor, not, test.

Синтаксис:

not операнд

and операнд_1, операнд_2

or операнд_1, операнд_2

xоr операнд_1, операнд_2

test операнд_1, операнд_2

not — операция логического отрицания. Команда выполняет поразрядное инвертирование (замену значения на обратное) каждого бита операнда. Результат записывается на место операнда.and — операция логического умножения. Команда выполняет поразрядно логическую операцию И (конъюнкцию) над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.or — операция логического сложения. Команда выполняет поразрядно логическую операцию ИЛИ (дизъюнкцию) над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.xоr — операция логического исключающего сложения. Команда выполняет поразрядно логическую операцию исключающего ИЛИ над битами операндов операнд_1 и операнд_2. Результат записывается на место операнд_1.test — операция проверки (способом логического умножения). Команда выполняет поразрядно логическую операцию И над битами операндов операнд_1 и операнд_2.

Пример:

xor eax,eax - обнуление регистра

and ax,mask_

or bx,mask_

xor dx,mask_

not ax

  1. Перечислите команды пересылки цепочек. Опишите синтаксис каждой команды и принцип ее работы. Опишите результат использования префиксов повторения. Приведите примеры использования команд пересылки цепочек.

MOOVS - это команда копирует байт, слово или двойное слово цепочки источника в цепочку приемник размер пересылаемых элементов определяется исходя из атрибутов - идентификатора. Команда присылает только один элемент исходя из его типа и модифицирует значение регистров ESI/SI, EDI/Di.Для пересылки не одного элемента необходимо использовать префикс повторения REP. И загрузить в счетчик регистр CX/ECX число пересылаемых элементов порядок действий который необходимо выполнить для пересылки последовательности элементов из одной области памяти в другую с помощью команды MOOVS:Синтаксис команды MOOVS адрес приёмника, адрес источника. MOOVS может работать с цепочками элементов любой длины.

  1. Опишите принцип использования процедуры в ассемблере: цель использования процедуры, синтаксис описания процедуры, размещение в тексте программы, вызов процедуры, технология отработки. Приведите пример использования процедуры.

Процедура или подпрограмма — это основная функциональная единица декомпозиции некоторой задачи. Процедура представляет собой группу команд для решения конкретной подзадачи и обладает средствами получения управления из точки вызова задачи более высокого уровня и возврата управления в эту точку.

Синтаксис:

имя_процедуры proc

тело_процедуры

имя_процедуры endp

Процедура может размещаться в любом месте программы

Команда CALL осуществляет вызов процедуры (подпрограммы). Синтаксис команды:

call [модификатор] имя_процедуры

Технология обработки:

1) Происходит вызов процедуры с помощью команды CALL

2)Выполняются действия(тело процедуры)

3) Команда RET считывает адрес возврата из стека и загружает его в регистры CS и EIP/IP, тем самым возвращая управление на команду, следующую в программе за командой CALL

Пример:

.data

.code

my_proc procnear

ret

my_proc endp

start:

end start

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]