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

the program should be written in assembly 68k .First, the program will print the

ID: 3726338 • Letter: T

Question

the program should be written in assembly 68k .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

PROGRAM:

.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