-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadd_array.asm
More file actions
32 lines (25 loc) · 1.04 KB
/
add_array.asm
File metadata and controls
32 lines (25 loc) · 1.04 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
DATA SEGMENT
SIZE DW 10
SUM DD 0
ARRAY DD 122345H, 200251H, 300300H, 421H, 59H, 22878H, 90000H, 78H, 100H, 6789H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX ;LOAD DS WITH "DATA"
MOV SI, 0
LEA BX, ARRAY ;LOAD BX WITH THE STARTING ADDRESS OF "ARRAY"
MOV CX, SIZE ;INITIALIZE CX WITH SIZE OF ARRAY
MOV AX, 0
MOV DX, 0 ;CLEAR AX,DX
LAB:
ADD AX, BX[SI] ;ADD LOWER WORD OF ALL ELEMENTS OF ARRAY IN AX
ADD SI, 2 ;INC SI BY 2
ADC DX, BX[SI] ;ADD HIGHER WORD OF ALL ELEMENTS OF ARRAY IN DX
ADD SI, 2 ;INC SI BY 2
LOOP LAB
MOV WORD PTR SUM, AX ;STORE SUM OF LOWER WORDS AT "SUM"
MOV WORD PTR SUM + 2, DX ;STORE SUM OF HIGHER WORDS AT "SUM+2"
CODE ENDS
END START