Читайте также:
|
|
.486
.model flat, stdcall
option casemap: none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
include /masm32/macros/macros.asm
uselib masm32, comctl32, ws2_32
.data
.code
start:
mov eax, 123
mov ebx, -90
add eax, ebx
test eax, eax
jz zero
invoke MessageBox, 0, chr$("В eax не 0!"), chr$("Info"), 0
jmp lexit
zero:
invoke MessageBox, 0, chr$("В eax 0!"), chr$("Info"), 0
lexit:
invoke ExitProcess, 0
end start
test — это операция логического сравнения двух операндов, размерностью байт, слово или двойное слово. В процессе выполняется операцию логического умножения: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0. Затем устанавливаются флаги, в том числе флаг ZF (zero flag), который равен 1, если результат логического умножения равен нулю.
Флаг ZF в дальнейшем используется для анализа результата.
jnz — выполняет переход по указанной метке, если не установлен флаг ZF. Данная команда обычно используется с операциями сравнения, которые влияют на состояние флага ZF. Например, test и cmp.
jz — выполняет переход по указанной метке, если установлен флаг ZF. Данная команда обычно используется с операциями сравнения, которые влияют на состояние флага ZF. Например, test и cmp.
jmp — выполняет безусловный переход по указанной метке.
Дата добавления: 2015-08-02; просмотров: 97 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Написать программу, в результате которой будет выводиться окно Windows с суммой значений трех переменных (1,2,9) | | | Написать программу, которая складывает два числа, и проверяет результат. В результате выполнения программы должно открыться окно с сообщением, что сумма равна 0. |