0% found this document useful (0 votes)
125 views

Flow Control Instructions: Dept. of Computer Science Faculty of Science and Technology

This document provides instructions for a computer organization and architecture lab on flow control instructions. The lab covers decision making and repeating statements using jump instructions, including unconditional jumps, conditional jumps based on status flag settings, and different types of conditional jumps. It also discusses using labels to refer to other instructions. The lab tasks involve writing assembly programs that use various jump and loop instructions to print output conditionally based on user input comparisons and password checks.

Uploaded by

Shahriar Shoron
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
125 views

Flow Control Instructions: Dept. of Computer Science Faculty of Science and Technology

This document provides instructions for a computer organization and architecture lab on flow control instructions. The lab covers decision making and repeating statements using jump instructions, including unconditional jumps, conditional jumps based on status flag settings, and different types of conditional jumps. It also discusses using labels to refer to other instructions. The lab tasks involve writing assembly programs that use various jump and loop instructions to print output conditionally based on user input comparisons and password checks.

Uploaded by

Shahriar Shoron
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Flow Control Instructions

Course Code: COE 3205 Course Title: Computer Organization &


Architecture

Dept. of Computer Science


Faculty of Science and Technology

Lab No: 7 Week No: 8 Semester:


Lecturer: Name & email
Lab Outline

1. Decision making and repeating statement


2. Level
Jump

 Jump instructions transfers control to another


program

 The transfers can be unconditional or

 Depends on a particular combination of


status flags settings
Unconditional Jump

 Does not depend on any condition

 Syntax
 Jump destination_level
 Example : jmp level1
Conditional Jump Conti…

 Depends on a particular combination of status flags


settings

 Syntax
 Jump destination_level
 Example : jnz level1
Conditional Jump

 There are three types of conditional jumps

 Signed Conditional Jumps


 Unsigned Conditional Jumps
 Single-Flag Jumps
Signed Conditional Jump

• Jump if Greater than


JG or ZF = 0 and
• Jump if Not Less than or Equal
JNLE SF = OF
to
• Jump if Greater than or Equal
JGE or to
SF = OF
JNL • Jump if Not less than or Equal
to
• Jump if less than
JL or • Jump if not greater than or SF<>OF
JNGE
equal

JLE or • Jump if less than or Equal


ZF = 1 or SF<> OF
JNG • Jump if not greater than
Unsigned Conditional Jump

• Jump if Above
JA or ZF = 0 and
• Jump if Not Below or Equal
JNBE CF = 0
to

JAE or • Jump if Above or Equal to


CF = 0
JNB • Jump if Not Below

JB or • Jump if Below
CF = 1
JNAE • Jump if not Above or Equal

JBE or • Jump if Below or Equal


CF=1 or ZF = 1
JNA • Jump if Not Above
Single-Flag Conditional Jump

JE or • Jump if Equal
JZ • Jump if equal to Zero ZF = 1

JNE or • Jump if Not Equal


ZF = 0
JNZ • Jump if Not Zero
CF = 1
JC • Jump if Carry
CF = 0
JNC • Jump if no Carry CF=0
JO • Jump if Overflow CF=1 or ZF = 1
JNO • Jump if No Overflow OF=1
JS Jump if Sign Negative SF = 1
JNS Jump if Non-Negative Sign SF =0
JP/JPE Jump if Parity Even PF=1
JNP/JPO Jump if parity Odd PF=1
Label

• Jump instruction has a general format jxx label where label is a


facility offered by the assembler

• Labels are used with jump and loop statements to refer another
instruction

• Labels are needed to refer another instruction


Label
Label

Example
Jmp Exit

Exit:
Mov ah, 4ch
Int 21h
Lab Tasks
Task: 1

 Write an assembly program that non-top prints Hello World.


Hints: Use unconditional jmp and level instructions.

Sample Output
Hello world
Hello world
Hello world
Hello world
Hello world
Hello world
Hello world
……………
……………..
Hello world
Lab Tasks
Task: 2

 Write an assembly program that prints Hello World five times


and then prints Bye world. Hints: Use unconditional CMP,
conditional JE, JNE instruction.

Sample Output
Hello world
Hello world
Hello world
Hello world
Hello world

Bye world
Lab Tasks
Task: 3

Read an integer from user. Check whether the number is positive or


negative. Hints: JMP, JL, JG instructions

Sample output
Enter a number: 1
Positive

Enter a number: -1
Negative
Lab Tasks
Task: 4

 Suppose that CL contains the value of 5. Take an integer from user.


Compare the value with CL. And show whether the user input is less
than, greater than and equal to CL. Hints: use CMP, JL, JG, JE
Sample output
Enter a number: 1
Less than 5

Enter a number: 7
Greater than 5

Enter a number: 5
Equal to 5
Lab Tasks
Task: 5

Write a program to check password using Assembly Programming.


Suppose the password is mypassword

Sample output

Enter your password: mypassword


Password Matched

Enter your password: password


Password Not Matched
Lab Tasks
Task: 6

Read a character and display it 50 times on the next line. Hints:


use DEC and JNZ instructions and

Sample Output
Enter a character: d
Ddddddddddddddddddddddddddddddddddddddddddddd
ddddd

Thank you.
Books

• Assembly Language Programing and


Organization of the IBM PC

Ytha Yu
Charles Marut
References

You might also like