You are on page 1of 9

CSE2006 Microprocessor and Interfacing Lab

Faculty Name: M. Narayana Moorthi


Ex. No-3
DONE BY:
P. KRISHNA SAI REDDY
17BCE2063
(1).Write an ALP for finding the factorial of an 8 bit
number
Code:-
org 100h
.DATA
ANS DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,5
MOV CL,4
MOV BL,AL
SUB BL,1
L:
MUL BL
SUB BL,1
LOOP L

MOV ANS,AL
END MAIN
Ret
Output:

In the above code 5 factorial is given as input as a result we get 120


as result which turns out that 120 in hexadecimal is 78H
So we can observe that in AL register we find 78 as output.
(2) Write an ALP for computing the following:
(a) NCR (N!/R!(N-R)!)

CODE :
DATA SEGMENT
N DB ?
R DB ?
DIFF DB ?
NN DW ?
RR DW ?
NR DW ?
FACT DW 1H
RES DB 10 DUP ('$')
MSG1 DB "ENTER R : $"
MSG2 DB 10,13,"ENTER N : $"
MSG3 DB 10,13,"RESULT : $"
MSG4 DB 10,13,"N > R (NOT ALLOWED) !!! $"
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV R,AL
LEA DX,MSG2
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV N,AL
SUB AL,R
MOV DIFF,AL
CMP AL,0
JL LABEL4
MOV AX,FACT
MOV CH,0
MOV CL,N
LABEL1: MUL CL
LOOP LABEL1
MOV NN,AX
MOV AX,FACT
MOV CH,0
MOV CL,R
LABEL2: MUL CL
LOOP LABEL2
MOV RR,AX
MOV AX,FACT
MOV CH,0
MOV CL,DIFF
LABEL3: MUL CL
LOOP LABEL3
MOV NR,AX
MOV DX,0
MOV BX,RR
MUL BX
MOV BX,AX
MOV DX,0
MOV AX,NN
DIV BX
LEA SI,RES
CALL HEX2DEC
LEA DX,MSG3
MOV AH,9
INT 21H
LEA DX,RES
MOV AH,9
INT 21H
JMP EXIT
LABEL4: LEA DX,MSG4
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
HEX2DEC PROC NEAR
MOV CX,0
MOV BX,10
LOOP1: MOV DX,0
DIV BX
ADD DL,30H
PUSH DX
INC CX
CMP AX,9
JG LOOP1
ADD AL,30H
MOV [SI],AL
LOOP2: POP AX
INC SI
MOV [SI],AL
LOOP LOOP2
RET
HEX2DEC ENDP
END START
OUTPUT:

In the below the r value is given as 3 and n value is given as 5 which


results in nCr result as 10
(2).Write an ALP for computing the following:
(b) NPR (n!/(n-r)!)

CODE :

;17BCE2063
;NPR (N!/(N-R)!)
.MODEL SMALL
.STACK 64
.DATA
N DB 05H
R DB 02H
RES DB ?
R1 DB ?
N1 DB ?
NR DB ?
BOTTOM DB ?
.CODE
START:
MOV AX, @DATA
MOV DS, AX
MOV AL, 01H
MOV BL, N
FACT1: MUL BL ;N FACTORIAL
DEC BL
JNZ FACT1
MOV N1, AL
MOV BL, N
MOV AL, R
SUB BL, AL
MOV AL, 01H
FACT3: MUL BL ;(N-R) FACTORIAL
DEC BL
JNZ FACT3
MOV NR, AL
; CALCULATION
LEA SI, NR
MOV BL, DS:SI
LEA SI, N1
MOV AL, DS:SI
DIV BL
MOV RES, AL
LEA SI, RES
MOV AH, 4CH
INT 21H
END START
END

OUTPUT:

You might also like