-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path3b_Character_Sorting_Descending_Order.asm
More file actions
82 lines (65 loc) · 1.96 KB
/
Copy path3b_Character_Sorting_Descending_Order.asm
File metadata and controls
82 lines (65 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
;Shabbir Mahmood ID: 14015139 Assembly Language Lab Problem-3b(Character String Sorting Descending Order) Date: 18-03-2017
.MODEL SMALL
.STACK 100H
.DATA
LF EQU 0AH
CR EQU 0DH
MSG1 DB 'Enter the Input String: $'
MSG2 DB CR,LF,'Sorted(Descending Order)Output String is: $'
N DW ?
ARRAY DB 100 DUP (?) ; INPUT ARRAY OF Number
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX ; ADJUSTING PROGRAM SEGMENT PREFIX(PSP)
LEA DX,MSG1
MOV AH,09H
INT 21H ; SHOWING MESSAGE FOR INPUT
MOV BX,00H
MOV AH,01H
WHILE:
INT 21H
CMP AL,0DH
JE CALCULATE
MOV ARRAY[BX],AL ; STORING CHARACTER INTO ARRAY
INC BX
JMP WHILE ;UNCODITIONAL JUMP TO WHILE LOOP
CALCULATE:
MOV N,BX ; Conter N
MOV CX,N ; BOTH BX & CX CONTAINS TOTAL NUMBER OF NUMBERS (N)
DEC CX ; N-1
SCAN:
MOV BX,CX ; BOTH BX & CX CONTAINS (N-1)
MOV SI,0
COMPARE:
MOV AL, ARRAY[SI]
MOV DL, ARRAY[SI+1]
CMP AL,DL
JNC NO_SWAP ; Descending Order
SWAP:
MOV ARRAY[SI],DL
MOV ARRAY[SI+1],AL
NO_SWAP:
INC SI
DEC BX
JNZ COMPARE ; INNER LOOP (BX)
LOOP SCAN ; OUTER LOOP (CX)
SHOW_OUTPUT:
LEA DX,MSG2
MOV AH,09H
INT 21H ; SHOWING MESSAGE FOR OUTPUT
MOV BX,0
MOV AH,02H
TOP:
MOV DL,ARRAY[BX]
INT 21H
MOV DL,' '
INT 21H
INC BX
CMP BX,N
JNE TOP
EXIT:
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN