Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

THIS QUESTION IS FOR ASSEMBLY LANGUAGE ONLY 1. Write a complete assembly languag

ID: 3830577 • Letter: T

Question

THIS QUESTION IS FOR ASSEMBLY LANGUAGE ONLY

1. Write a complete assembly language program to read two vectors (1-dim arrays) A and B and display the resulting vector C, which is the sum of A and B. Procedures must be used to organize the code.

2. Write a complete assembly language program to read a vector (1-dim array) A = (A1,…,AN), and display Sum(k=1 to N) (Ak)2. Procedures must be used to organize the code.

3. Write a complete assembly language program to read two matrices (2-dim arrays) A and B and display the resulting matrix C, which is the sum of A and B. Procedures must be used to organize the code.

4. Write procedure MinMax that receives a variable number of integers and returns the minimum and the maximum integer in the list. The min and max values are stored in memory locations pointed to by addresses passed to MinMax. The Main procedure requests the input registers from the user. Positive and negative integer values are valid. The user entering zero terminates the input integer sequence. The min and max values returned are displayed by the Main procedure.

Explanation / Answer

1. program to add corresponding elements of two arrays

DB – Define Byte (Size – 1 Byte)

2.  ADDING DATA IN ARRAY
; IN SIMPLE TERMS SUM OF ARRAY
; STORING ARRAY IN ROM
ORG 300H        ;
DB 1,4,5,6,7    ;
; ARRAY OF 5
ORG 0000H       ;
; INITIALIZE DATA POINTER
MOV DPTR, #0300H;
; FIRST COUNTER
MOV R7, #05H    ;
; RESETING A
MOV A, #00H     ;
; COUNTER REGISTER FOR ROM ACCESS
MOV R0, #00H    ;
; SUM VARIABLE
MOV R6,#00H     ;
LOOP:
MOV A, R0       ;
MOVC A,@A+DPTR ;
ADD A, R6       ;
MOV R6,A        ;
INC R0          ;
DJNZ R7, LOOP   ;
END

3.

MODEL SMALL

.386

.DATA

M1 DB 00H,01H,10H,12H,02H,03H,0F0H,0C0H,04H

M2 DB 00H,05H,01H,02H,50H,90H,03H,04H,0AAH

M3 DB 9 DUP(0)

M4 DB ' $'

MES1 DB "THE SUM OF TWO MATRIX IS $"

.CODE

.STARTUP

MOV DX,OFFSET MES1

MOV AH,09H

INT 21H

MOV CL,0

P1:

XOR BX,BX

MOV BL,CL

MOV AL,M1[BX]

MOV DL,M2[BX]

ADD AL,DL

MOV M3[BX],AL

INC CL

CMP CL,9

JNZ P1

MOV DX,0AH

MOV AH,02H

INT 21H

MOV CL,0

MOV CH,0

PP:XOR BX,BX

MOV BL,CL

MOV AL,M3[BX]

MOV DL,AL

ROL DL,4

AND DL,0FH

ADD DL,30H

CMP DL,'9'

JBE F1

ADD DL,7H

F1:

MOV AH,02H

INT 21H

MOV AL,M3[BX]

AND AL,0FH

MOV DL,AL

ADD DL,30H

CMP DL,'9'

JBE F2

ADD DL,7

F2:

MOV AH,02H

INT 21H

MOV DX,OFFSET M4

MOV AH,09H

INT 21H

INC CH

CMP CH,3

JNZ L1

MOV DX,0AH

MOV AH,02H

INT 21H

MOV CH,0

L1:

INC CL

CMP CL,9

JNZ PP

MOV AH,4CH

INT 21H

END

OUTPUT:

THE SUM OF TWO MATRIX IS

00 06 11

14 52 93

F3 C4 AE

4.

DATA SEGMENT

ARR DB 5,3,7,1,9,2,6,8,4

LEN DW $-ARR

MIN DB ?

MAX DB ?

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA CS:CODE

START:

MOV AX,DATA

MOV DS,AX

LEA SI,ARR

MOV AL,ARR[SI]

MOV MIN,AL

MOV MAX,AL

MOV CX,LEN

REPEAT:

MOV AL,ARR[SI]

CMP MIN,AL

JL CHECKMAX

MOV MIN,AL

CHECKMAX:

CMP MAX,AL

JG DONE

MOV MAX,AL

DONE:

INC SI

LOOP REPEAT

MOV AH,4CH

INT 21H

CODE ENDS

END START