Tải bản đầy đủ (.pdf) (6 trang)

Cracker Handbook 1.0 part 47 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.21 KB, 6 trang )

Purpose: Conditional jump, and the state of the flags is taken into
account.

Syntax:

JO label

It jumps if there is overflow.

The jump is done if OF = 1.

JP (JPE) INSTRUCTION

Purpose: Conditional jump, the state of the flags is taken into account.

Syntax:

JP label

It jumps if there is parity or if the parity is even.

The jump is done if PF = 1.

JS INSTRUCTION

Purpose: Conditional jump, and the state of the flags is taken into
account.

Syntax:

JS label



It jumps if the sign is on.

The jump is done if SF = 1.

4.7 Instructions for cycles:loop

They transfer the process flow, conditionally or unconditionally, to a
destiny, repeating this action until the counter is zero.

LOOP
LOOPE
LOOPNE



LOOP INSTRUCTION

Purpose: To generate a cycle in the program.

Syntax:

LOOP label

The loop instruction decreases CX on 1, and transfers the flow of the
program to the label given as operator if CX is different than 1.

LOOPE INSTRUCTION

Purpose: To generate a cycle in the program considering the state of ZF.


Syntax:

LOOPE label

This instruction decreases CX by 1. If CX is different to zero and ZF is
equal to 1, then the flow of the program is transferred to the label
indicated as operator.

LOOPNE INSTRUCTION

Purpose: To generate a cycle in the program, considering the state of ZF.

Syntax:

LOOPNE label

This instruction decreases one from CX and transfers the flow of the
program only if ZF is different to 0.

4.8 Counting instructions

They are used to decrease or increase the content of the counters.

DEC
INC

DEC INSTRUCTION

Purpose: To decrease the operator.


Syntax:

DEC destiny

This operation subtracts 1 from the destiny operator and stores the new
value in the same operator.


INC INSTRUCTION

Purpose: To increase the operator.

Syntax:

INC destiny The instruction adds 1 to the destiny operator and keeps the
result in the same destiny operator.

4.9 Comparison instructions

They are used to compare operators, and they affect the content of the
flags.

CMP
CMPS (CMPSB) (CMPSW)


CMP INSTRUCTION

Purpose: To compare the operators.


Syntax:

CMP destiny, source

This instruction subtracts the source operator from the destiny operator
but without this one storing the result of the operation, and it only
affects the state of the flags.


CMPS (CMPSB) (CMPSW) INSTRUCTION

Purpose: To compare chains of a byte or a word.

Syntax:

CMP destiny, source

With this instruction the chain of source characters is subtracted from the
destiny chain.

DI is used as an index for the extra segment of the source chain, and SI as
an index of the destiny chain.

It only affects the content of the flags and DI as well as SI are
incremented.

4.10 Flag instructions

They directly affect the content of the flags.


CLC
CLD
CLI
CMC
STC
STD
STI



CLC INSTRUCTION

Purpose: To clean the cartage flag.

Syntax:

CLC

This instruction turns off the bit corresponding to the cartage flag, or in
other words it puts it on zero.

CLD INSTRUCTION

Purpose: To clean the address flag.

Syntax:

CLD


This instruction turns off the corresponding bit to the address flag.

CLI INSTRUCTION

Purpose: To clean the interruption flag.


×