; Program to compute 16 bit multiplication of the data.
DATA SEGMENT ;INITIALIZE DATA SEGMENT
NUM1 DW 4537H ;INITIALIZE NUM1 ANY DATA
NUM2 DW 2222H ;INITIALIZE NUM2 ANY DATA
RESULT DW 2 DUP(0) ;INITIALIZE RESULT AS DATA WORD WITH OFFSET=2.
;IF RESULT IS AT LOCATION 0000H – IT WILL STORE THE LOWER ORDER 16 BIT OF DAT
;THE UPPER 16 BIT OF DATA WILL BE STORED AT RESULT +2 => 0000H +2H => 0002H
DATA ENDS ;END OF DATA SEGMENT
CODE SEGMENT ;INITIALIZE CODE SEGMENT
START: ;START THE CODE
ASSUME CS:CODE , DS:DATA ;ASSUMPTION OF CODE AND DATA
MOV AX,DATA ;MOV DATA INTO ACCUMULATOR AX
MOV DS,AX ;MOV DATA FROM ACCUMULATOR INTO DATA SEGMENT REGISTER
MOV AX,NUM1 ;MOV NUM1 INTO ACCUMULATOR AX REGISTER
MOV BX,NUM2 ;MOV NUM2 INTO BASE BX REGISTER
MUL BX ;MULTIPLY BX REGISTER
;BY DEFAULT MUL OPCODE MULTIPLES REGISTER * ACCUMULATOR
;SYNTAX IS MUL XX (BY WHICH REGISTER TO MULTIPLY)
MOV RESULT,AX ;MOVE THE LOWER 16 BIT RESULT FROM AX TO DEFAULT RESULT LOCATION AS EXPLAINED ABOVE
MOV RESULT+2,DX ;MOVE THE UPPER 16 BIT RESULT FROM DX TO SECOND RESULT LOCATION AS EXPLAINED ABOVE
MOV AH,4CH ;END OF THE CODE
INT 21H ;END OF THE CODE
CODE ENDS ;END OF CODE SEGMENT
END START ;END OF START
; INPUT :
; NUM1 – 4537H
; NUM2 – 2222H
; OUTPUT :
; RESULT (AX) – 7F4E
; RESULT+2 (DX) – 093A
; FINAL RESULT = 093A7F4EH
Read it, liked it, thank you for it
Mine, the pleasure is mine 🙂