Содержание
- 2. Вопрос с флагами OF ( Overflow Flag, флаг переполнения) срабатывает если результат слишком велик для помещения
- 3. Программа на Ассемблере под Win32 .386 .model flat,stdcall ; плоская модель памяти, соглашение о вызове процедур
- 4. ExitProcess invoke ExitProcess, код_результата_работы_in Завершает работы программы с кодом результата.
- 5. MessageBox invoke MessageBox, дескриптор_родительского_окна_in, адрес_текста_in, адрест_текста_заголовка_in, константа_обозначающая_набор_кнопок_окна_in Показывает информационной сообщение.
- 6. wsprintf invoke wsprint, адрес_результирующей_строки_out, адрес_формата_строки_in, Число1_in,число 2_in, … Преобразует число в строку. Некоторые варианты формата: %d
- 7. Программа на Ассемблере под Win32 (консоль) .386 … BSIZE equ 14 ; заводим псевдооператор . BSIZE
- 8. WriteConsole invoke WriteConsole, декскриптор_устройства_вывода_in, адрес_сообщения_in, размер_сообщения_in, адрес_колличества_выведеных_символов_out, зарезервировано Пишет строку в консоль.
- 9. GetStdHandle invoke GetStdHandle, константа_номера_стандартного_устройства_in Получает дескриптор стандартного устройства и помещает его в EAX Вместо константы номера
- 10. «equ» или «=» Эти псевдооператоры предназначен для присвоения некоторому выражению символического имени или идентификатора. Впоследствии, когда
- 11. «equ» или «=» Псевдооператор “=” удобно использовать для определения простых абсолютных (то есть не зависящих от
- 12. Обмен данными XCHG Команда XCHG меняет значения регистров или регистров и памяти: mov eax , 237h
- 13. Переходы (прыжки) Условный переход это такая команда процессору, при которой в зависимости от состояния регистра флагов
- 14. Безусловный переход jmp jmp метка jmp – команда прыжка к указанной метке. Не трогает стек в
- 15. Условные переходы. cmp. cmp – команда сравнения двух операндов. cmp операнд1, операнд2 Выставляет флаги в зависимости
- 16. Условные переходы. cmp + je... cmp eax, 777h jz metka Пример. Прыжок на metka произойдет если
- 17. Макрокоманды условного оператора. .IF eax==1 ;eax равен 1 .ELSEIF eax==3 ; eax равен 3 .ELSE ;
- 18. Макрокоманды условного оператора. .IF eax==1 .IF ecx!=2 ; eax= 1 и ecx не равно 2 .ENDIF
- 19. Макрокоманды условного оператора.
- 20. Организация циклов. loop loop проверяет, равен ли регистр ECX нулю, если он не равен нулю, то
- 21. Макрокоманды циклов. .REPEAT - Эта конструкция выполняет блок, пока условие не истинно: .REPEAT ; код здесь
- 22. Логические битовые операции Логические операции с битами - OR, XOR, AND, NOT. Эти команды работают с
- 23. Логические битовые операции. AND, OR AND (логическое И) устанавливает бит результата в 1, если оба бита,
- 24. Логические битовые операции. XOR, OR XOR (НЕ ИЛИ) устанавливает бит результата в 1, если бит источника
- 25. Логические битовые операции. Пример. mov ax, 3406d mov dx, 13EAh xor ax, dx ax = 3406
- 26. Стек. push, pop Процессор имеет аппаратную поддержку стека. При этом стек, хранится в оперативной памяти push
- 27. Стек. push Пусть стек находится в следующем состоянии. (стек здесь заполнен нулями, но в действительности это
- 28. Стек. pop С момента предыдущего слайда стек находится в таком состоянии pop edx edx теперь равно
- 29. Подпрограммы. Call. Процедуры задаются директивами proc и endp. Proc обозначает начало процедуры, а endp конец процедуры.
- 30. Подпрограммы. Invoke. Существует улучшенный способ вызова и задания процедур. PROTO STDCALL testproc :DWORD, :DWORD, :DWORD STDCALL
- 31. Подпрограммы. 2 способа. MyProc PROTO :DWORD,:DWORD .code MySimpleProc proc mov eax, dword ptr [esp+4] mov ecx,
- 33. Скачать презентацию