| TA: | Jade Cheng 成玉 (yucheng@hawaii.edu) | |
| Instructor: | David Pager (pager@hawaii.edu) | |
| Course: | Machine-Level and Systems Programming | |
| TA Office: | POST Building Room 303-3 (cubicle 3) | |
| TA Hours: | Tuesday 11:00 to 12:00 | |
| Thursday 11:00 to 12:00 | ||
TBD
If you do not complete homework assignments sufficently, you would automatically fail the course. Otherwise, homework does not affect your grades. Homework submissions will be recorded and posted on this site using the student codes provided by the TA.
Please submit your homework assignments by 11:59 pm on the posted due date. Homework received on time will receive 10 points. One point will be deducted for late submissions. After one week homework will not be accepted.
To facilitate the grading process, please try to follow the following guidelines when submitting assignments.
Assignments should be submitted via email using your UH UNIX email account. The TA will not accept any other form of submissions.
Assignments should be submitted to yucheng@hawaii.edu. Please do not send the assignments to the professor.
Please cc the email to youself. That way, if the TA doesn’t get your email for some reason, you have proof that it was sent.
Please use the following pattern for the subject of your email.
[312] homework number
For example: [312] homework 1
Please copy and paste the contents of the homework in the email body. That way, the TA will receive your work even if the attachment is rejected.
Plain text files are preferred. PDF, JPG, and PNG files are also accepted. Please do not send Microsoft Office documents.
You may submit an assignment more than one time. Only the most recent assignment submitted will be evaluated.
The grades for homework assignments, programming projects, in-class quizzes, and the exams will be posted using the student codes provided by the TA. If you lose or forget your code, please contact the TA.
Click your student ID to view your grades.
The solutions of some of the homework assignments and the in-class quizzes will be posted in this section. Since late submmisions are allowed, the solutions will not be available until a couple of weeks after the due date.
;; This program draws a large red square (color code 4) in the text mode.
.model small
.stack 100
.data
count dw ?
x db 29
y db 6
.code
prog proc
mov ax, @data
mov ds, ax
mov ah, 0h ; clear up screen
mov al, 3h
int 10h
mov ah, 2h ; cursor function
mov dl, [x] ; starting column, 1
mov dh, [y] ; starting row, 1
mov bh, 0 ; page 0
int 10h
mov ah, 9h ; display
mov cx, 1 ; draw one char at the top left corner
mov bl, 4 ; color attribute code
mov al, '+' ; draw a '+'
int 10h
mov ah, 2h ; cursor function
inc dl ; next colum, 2
int 10h
mov ah, 9h ; display
mov cx, 20 ; draw a length of 20 for the top edge
mov al, '-' ; draw '-'s
int 10h
mov ah, 2h ; cursor function
add dl, 20 ; go to the top right corner
int 10h
mov ah, 9h ; display
mov cx, 1 ; draw one char at the top right corner
mov al, '+' ; draw a '+'
int 10h
mov ah, 2h ; cursor function
sub dl, 21 ; back to the starting column
inc dh ; next row
int 10h
mov [count], 10
sides:
cmp [count], 0 ; draw 'count' times of '|'s
je done_sides
dec [count] ; decrement loop counter
mov ah, 9h ; display
mov cx, 1 ; draw one char at a time
mov al, '|' ; draw '|'s
int 10h
mov ah, 2h ; cursor function
add dl, 21 ; go to the right edge side
int 10h
mov ah, 9h ; display
mov cx, 1 ; draw one char at a time
mov al, '|' ; draw '|'s
int 10h
mov ah, 2h ; cursor function
inc dh ; go to the next row
mov dl, [x] ; back to the left column
int 10h
jmp sides
done_sides:
mov ah, 9h ; display
mov cx, 1 ; draw one char at the bottom left corner
mov al, '+' ; draw a '+'
int 10h
mov ah, 2h ; cursor function
inc dl ; go to the next column
int 10h
mov ah, 9h ; display
mov cx, 20 ; drw a length of 20 for the bottom edge
mov al, '-' ; draw '-'s
int 10h
mov ah, 2h ; cursor function
add dl, 20 ; go to the bottom right corner
int 10h
mov ah, 9h ; display
mov cx, 1 ; draw one char at the bottom right corner
mov al, '+' ; draw a '+'
int 10h
mov ah, 1 ; wait for a key to be pressed
int 21h
mov ax, 4c00h ;4c in ah is dos exit fn with return code in al
int 21h
prog endp
end prog The course textbook — William Jones’ Assembly Language Programming for the IBM PC Family, 3rd Edition