Параметры интерфейса перечислены в таблице.
Компонент | Свойство | Значение |
Форма Надпись Надпись Поле ввода Поле ввода | Name Caption Name Caption Name Caption Name Text Name Text | frmNameExample Введите ваше имя и фамилию lblFirstName Имя lblLastName Фамилия edtFirstName Пустое поле edtLastName Пустое поле |
Билет 9
Задание 1.
Часть 1. Разработайте библиотеку подпрограмм общего назначения: настройка сегментного регистра DS на сегмент данных, установка позиции курсора, вывод строки на экран, перевод 8-битового числа в ASCII-коды цифр 16-ой системы, коррекция 4-битового числа до ASCII, вывод двух символов на экран, завершение работы программы.
Часть 2. Используя библиотеку подпрограмм, разработайте, оттранслируйте и отладьте программу определения ASCII и SCAN кодов нажатой клавиши.
Указания по выполнению Задания 1.
Часть 1.
Библиотеку нужно сохранить в отдельном текстовом файле.
В результате работы процедуры перевода 8-битового числа в ASCII-коды цифр 16-ой системы в DL должен содержаться ASCII код старшей цифры числа, а в DH - ASCII код младшей цифры числа.
На входе процедуры коррекции 4-битового числа до ASCII в регистре DL должно быть 8-битовое число, а на выходе в DL должен быть ASCII код шестнадцатеричного числа.
Часть 2.
В вызывающей программе библиотека должна подключаться с помощью директивы INCLUDE "имя файла". Директива должна быть указана в том же кодовом сегменте, где будут выполняться вызовы процедур.
Инициализируйте сегментный регистр данных.
Позиционируйте курсор. Перед вызовом процедуры установки позиции курсора в регистры DH и DL необходимо поместить номер строки и столбца соответственно.
Выведите сообщение. Перед вызовом процедуры вывода строки на экран смещение строки необходимо поместить в DX.
Осуществите переход на следующую строку.
Инициализируйте счётчик.
Организуйте цикл вывода кодов клавиш.
Позиционируйте курсор.
Организуйте ожидание следующей нажатой клавиши. После нажатия в AL должен оказаться ASCII код, а в AH - SCAN код этой клавиши.
Выведите ASCII-код в 16-ой системе. Перед вызовом процедуры перевода 8-битового числа в ASCII-коды цифр 16-ой системы в AL должно находиться выводимое число. При выводе двух символов на экран в DL должен находиться первый символ, в DH - второй.
Перейдите на второй столбец и выведите SCAN-код.
Вызовите процедуру выхода в DOS.
Библиотека подпрограмм
initds proc
push ax
|
mov ds,ax
pop ax
ret
initds endp
setcur proc
push ax
mov ah,2
|
int 10h
pop ax
ret
setcur endp
![]() |
outstr proc
push ax
|
int 21h
pop ax
ret
outstr endp
dectohex proc
mov dh,al
|
shr dl,4
call numcorr
xchg dh,dl
call numcorr
ret
dectohex endp
|

cmp dl,9
jna @@L
add dl,7
@@L: add dl,30h
ret
numcorr endp
outascii proc
push ax
mov ah,2
|
xchg dh,dl
int 21h
pop dx
ret
outascii endp
![]() |
term proc
push ax
|
int 21h
pop ax
ret
term endp
Программа, использующая библиотеку
MODEL SMALL
.STACK 128
.DATA
MSG DB "ASCII SCAN$"
.CODE - кодовый сегмент
INCLUDE iomisc.asm - подключение отдельного текстового файла
с сохранённой библиотекой
s: CALL initds - инициализация сегментного регистра данных
MOV DH,2 - в DH помещён номер строки
MOV DL,10 - в DL помещён номер столбца
CALL setcur - позиционирование курсора, т.е. вызов
процедуры установки позиции курсора
PUSH DX
LEA DX,msg - смещение строки помещено в DX
CALL outstr - вывод сообщения, т.е. вызов процедуры
вывода строки на экран
POP DX
INC DH - переход на следующую строку
MOV CX,8 - инициализация счётчика
L: INC DH
CALL setcur - позиционирование курсора
|
INT 16h нажатой клавиши;
в AL - ASCII код, в AH - SCAN код
PUSH DX
CALL dectohex - вызов процедуры перевода
8-битового числа в ASCII-
коды цифр 16-ой системы;
в DL - первый выводимый символ,
в DH - второй
|
PUSH AX
CALL outascii - вывод ASCII-кода в 16-ой системе;
POP AX
POP DX
PUSH DX
|

CALL setcur
CALL dectohex
CALL outascii - вывод SCAN-кода
POP DX
LOOP L
CALL term - вызов процедуры выхода в DOS
END s
Задание 2
Создайте в Delphi пользовательский интерфейс со следующей конфигурацией.
Компонент | Свойство | Значение |
Форма Надпись Надпись | Name Caption Name Caption Name Caption | frmLabels Пример надписи lblLastName <Ваша фамилия > lblFirstName <Ваше имя> |
Билет 10
Задание 1.
Разработайте на языке Паскаль программу вывода на экран символа по указанным координатам заданное число раз. Алгоритм вывода реализуйте в виде процедуры, расположенной в отдельном объектном модуле.