Lesson 6. Process Control Instructions.

Prev || Home || Next

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.

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.

CMP INSTRUCTION
Purpose: To compare the operators.

Syntax:

CMP destination , 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 destination , 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.
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.

Syntax:

CLI

This instruction turns off the interruptions flag, disabling this way those

A maskable interruptions is that one whose functions are deactivated when
IF=0.
CMC INSTRUCTION
Purpose: To complement the cartage flag.

Syntax:

CMC

This instruction complements the state of the CF flag, if CF = 0 the
instructions equals it to 1, and if the instruction is 1 it equals it to 0.

We could say that it only "inverts" the value of the flag.
STC INSTRUCTION
Purpose: To activate the cartage flag.

Syntax:

STC

This instruction puts the CF flag in 1.
STD INSTRUCTION
Purpose: To activate the address flag.

Syntax:

STD

The STD instruction puts the DF flag in 1.

STI INSTRUCTION
Purpose: To activate the interruption flag.

Syntax:

STI

The instruction activates the IF flag, and this enables the maskable external
interruptions ( the ones which only function when IF = 1).

Prev || Home || Next