This is an 8086 program to print out the multiplication table of a number. If you have any doubts, please let me know.
.MODEL SMALL
.DATA
MSG DB 0AH,0DH,'ENTER A NUMBER: ',0AH,'$'
NEW DB 0AH,0DH,24H
INP DB 10,0,10 DUP('$')
MULT DB 01H
MSG2 DB 0AH,0DH,'MULTIPLICATION TABLE:',0AH,'$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,INP
MOV AH,0AH
INT 21H
ADD DX,02H
MOV SI,DX
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DI,MULT
MOV AH,00H
MOV CX,000AH
INC DI
MOV [DI],CX
DEC DI
MOV BL,[DI]
MOV BH,00H
AGAIN:
MOV [DI],BL
INC DI
MOV [DI],CL
DEC DI
MOV DL,[SI]
MOV AH,02H
INT 21H
MOV DL,'*'
MOV AH,02H
INT 21H
MOV DL,[DI]
CMP DL,0AH
JNE TEN
MOV DL,31H
MOV AH,02H
INT 21H
MOV DL,30H
MOV AH,02H
INT 21H
JMP EQUAL
TEN:ADD DL,30H
MOV AH,02H
INT 21H
EQUAL:MOV DL,'='
MOV AH,02H
INT 21H
MOV AL,[SI]
SUB AL,30H
MOV AH,00H
MUL BX
CALL DISPLAY
MOV BL,[DI]
MOV BH,00H
INC BX
INC DI
MOV CL,[DI]
MOV CH,00H
DEC DI
LOOP AGAIN
.EXIT
DISPLAY PROC
MOV BX, 000AH
MOV DX, 0000H
MOV CX, 0000H
L1: MOV DX, 0000H
DIV BX
PUSH DX
INC CX
CMP AX, 0000H
JNE L1
L2: POP DX
ADD DX, 30H
MOV AH, 02H
INT 21H
LOOP L2
LEA DX,NEW
MOV AH,09H
INT 21H
RET
DISPLAY ENDP
END START;
.MODEL SMALL
.DATA
MSG DB 0AH,0DH,'ENTER A NUMBER: ',0AH,'$'
NEW DB 0AH,0DH,24H
INP DB 10,0,10 DUP('$')
MULT DB 01H
MSG2 DB 0AH,0DH,'MULTIPLICATION TABLE:',0AH,'$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,INP
MOV AH,0AH
INT 21H
ADD DX,02H
MOV SI,DX
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DI,MULT
MOV AH,00H
MOV CX,000AH
INC DI
MOV [DI],CX
DEC DI
MOV BL,[DI]
MOV BH,00H
AGAIN:
MOV [DI],BL
INC DI
MOV [DI],CL
DEC DI
MOV DL,[SI]
MOV AH,02H
INT 21H
MOV DL,'*'
MOV AH,02H
INT 21H
MOV DL,[DI]
CMP DL,0AH
JNE TEN
MOV DL,31H
MOV AH,02H
INT 21H
MOV DL,30H
MOV AH,02H
INT 21H
JMP EQUAL
TEN:ADD DL,30H
MOV AH,02H
INT 21H
EQUAL:MOV DL,'='
MOV AH,02H
INT 21H
MOV AL,[SI]
SUB AL,30H
MOV AH,00H
MUL BX
CALL DISPLAY
MOV BL,[DI]
MOV BH,00H
INC BX
INC DI
MOV CL,[DI]
MOV CH,00H
DEC DI
LOOP AGAIN
.EXIT
DISPLAY PROC
MOV BX, 000AH
MOV DX, 0000H
MOV CX, 0000H
L1: MOV DX, 0000H
DIV BX
PUSH DX
INC CX
CMP AX, 0000H
JNE L1
L2: POP DX
ADD DX, 30H
MOV AH, 02H
INT 21H
LOOP L2
LEA DX,NEW
MOV AH,09H
INT 21H
RET
DISPLAY ENDP
END START;
can you write assembly language program that displays multiplication table upto 50 of a given input
ReplyDeleteLORA
ReplyDeletehttps://engineering-lab.blogspot.com/2018/06/table-printing-in-8086-assembly-with.html here is complete program
ReplyDelete