MASTER OF COMPUTER APPLICATIONS
Course Code : MCSL-017
Course Title : C and Assembly Language Programming
Assignment Number : MCA(1)/L017/Assign/2014-15
Maximum Marks : 100
Weightage : 25%
Write a program in assembly language to print an infinite sequence of pseudo-random numbers.
DATA SEGMENT
MSG1 DB 10,13,’RANDOM NUMBERS ARE : $’
MSG2 DB 10,13,’ $’
RES DB 10 DUP (‘$’)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
NXT:
MOV AH,2CH ; Set time function
INT 21H
MOV AX,DX ; DH=seconds,DL=hundredths of second
XOR AH,AH
LEA SI,RES
CALL HEX2DEC
LEA DX,RES
MOV AH,9
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
JMP NXT
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
Program Code :
[codesyntax lang=”asm” lines=”normal”]
DATA SEGMENT
MSG1 DB 10,13,’RANDOM NUMBERS ARE : $’
MSG2 DB 10,13,’ $’
RES DB 10 DUP (‘$’)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
NXT:
MOV AH,2CH ; Set time function
INT 21H
MOV AX,DX ; DH=seconds,DL=hundredths of second
XOR AH,AH
LEA SI,RES
CALL HEX2DEC
LEA DX,RES
MOV AH,9
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
JMP NXT
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
[/codesyntax]
Screen shots :-
After Execution :-