Описание программы
Программа представляет собой .com файл, запустив который в режиме MS-DOS выводит сообщение: «For change color of screen border press F10, for exit ESC. The program size in bytes is …» где вместо … выводится размер программы в байтах. В сообщении выдается исчерпывающая информация о том, что, программа позволяет изменять цвет границы экрана при последовательном нажатии на клавишу F10 (причем цвет изменяется путем инкрементирования от 0 до 15, после 15 нажатия цвет заново сбрасывается в 0), а для выхода из программы необходимо нажать ESC. В случае если будет нажата не одна из требуемых клавиш, программа выдаст сообщение об ошибке: «Wrong key is pressed, press F10. Or Esc for exit».
Заключение
В результате разработки данного курсового проекта была усвоена работа с программным продуктом Turbo Assembler v.5.0., рассмотрена и реализована структура программы в виде com-файла, определяющая свой собственный размер в памяти и выполняющая смену цвета границы экрана при нажатии клавиши F10, используя системные функции прерываний DOS и BIOS. Таким образом, рассмотрены реальные процессы протекающие в системе в ходе выполнения программы.
Список литературы
Методические указания для курсового проектирования по курсу «Системное программное обеспечение»/Уфимск.гос.авиац.техн.ун-т; Сост.:О.Д.Лянцев – Уфа, 1997 – 27 с.
Абель П. Язык Ассемблера для IBM PC и программирования /Пер. с англ. Ю.В.Сальникова – М.; Высшая школа 1991 – 447 с.:ил.
Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ./Предисл. Н.В.Гайского – М.: Финансы и статистика, 1991 – 544 с.:ил.
Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера: Пер. с англ. – М.: Радио и связь, 1989 – 336с.:ил.
Стандарты в программной документации: Методические указания к курсовому и дипломному проектированию для студентов всех специальностей. – Уфа: УАИ, 1987 – 35с.
Приложение 1
Блок-схема программы.
Приложение 2
Листинг программы.
title F10BORDUR
CODESG SEGMENT 'CODE'
ASSUME CS:CODESG, DS:CODESG,SS:CODESG,ES:CODESG
ORG 100H
begin:
main proc
mov ah,00h
mov al,03
int 10h
MOV AH,09h
LEA DX,MSG1
INT 21H
mov ax,(newstk-begin)
GG: div ten
mov c1,al
add ah,t3
mov c2,ah
MOV AH,02h
MOV BH,00
MOV DH,1
MOV DL,i
INT 10H
dec i
MOV AH,40h
mov bx,01
mov cx,1
LEA DX,c2
INT 21H
cmp c1,0
je mainl
mov al,c1
xor ah,ah
JMP GG
MAINl: MOV AH,07h
INT 21H
CMP AL,0
JE func
cmp al,1bh
je exitprog
mist:mov ah,00h
mov al,03
int 10h
MOV AH,9h
lea dX,MSG2
INT 21H
JMP MAINl
func: INT 21H
CMP AL,44h
JE EX
JMP mist
ex: MOV AH,0bh
MOV BH,00
MOV BL,colorborder
INT 10H
cmp colorborder,0fh
je obnul
inc colorborder
jmp mainl
obnul: mov colorborder,0
jmp mainl
exitprog: ret
main endp
MSG1 DB 'For change color of screen border press F10, for exit ESC. The program size in bytes is$'
MSG2 DB 'Wrong key is pressed, press F10 or Esc for exit$'
colorborder db 1
c1 db 0
c2 db 0
ten db 10
i db 20
t3 db 48
newstk=$
CODESG ENDS
end begin
1В тексте программы операторORG100hрезервирует 256 байтов дляPSP