Saturday, 9 August 2014

2nd smallest number

This is a program to print out the second smallest number of 8086 architecture. If you have any doubts, please let me know.
.MODEL SMALL
.DATA
MSG DB 'ENTER THE NUMBERS: ','$'
NUM DB 20,0,20 DUP('$')
NEW DB 0AH,0DH,24H
.CODE
START:MOV AX,@DATA
MOV DS,AX

LEA DX,MSG
MOV AH,09H
INT 21H

LEA DX,NEW
MOV AH,09H
INT 21H

LEA DX,NUM
MOV AH,0AH
INT 21H
ADD DX,02H
MOV SI,DX

MOV DX,0000H
MOV AX,0000H
MOV CX,0009H
L1:MOV BX,0009H
LEA SI,NUM
MOV DX,SI
ADD DX,02H
MOV SI,DX
L2:MOV AL,[SI]
INC SI
CMP AL,[SI]
JNC CONTD
MOV DL,[SI]
MOV [SI],AL
DEC SI
MOV [SI],DL
INC SI
CONTD:DEC BX
JNZ L2
LOOP L1

DEC SI

LOOP1: MOV AL,[SI]
DEC SI
CMP AL,[SI]
JE LOOP1
MOV BL,[SI]
MOV [SI],AL
INC SI
MOV [SI],BL

LEA DX,NEW
MOV AH,09H
INT 21H


LEA DX,NUM
ADD DX,02H
MOV AH,09H
INT 21H

.EXIT
END START


No comments:

Post a Comment