-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathINVERSING A GIVEN STRING.asm
49 lines (32 loc) · 1.05 KB
/
INVERSING A GIVEN STRING.asm
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
TITLE INVERSING_A_GIVEN_STRING
.MODEL SMALL
.STACK 100H
.DATA
STR1 DB 'HELLO WORLD'
STR2 DB 13 DUP(?)
COUNT DW 13
.CODE
MAIN PROC
BEGIN:
MOV AX, @DATA
MOV DS, AX
MOV ES, AX
MOV CX, COUNT
MOV SI, 0 ;SI POINTS TO THE BEGINNING OUR STRING
MOV DI, 0 ;DI POINTS TO THE BEGINNING OF OUR INVERSED STRING
ADD DI, COUNT ;TAKE DI TO LAST POSITION+1
DEC DI ;TAKE DI TO LAST POSITION
CONT_INVERSING:
MOV AL, STR1[SI] ;STORE THE 1ST ELEMENT IN AL
MOV STR2[DI], AL
INC SI
DEC DI
LOOP CONT_INVERSING
; LEA DX, STR2
; MOV AH, 9
; INT 21H
MOV AH, 4CH
INT 21H
END BEGIN
MAIN ENDP
END MAIN