CSc 343
Computer Organization and Programming
Fall Quarter 1997
Programming Assignment #1 (Due: 17 October 1997, Friday)
Assignment Objectives:
Problem Description:
Write an assembler program that will compute the sum of N numbers which are internally defined in the data segment of your program as follows:
N DW 8 NUMS DW 25,15,35,10,10,55,45,25,50,50and produce an output that looks like the following (centered on the screen):
Name: Raj Sunderraman This program executed on 10/06/1997 at 15:10:32 The input numbers are: 25,15,35,10,10,55,45,25 The sum is: 220The first line of the output should contain your name. The second line of the output should contain the date and time of execution of the program in the format indicated. You would have to obtain the system date and time to accomplish this. The third line of the output should contain the list of numbers (which are defined in the data segment). The final line of output should contain the sum of the numbers. Your program should work for any value of N. The output of your program should match, in every detail, the format illustrated above. Points will be deducted for any variation. The program should wait for user to press any key before terminating.
Submission Instructions: Electronically submit sum.asm and sum.exe by the deadline and submit program listing of sum.asm.
Hints:
tasm /zi /l sum tlink /v sum
MOV AH,2CH ; get system time INT 21HAfter the interrupt, CH contains the hour (00 - 23), CL contains minutes (00 - 59) and DH contains seconds (00 - 59).
MOV AH,2AH ; get system date INT 21HAfter the interrupt, DH contains the month (01 - 12), DL contains day (01 - 31) and CX contains year (1980 - 2099).
DIV TENwould divide AX by 10 (assuming TEN has been declared as a byte containing 10). After the instruction has executed, AL will contain the quotient and AH will contain the remainder. Notice that the instruction does not mention a register, since division is always done in the AX register. Warning: Instructions such as
DIV 10are rejected by the assembler.
MSG DB 'Hello!','$' ; message string to be displayed ; notice dollar symbol at end. ... ... MOV AH,09H ; request display LEA DX,MSG ; load address of message INT 21H ; DOS interrupt
MOV AX,0600H ; AH 06 (scroll), AL 00 (full screen) MOV BH,30 ; Attribute: color setting MOV CX,0000 ; upper left row:column MOV DX,184FH ; lower right row=24,column=79 INT 10H ; interrupt call to BIOS
MOV DL,10 ; column 10 MOV DH,5 ; row 5 MOV BH,0 ; page 0 MOV AH,02H ; request set cursor INT 10H ; interrupt call to BIOS
MOV AH,10H INT 16H