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. . 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. . 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. 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