Top Banner
31
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Assignment on alp
Page 2: Assignment on alp

Name ID

DULAL CHANDRA BARMAN 00805010

MD.JAHURUL ISLAM 00805034

MD.EMDADUL HUQ 00805038

MD.FARUQ AHMED 00805047

ASHOK KUMAR SARKER 00805049

Page 3: Assignment on alp

FLAGS Register:

Individual bits control the action or represent the status of the processor

Control flags (TF, IF, DF):

Determine how the processor responds to certain situations

Status flags (CF, PF, AF, ZF, SF, OF):

Set to represent the result of certain operations

Used to control conditional jump instructions

FLAG REGISTER

Page 4: Assignment on alp

FLAG Register Bits:Status Flags:

Bit Name Symbol

0 Carry flag CF

2 Parity flag PF

4 Auxiliary carry flag AF

6 Zero flag ZF

7 Sign flag SF

11 Overflow flag OF

Bit Name Symbol

8 Trap flag TF

9 Interrupt flag IF

10 Direction flag DF

Control Flags:Control Flags:

Page 5: Assignment on alp

Status Flags:

The Carry Flag (CF): CF = 1 if there is a carry out from the msb (most

significant bit) on addition, or there is a borrow into the msb on subtraction

CF = 0 otherwise CF is also affected by shift and rotate instructions

The Parity Flag (PF): PF = 1 if the low byte of a result has an even number of

one bits (even parity) PF = 0 otherwise (odd parity)

Page 6: Assignment on alp

The Auxiliary Carry Flag (AF): AF = 1 if there is a carry out from bit 3 on addition, or there is

a borrow into the bit 3 on subtraction AF = 0 otherwise AF is used in binary-coded decimal (BCD) operations

The Zero Flag (ZF): ZF = 1 for a zero result ZF = 0 for a non-zero result

The Sign Flag (SF): SF = 1 if the msb of a result is 1; it means the result is

negative if you are giving a signed interpretation SF = 0 if the msb is 0

Page 7: Assignment on alp

The Overflow Flag (OF): OF = 1 if signed overflow occurred OF = 0 otherwise

Example 1. ADD AX,BX , where AX contains FFFFh , BX contains FFFFh.

Solution: FFFFh+ FFFFh1FFFEh

The result stored in AX is FFFEh=1111 1111 1111 1110SF = 1 because the msb is 1PF = 0 because there are 7(odd number) of 1 bits in the low byte of

the result .ZF = 0 because the result is nonzero.CF = 1 because there is a carry out of the msb on addition.OF = 0 because the sign of the stored result is the same as that of

the numbers being added (as a binary addition, there is a carry into the msb and a carry out).

Page 8: Assignment on alp

Example 2. ADD AX, BX, where AX contains 7132h , BX contains 7000h

Solution: 7132h + 7000h E132h The result stored in AX is E132h=1110 0001 0011 0010 SF = 1 because the msb is 1 PF = 0 because there are 3(odd number) of 1 bits in the

low byte of the result . ZF = 0 because the result is nonzero. CF = 0 because there is no a carry out of the msb on

addition. OF = 1

Page 9: Assignment on alp

Example-3: SUB AX, BX , where AX contains 8000h and BX contains 0001h.

Solution: 8000h -0001h 7FFFh The result stored in AX is FFFEh=0111 1111 1111 1111 SF = 0 because the msb is 0 PF = 1 because there are 8(even number) of 1 bits in the low byte

of the result . ZF = 0 because the result is nonzero. CF = 0 because a smaller unsigned number is being subtracted

from a larger one.

Now for OF. In a signal sense, we are subtracting a positive number from a negative one, which is like adding two negatives. Because the result is positive (the wrong sign), OF = 1.

Page 10: Assignment on alp

OVERFLOW

The overflow flag is set when the Most Significant Bit (MSB) is set or cleared.

For example, take the addition of 127 and 127. The 8 bit signed binary number of 127 is represented as 0111 1111.

The MSB (the bit to the far left) is 0. When these two 8 bit numbers are added the result is 254, or 1111 1110. Notice now that the MSB is now 1 and not 0.

Therefore, the overflow flag has been set. Here, 1111 1110 would be interpreted as a negative number.

Page 11: Assignment on alp

The addition test shows whether the overflow flag has been set.

If two positive operands generate a negative sum. For example, 0101 1100 and 0100 1010 is 1010 0110, or -90.

The MSB changed from 0 to 1. And the two negative operands generate a

positive sum. For example 1100 0010 and 1000 0100 is

01101000 or 104. The MSB changed from 1 to 0, so the overflow

flag is being set. Overflow never occurs when the sign of two

addition operands are different.

Page 12: Assignment on alp

(Signed) Overflow

Can only occur when adding numbers of the same sign (subtracting with different signs)

Detected when carry into MSB is not equal to carry out of MSB

Easily detected because this implies the result has a different sign than the sign of the operands

Programs can ignore the Flags

Page 13: Assignment on alp

Example 4. ADD AX,BX , where AX and BX both contains 7FFFh .

