Saturday, August 23, 2008

Assembley Lang to find smallest number

Program for finding Smallest Number from given Block of data.

Algorithm :-

1. Declare block of five numbers into data segment & smallest variable.
2. Initialise data segment.
3. Load counter into CL register.
4. Clear AX register.
5. Load effective address of block into SI register.
6. Move first number into AL register.
7. Increment SI register.
9. Compare first number with second number. If carry flag is reset then move second number to AL register, else go to step 10.
10. Increment SI register.
11. Decrement counter.
12. Go to Step 9, if zero flag reset.
13. Store result at smallest veriable.
14. Stop.

Program :-

DATA SEGMENT

SER1 DB 10H,02H,20H,04H,0AH
SM DB 00H
DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MOV AX,DATA
MOV DS,AX
MOV CL,04H
MOV AX,0000H
LEA SI,SER1
MOV AL,DS:[SI]
INC SI
UP: CMP AL,DS:[SI]
JC DOWN
MOV AL,DS:[SI]
DOWN:INC SI
DEC CL
JNZ UP
MOV SM,AL
INT 3H

CODE ENDS
END

0 comments: