Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

assembly language programming . .First, the program will print the programming a

ID: 3725257 • Letter: A

Question

assembly language programming . .First, the program will print the programming assignment number, your name, and your class account, all on one line. Your program is going to calculate the day of the week that a user entered number falls on in March 2018. Your program will prompt the user to enter a single number of one or two characters in length. Your program will then print the day of the week that day falls on using the provided strings. If the user enters 3, your program will print “The 3th day is Saturday.” You can assume that all day endings are “th”. Your program will not display additional spaces at the beginning of or in the middle of the string.

Explanation / Answer

** Here is your answer. I have tried to make it very simple way. Here you can get the day for every month

.MODEL SMALL
.STACK 64
.DATA

SAVEDAY DB ?
SAVEMON DB ?
TEN DB 10
ELEVEN DB 11
TWELVE DB 12
DAYSTAB DB ' SUNDAY, $ ', ' MONDAY, $ '
DB ' TUESDAY, $ ', ' WEDNESDAY, $ '
DB ' THURSDAY, $ ', ' FRIDAY, $ '
DB ' SATURDAY, $ '
MONTAB DB ' JANUARY $ ', ' FEBUARY $ ', ' MARCH $ '
DB ' APRIL $ ', ' MAY $ ', ' JUNE $ '
DB ' JULY $ ', ' AUGUST $ ', ' SEPTEMBER $ '
DB ' OCTOBER $ ', ' NOVEMBER $ ', ' DECEMBER $ '

.CODE
BEGIN PROC FAR
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
MOV AX,0600H
CALL Q10SCR
CALL Q20CURS
MOV AH,2AH
INT 21H
MOV SAVEMON,DH
MOV SAVEDAY,DL
CALL B10DAYWK
CALL C10MONTH
CALL D10DAYMO
CALL E10INPT
CALL Q10SCR
MOV AX,4C00H
INT 21H
BEGIN ENDP

B10DAYWK PROC NEAR
MUL TWELVE
LEA DX,DAYSTAB
ADD DX,AX
MOV AH,09H
INT 21H
RET
B10DAYWK ENDP

C10MONTH PROC NEAR
MOV AL,SAVEMON
DEC AL
MUL ELEVEN
LEA DX,MONTAB
ADD DX,AX
MOV AH,09H
INT 21H
RET
C10MONTH ENDP

.386

D10DAYMO PROC NEAR
MOVZX AX,SAVEDAY
DIV TEN
OR AX,3030H
MOV BX,AX
MOV AH,02H
MOV DL,BL
INT 21H
MOV AH,02H
MOV DL,BH
INT 21H
RET
D10DAYMO ENDP

E10INPT PROC NEAR
MOV AH,10H
INT 16H
RET
E10INPT ENDP

Q10SCR PROC NEAR
MOV AX,0600H
MOV BH,17H
MOV CX,0000
MOV DX,184FH
INT 10H
RET
Q10SCR ENDP

Q20CURS PROC NEAR
MOV AH,02H
MOV BH,00
MOV DH,10
MOV DL,24
INT 10H
RET
Q20CURS ENDP
END BEGIN