Mic 4 Chapter
Mic 4 Chapter
Branches:co/CM/w
2Marks Questions
1. Write ALP for addition of two 8 bit numbers. Assume suitable data.
R AATC A
OR
Write an ALP to add two 8bit numbers.
Answer:
Model small
.Data
NUM DB 12H
.Code
START:
MOVAX, @DATA
MOV DS,AX
MOV AL, NUM
MOV AH,13H
ADD AL,AH
MOV AH, 4CH
INT 21H
ENDS
END
2. State the use of DAA instruction in BCD addition.
Answer:
The DAA (Decimal Adjust after Addition) instruction makes the result in Packed BCD
from after BCD addition is performed it works only on AL register.
3. Drawmachine language instruction format for Register-to-Register transfer.
Answer:
Microprocessar Page 1
KHARAT ACADEMY
D D, D, D, D, D, D, D D
OP CODE II REG RM
AXNurn1
BXNurn2
DX, AX (AX)*(BX)
DX MS Word of
Product
AX< LS Word of
Product
|Product J¢ AX
|Produt+1] DX
STOP
4 Marks Questions
MOV SUM, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END STARIT
6. Write an ALP to multiplytwo 16 bit signed numbers.
Answer:
model small
.data
Adb 2222h
Bdb 1111h
Ends
code
Movax,@data
Mov ds,ax
Mov AX,a
Mov BXb
IMul HX
Int0Bh
Ends
End
7.Writean AlPto countodd numbers in the array of10 numbers.
Answer
Model Simall
data
BLK DB 10h,40h,3Oh,60h
e db ?h
o db ?h
Microprocessar Page 3
KHARAT ACADEMY
ends L
.code
mov ax, @data N T A C A D E
mov ds, ax
leasi, BLK
mov bl, 00h
mov bh, 00h
mov cl, 04h
up:mov al, si
ror al, 1
inc bl
jmpnext
go: inc bh
next: inc si
dec cl
jnz up
mov e,bl
mov o,bh
int 3
ends
end
8. Write an ALP to count the number of positive and negative numbers in array.
Answer:
Count Positive No.And Negative No.SInGiven
Array Of 16 Bit No.
;Assume array of 6 no.s
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0000H
MOV CX,COUNT
LOOP NEXT
MOV NEG COUNT,DL
MOV POS_COUNT, DH
MOV AH4CH
INT 21H
CODE ENDS
DATA SEGMENT
ARRAY DW F423H,6523H,B658H,7612H 2300H,1559H
COUNT DW 06H
POS COUNT DB ?
NEG COUNTDB?
DATA ENDS
END START
9. Write an ALP to find the sum of series. Assume series of 10 numbers.
Answer:
;Assume TEN 8 bit HEX numbers
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA SI,DATABLOCK
MOVCL,0AH
UP:MOV AL,(SI]
ADD RESULT LSB(SI)
Microprocessur Page 5
KHARAT ACADEMY
JNC DOWN
INC REULTMSB
DOWN:INC SI
LOOP UP
CODE ENDS
DATA SEGMENT
DATABLOCK DB 45H,02H,88H,29H,05H,45H,78H, 95H,62H,30H
RESULT LSB DB 0
RESULT MSB DB0
DATAENDS
END
10.Write ALP to count ODD and EVEN numbersin an array.
Answer:
:Count ODD and EVEN No.S In Given ;Array Of 16 Bit No.
Assume arrayof10 no.s
CODESEGMENT
ASSUME CS:cODE,DS:DATA
START: MOV AXDATA
MOV DS,AX MOV DXLO000H
MOV CX,COUNT
MOV SI OEESETARRAY
NEXT: MOV AX,(SI
ROR AX 0LH
JODD1
INC DL
IMPCAOUNTLIT
ODDINC DH
COUNTITNCS
INCSI
LOCP NEXT
MOV ODD_COUNT,DH
MON EVENCNT,DL
MOV AH,ACH
KHARAT ACADEMY
INT 21H
CODE END'S
DATA SEGMENT
ARRAY1 DW F423H, 6523H,B658H, 7612H, 9875H, 2300H, 1559H, 1000H, 4357H,
2981H
COUNT DW OAH
ODD_ COUNT DB ?
EVENCNT DB?
DATA ENDS
END START
11. Write an ALP to find largest number inarray of elements 10H, 24H, 02H, 05H,
17H.
OR
Write an ALP to find largest number in the array.
Answer
DATA SEGMENT
ARRAYDB10H,24H,02H,05H,17H
LARGESTDB O0H
DATA ENDS
CODE SEGMENT
START: ASSUME CS:C0DE.DS:DATA
MOV DX,DATA
MOV DS,DX
MOV CK04H
MOV SI,OFFSET
ARRAY MOV ALISU
UP: INCSI
CMP AL[SI
JNC NEX
MOV AL(SI)
NEXE: DEC CX
JNZ UP
MOV LLAKGESTAL
MOV AX,4C0OH
INT21H
Mjcroprocessgr
KHARAT ACADEMY
CODE ENDS
END START
MOV DI],AL
INCSI
DEC DI
LOOP UP
MOV AH,4CH
INT 21H
CODEENDS
END START
Fiowchart:
Start
CX ¢Length of string
Als)
(DIj-AL
DDN-1
NO
IsDi
YES
Sop
15. Write an ALP to count number of 0" in 8bit muInber.
Answec
MODEL SMALL
DATA
NUM DB 08H
ZEROS DB 00H
CODE
Microprgcessar Puge 10
KHARAT ACADEMY
START:
MOVAX,@DATA
MOV DS,AX
MOV CX D8H;initialize rotation counter by 8
MOV EX, NUM load number in BX
UP: ROR BX 1:rotate number by 1 bitright
CDNbitnotequal to 1then go to DN
INC ZEROS: else increment ZEROS by one
DN: LOOP UP;decrementrotation counterby1andif notzerothengoto up
MOV CX, ZEROS;move result in cx register.
MOV AH, 4CH
INT 21H
ENDS
END; end of program
16. Write an ALP to count no.of 0's in 16 bit number.
Answer:
DATA SEGMENT
N DB 1237H
Z DB 0
DATA ENDS
CODE SEGMENT
ASSUME DS-DATA, Cs:cODE
START:
MOV DX,DATA
MCOVDSX
MOV,AX, N
MOVOL08
NEXTO
ROL AX,01
JCONE
INC Z
ONE: LOOP NEXT
HLT
Microprecessar Page 11
KHARAT ACADEMY
CODE ENDS
END START
6 Marks Questions
CADEM
17. Select an appropriate instructionfor each of the following &write:
(E Rotate the content of DX towrite 2 times without carry
() Multiply content of AX by 06H
(iii) Load 4000H in SP register
(iv) Copythe contents of BX register to CS
(v) Signed division of BL and AL.
(vi) Rotate AX register to right through carry 3 times.
Answer:
()
MOVCL,02 H
ROR DX,CL (OR) ROR DX,03H
(i1) MOV BX,06h
MUL BX
(iii)MOV SP4000H
(iv) The contents if CS register cannot be modified directly, Hence no instructions
are Ised However examiner can give marks if question is attempted.
(v) IDIV BL
(vi) MOV CL03H
RCR AX,CL
(OR)
RCR AXJ03H
18. Select assembly language for each of the following
) rotate register BL right 4 times
) multiply AL by 04H
) Signed division of AX by BL
iv) Move 2000h in BX register
V) increment the counter of AX by 1
vi) compare AX with BX
Answer
i) MOV CL, 04 H
RCL AX, CL1
ii) MOV BL,04h MUL BL
ii) IDIV BL
iv) MOV BX,2000h
v) INC AX
vi) CMP AX,BX
MicraprDceSsar Paga 12
KHARAT ACADEMY
19. Write aninstruction to perfom followingoperations:() Multiply B
(ii) Signed division of AL. by BL (i) Move 4000H to DS register (iv) Rota..
content of AX egister to left mes. () Shift he content of BXegister to
right 3 times.(vi) Load SS with FFOOH.
Answer
(1)Multiply BL by 88h
MOV AL. 88H
MUL BL
(2)Signed division of AL by BL
IDIV BL
(3)Move 4000H to DSregister
MOVDS,4000H
(4) Rotate content of AX register to left 4timnes
MOV CL,04
ROL AX, CL
(5) Shift the content of BX register to right 3times
MOV CL,03H
SHR BX, CL
(6) Load SS with FFOOH
MOV AX, FFOOH
MOV SS, AX
20. Write an ALP to arrange numbers in array in descending order.
Answer
DATASEGMENT
ARRAY DB1SHO5H,08H,78H,56H
DATAENDS
CoDE SEGMENT
START:ASSUME (CS:CODEDS:DATA
MOVDX, DATA
MOVDSDX
MOV BL0sH
STEPL: MOMSLOFFSET ARRAY
MOVCL 04W
STEP MOV A SA
Microprocessor Page 13
KHARAT ACADEMY
19. Write aninstruction to perform following operations: () Multiply BL by 88H
(ii) Signed division of AL by BL (I) Move 4000H to DS register (iv) Rotate
content of AX register to left 4 times. (v) Shift the content of BX register to
right 3 times. vi) Load SS with FF0OH.
Answer
(1)Multiply BLby88h
MOV AL,88H
MUL BL
(2) Signed division f ALbyBL
IDIVBL
(3)Move4000Hto DS register
MOV DS, 4000H
C4)Rotate contentof AX registertoleft4times
MOV CL,04
ROL AX, CL
(5) Shift the content of BX register to right 3 times
MOV CL,03H
SHR BX,CL
(6) Load SS with FFOOH
MOVAX, FFOOH
MOV SS, AX
20. Write an ALP to arrange numbers in array in descending order.
Answec
DATA SEGMENT
ARRAM DB I5H,05H08H78H)56H
DATA ENDS
CODE SEGMEN
SARIASSUME(OS:1ODEDS:DATA
MOVDXDATA
MOV DS.DX
MOVBL.05H
STEP1, MOy sL,OFFSET ARRAY
MOVCL 04H
STEP: MOV AL(SI]
Microprecessar Page 13
KHARATACADEMY
KHARAT ACADEMY
CMP AL,SI+1
JNC DOWN
XCHG AL,[SI+1]
XCHG AL (SIN
DOWN:ADDISI1
LOOPSTEP
DEC BL
NZ STEPA
MOV AH,4CH
INT 21H
CODE ENDS
END START
21. Write an ALP to concatenate two strings.
Answer:
DATA SEGMENT
STR1 DB "hellos"
STR2 DB "world$
DATA ENDS
CODE SEGMENT
START: ASSUME CS: CODE, DS:DATA
MOV AX,@ DATA
MOV DS, AX
MOVSL OFFSET STR1
NEXT: MOV AL, (Sl)
CMP AL'S
JE EXIT
INCSI
JMP NEXT
EXIT: MOVDI, OFFSET STR?
UP: MOV AL, (DI]
CMP AL, "$"
JE EXIT1
MOV (SIJ, AL
Microgrecessar Page 14
KHARAT ACADEMY
INC SI
INC DI
JMP UP
EXIT1:
MOV AL,'S
MOV [SI], AL
MOV AH, 4CH
INT 21H
CODE ENDS
ENDSTART