Saturday, February 22, 2020
Friday, February 21, 2020
Test of assembly
INTRODUCTION
In the x86 assembly language, the
TEST OBCODE VARIATIONS
The TEST operation sets the flags
Examples
; Conditional Jump
In the x86 assembly language, the
TEST
instruction performs a bitwise AND on two operands. The flags SF
, ZF
, PF
are modified while the result of the AND is discarded. The OF
and CF
flags are set to 0
, while AF
flag is undefined. There are 9 different opcodes for the TEST instruction depending on the type and size of the operands. It can compare 8-bit, 16-bit, 32-bit or 64-bit values. It can also compare registers, immediate values and register indirectvalues.[1]TEST OBCODE VARIATIONS
The TEST operation sets the flags
CF
and OF
to zero. The SF
is set to the most significant bit of the result of the AND. If the result is 0
, the ZF
is set to 1
, otherwise set to 0
. The parity flag is set to the bitwiseXNOR of the least significant byte of the result, 1
if the number of ones in that byte is even, 0
otherwise. The value of AF
is undefined.Examples
; Conditional Jump
test cl, cl ; set ZF to 1 if cl == 0 je 0x804f430 ; jump if ZF == 1 ; Conditional Jump with NOT test cl, cl ; set ZF to 1 if cl == 0 jne 0x804f430 ; jump if ZF != 1 ; or test eax, eax ; set SF to 1 if eax < 0 (negative) js error ; jump if SF == 1
Subscribe to:
Posts (Atom)