Home >> Resources >> Assembly Language Tutorials >> Source Codes
 

 

.MODEL SMALL
.STACK 64
DATA    SEGMENT
KEY     DB      04H
NUM     DB      05H
ARRAY   DB      05H
        DB      04H
        DB      03H
        DB      02H
        DB      01H

MID     DB      00H
MSG1    DB 'PRESENT$'
MSG2    DB 'ABSENT$'
MSG3    DB 'SORTED LIST > $'
MSG4    DB 'KEY > $'
DATA    ENDS

CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA
START:  CALL CLS
        MOV DX,0000H
        CALL CURSOR
        MOV AX,DATA
        MOV DS,AX
                        ;Bubble Sort
        MOV DL,NUM      ;counter1
LIN1:   DEC DL
        JZ LOUT1
        MOV CL,DL       ;counter2
        LEA BX,ARRAY      ;pointer to first number
LIN2:   MOV AL,[BX]
        CMP AL,[BX+1]
        JS LESS         ;ARRAY(I)<ARRAY(I+1)
        XCHG AL,[BX+1];
        MOV [BX],AL
LESS:   INC BX
        DEC CL
        JNZ LIN2
        JMP LIN1
                         ;Display
LOUT1:  LEA DX,MSG3
        MOV AH,09H
        INT 21H

        LEA BX,ARRAY
        MOV CH,00H
        MOV CL,NUM
DISP1:  MOV AL,[BX]
        MOV AH,AL
        PUSH BX
        PUSH CX
        CALL SHOW
        POP CX
        POP BX
        INC BX
        LOOP DISP1

        MOV DX,0200H
        CALL CURSOR
        LEA DX,MSG4
        MOV AH,09H
        INT 21H
        MOV AL,KEY
        MOV AH,AL
        CALL SHOW
                         ;Binary Search
        MOV CX,01H       ;lower
        MOV DH,00H
        MOV DL,NUM       ;upper

LOOP1:  CMP DX,CX
        JC NFOUND
        MOV AX,CX
        ADD AX,DX
        SHR AX,1
        MOV MID,AL
        LEA BX,ARRAY
        ADD BX,AX
        DEC BX
        MOV AL,[BX]
        CMP AL,KEY
        JE FOUND
        JC LHALF
UHALF:  MOV DH,00H
        MOV DL,MID
        DEC DX
        JMP LOOP1
LHALF:  MOV CH,00H
        MOV CL,MID
        INC CX
        JMP LOOP1
FOUND:  LEA DX,MSG1
        MOV AH,09H
        INT 21H
        JMP HALT

NFOUND: LEA DX,MSG2
        MOV AH,09H
        INT 21H
HALT:   MOV AX,4C00H
        INT 21H

        ;CLEARS SCREEN
CLS:    MOV AX,0600H
        MOV BH,07H
        MOV CX,0000H
        MOV DX,184FH
        INT 10H
        RET

        ;SET CURSOR
CURSOR: MOV AH,02H
        MOV BH,00H
        INT 10H
        RET

SHOW:   MOV BX,AX
        AND BX,0F00FH
        MOV CL,04H
        SHR BH,CL
        ADD BX,3030H
        MOV AH,02H
        MOV DL,BH
        INT 21H
        MOV AH,02H
        MOV DL,BL
        INT 21H
        MOV AH,02H
        MOV DL,' '
        INT 21H
        RET

CODE    ENDS
        END START  

 

 

e-Campus ..!!

A dream come true 'Online Campus Recruitment' To reach the crème de la crème from any campus Across India..

Call Centre/BPO Jobs
Placement Papers
Look for the latest Sample papers of any software/Govt. Company here
 

Google