Solution: Hex Binary 7FFFh 0111 1111 1111 1111 7FFFh 0111 1111 1111 1111 FFFEh 1111 1111 1111 1110

The signed and unsigned interpretation of 7FFFh is 32767. Thus for both signed and unsigned

addition,7FFFh+7FFFh=32767+32767=65534.This is out of range for signed numbers, the signed interpretation of the stored answer FFFEh is -2,so signed overflow occurred .However the unsigned interpretation of FFFEh is 65534,which is the right answer, so there is no unsigned overflow.

Page 14: Assignment on alp

Unsigned overflow: On addition, unsigned overflow occurs when there is a carry out of

the msb. On subtraction unsigned overflow occurs when there is a borrow

into the msb.

Example 5. ADD AX, BX, where AX contains FF12h, BX contains 1ACBh.

Solution: FF12h + 1ACBh

119DDhThe result is stored in AX is 19DDh=0001 11 111 1101 FF12h=-1 and 1ACBh=1, and FF12h+1ACBh=-1+1=0, so sign overflow

didnot occur. Here a 1 is carried out of the msb, so unsigned overflow

occurred.

Page 15: Assignment on alp

The importance of flag registers:

Flag register has it's importance by following resion.Flag register has it's importance by following resion.1. Sign flag: 1. Sign flag: use to store the sign of any number under processing i.e use to store the sign of any number under processing i.e when arithmetical logic has negative sign it is in set condition. and when arithmetical logic has negative sign it is in set condition. and rest in reset.rest in reset.22.. Zero flag: Zero flag: when ALU operation is zero it is in reset condition.when ALU operation is zero it is in reset condition.3. Auxiliary carry flag: 3. Auxiliary carry flag: it hold the carry during internal processing of it hold the carry during internal processing of addition ,sub , mul and div.addition ,sub , mul and div.44.. Parity flag: Parity flag: hold 1 for even parity,0 for odd parity. hold 1 for even parity,0 for odd parity.5. Carry flag:5. Carry flag: hold carry after end of processing of operation. hold carry after end of processing of operation.

Page 16: Assignment on alp

FLAGS Register & Flow control Instruction

Flags Register

Individual bits control the action or represent the status of the processor

Page 17: Assignment on alp

Control flags (TF, IF, DF): Determine how the processor responds

to certain situations

Status flags (CF, PF, AF, ZF, SF, OF):

      Set to represent the result of certain operations

        Used to control conditional jump instructions

Page 18: Assignment on alp

Flow Control Instructions:

In this assignment we will practice how to control the flow of an assembly language

program using the compare instruction, the different jump instructions and the loop instructions.

Objectives:

1- Jump Instructions.

2- Compare Instruction.

3- Loop Instructions.

Page 19: Assignment on alp

Jump Instructions:

The jump instructions are used to transfer the flow of the program to the indicated Operator.

Here we discus about various categories.

Conditional Jumps:

There are Three categories of Conditional Jumps:

 a)Singed Jumps

b)Unsigned Jumps:

c) Single-Flag Jumps:

Page 20: Assignment on alp

The Unconditional Jump:

The unconditional jump may be used to make infinite loops. Though the use of such instructions is not

recommended in high level languages, due to the availability of

program control structures, in assembly however, most of the time

one must use the unconditional jump.

Page 21: Assignment on alp

The JMP Instructions

The JMP instruction causes an unconditional transfer of

control(unconditional jump).

The syntax is

Page 22: Assignment on alp

IF-THEN:

• The IF-THEN structure may be expressed in pseudocode as follow

IF (condition is true) THEN

Execute true-branch statementsEND_IF

Page 23: Assignment on alp

IF-THEN-ELSE

IF condition is true

THENExecute true-branch statements

ELSEExecute false-branch statements

END-IF

Page 24: Assignment on alp

Loop Loops represent the final basic control structure (sequences, decisions, and loops) which make up a typical program. Program loops consist of three components: an optional initialization component, a loop termination test, and the body of the loop.

Page 25: Assignment on alp

FOR LOOP

FOR LOOP_COUNT times DO

Statements

END_FOR

false

true

Initializecount

Statement

Count=count-1

count=o

Page 26: Assignment on alp

EXAMPLE

Write a count-controlled loop to display A to Z 26 character

The code is MOV CX, 26

MOV AH, 2

MOV DL, ’A’

TOP:INT 21H

LOOP TOP

Page 27: Assignment on alp

While Loops

WHILE condition

Do

Statements

END_WHILE

Page 28: Assignment on alp

Example

I = 0;

WHILE (I<100)

I = I + 1;

mov I, 0

WhileLp: cmp I, 100

jge WhileDone inc I

jmp WhileLp

Page 29: Assignment on alp

REPEAT LOOP

REAPET

Statements

UNTLIE condition

false

true

Statement

count=o

Page 30: Assignment on alp

Example

MOV AH,1

LOOP1:

INT 21H

CMP al, '.'

JE EndLoop

JNE LOOP1

EndLoop:

Page 31: Assignment on alp