1 / 1 / 0
Регистрация: 25.05.2015
Сообщений: 5
|
|
1 | |
Тест на знание ассемблера12.06.2013, 16:23. Показов 7846. Ответов 9
Метки нет (Все метки)
Доброго времени суток, господа!
В этом семестре нам преподавали системное программирование. Я немного не добрал до зачета и, чтобы выплыть, нужно решить некий тест почти безошибочно. Он состоит из утверждений. Нужно поставить +/- в зависимости от их правильности. Я полностью решил его, но боюсь, что, может быть, что-то упустил или недопонял. Проверьте пожалуйста, буду крайне признателен 1.Мнемоника команды – это символьная запись указания процессору выполнить определённое действие + 2. Мнемоника команды ассемблера имеет, по крайней мере, три символа - 3. Регистры – собственные ячейки памяти процессора, предназначенные для кратковременного хранения и обработки данных+ 4. Все регистры микропроцессора допускают прямое обращение- 5. Флаг нуля сброшен всегда, если результат предшествующей операции ноль- 6. Флаг знака равен старшему биту результата предшествующей операции + 7. Флаг знака после умножения двух отрицательных чисел всегда будет сброшен+ 8. Флаг переполнения устанавливается только в результате выполнения арифметических операций+ 9. В результате выполнения любой арифметической операции устанавливается флаг переноса- 10. Существует команда позволяющая изменять состояние регистра флагов + 11. Результат умножения двух чисел всегда помещается в регистр аккумулятор - 12. Результат операции деления может оказаться в трёх различных регистрах- 13. Результат умножения 16 битных чисел в 32х битном режиме будет находиться в регистре EAX + 14. Команда умножения может формировать результат с использованием трёх различных регистров + 15. При выполнении команды деления, могут возникнуть две различные исключительные ситуации+ 16. При выполнении любой команды ассемблера, микропроцессор изменяет состояние регистра указателя команд + 17. Использование команды LOOP может изменить состояние только одного регистра - 18. Существуют команды условного перехода, анализирующие состояние нескольких флагов + 19. Команда сравнения формирует результат в специальном регистре - 20. Существует команда записи из ячейки памяти в ячейку памяти- 21. Существует специальная мнемоника команды записи из ячейки памяти в ячейку*памяти*- 22. Косвенная адресация осуществляется с помощью заключённых в квадратные скобки регистров,содержащих адрес памяти + 23. Существует способ адресации, формирующий результат при помощи 3х регистров - 24. Косвенная адресация позволяет динамически назначить адрес операнда для выполнения команды + 25. Базовая адресация со смещением связана с возможностью масштабирования содержимого индексного регистра. - 26. Масштабирование допускается использовать только для регистров общего назначения + 27. Масштабирование допускается использовать только для индексных регистров.- 28. Стек микропроцессора заполняется от младших адресов к старшим- 29. Эффективный адрес операнда может находиться в любом из регистров общего назначения + 30. Любая арифметическая команда изменяет состояние флага переноса - 31. Любая арифметическая команда изменяет состояние флага знака- 32. Флаг знака после умножения двух отрицательных чисел всегда будет установлен - 33. В результате выполнения любой арифметической операции устанавливается флаг переноса -
1
|
12.06.2013, 16:23 | |
Ответы с готовыми решениями:
9
Тест на знание C++ Тест на знание Delphi Тест на знание предмета Тест на знание Windows |
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
||||||
12.06.2013, 18:25 | 2 | |||||
8. - POPF
13. -
0
|
76 / 76 / 2
Регистрация: 03.05.2012
Сообщений: 161
|
|
12.06.2013, 18:26 | 3 |
В ассемблере вроде не новичок, но многие вопросы очень скользкие. Например:
В общем, тут чуть ли не каждый вопрос можно трактовать всяко разно. Трудновато вам будет этот тест сдавать.
0
|
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|
12.06.2013, 19:33 | 5 |
я сразу подумал про ip\eip
Добавлено через 1 минуту если знаешь о чем говоришь - можно обосновать свой ответ и сдать норм
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.06.2013, 05:40 | 6 |
2. Мнемоника команды ассемблера имеет, по крайней мере, три символа -
jl, jg, je, jz, bt 10. Существует команда позволяющая изменять состояние регистра флагов Для загрузки значений флагов в регистр EFLAGS и считывания из него предназначены команды LAHF, SAHF, PUSHF, PUSHFD, POPF и POPFD. Есть команды воздействующие на отдельные флаги: CLD, STD, CLC, STC, CMC, CLI, STI, int 3, INT 1(ICEBP) 16. При выполнении любой команды ассемблера, микропроцессор изменяет состояние регистра указателя команд + например эта команда jmp $
0
|
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
|
|
13.06.2013, 06:48 | 7 |
Ещё or например.
Добавлено через 2 минуты Да, существует. Например, любой вызов Int сбрасывает TF Тогда уж -, потому что при этом джампе процессор остается на одном месте в коде.
1
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.06.2013, 08:50 | 8 |
Если быть более точным, то команда INT в REAL-ADDRESS-MODE помещает "старое" значение EFLAGS в стек и сбрасывает флаги TF, IF, AC но потом после выхода из прерывания значения в EFLAGS будут восстановлены, а вот команда IRET может поменять значения EFLAGS кардинально, тем, что мы предварительно поместим в стек
0
|
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
|
13.06.2013, 09:31 | 9 |
6. - MOV
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.06.2013, 10:47 | 10 |
6. LEA использовать для сложения/вычитания содержимого регистра с константой можно, а на флаги не влияет
Добавлено через 55 минут 23. Существует способ адресации, формирующий результат при помощи 3х регистров LEA EBX,[EAX+ECX] == EBX := EAX + ECX а также при помощи четырех регистров ES, DS, EDI, ESI MOVS и команда CMPXCHG8B m8byte Семантика команды: выполнение в одной операции сравнения и обмен 8-байтовых операндов. Команда требует один операнд m8byte и неявным образом использует еще два операнда – пары регистров EDX:EAX и ECX:EBX. В качестве явного операнда команды m8byte может выступать только 64-битная (8-байтовая) ячейка памяти. Команда выполняет сравнение операнда m8byte в памяти с содержимым EDX:EAX. Если сравниваемые значения совпадают, то операнд DEST в памяти замещается 64-битным значением ECX:EBX. Если сравниваемые значения не совпадают, содержимое памяти поступает в пару регистров EDX:EAX, замещая сравниваемый операнд DEST
1
|
13.06.2013, 10:47 | |
13.06.2013, 10:47 | |
Помогаю со студенческими работами здесь
10
Прикольный тест на знание Windows 7. Тест на знание работы компилятора Тест на знание синтаксиса языка C++ Программа тест на знание Си++ не работает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |