Указания по выполнению Задания 2.




Параметры интерфейса перечислены в таблице.

Компонент Свойство Значение
Форма   Надпись   Надпись   Поле ввода   Поле ввода 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

настройка сегментного регистра DS на сегмент данных
mov ax,@data

mov ds,ax

pop ax

ret

initds endp

 

setcur proc

push ax

mov ah,2

установка позиции курсора
mov bh,0

int 10h

pop ax

ret

setcur endp

 

 
 


outstr proc

push ax

вывод строки на экран
mov ah,9

int 21h

pop ax

ret

outstr endp

 

dectohex proc

mov dh,al

перевод 8-битового числа в ASCII-коды цифр 16-ой системы; в DL содержится ASCII код старшей цифры числа, а в DH - ASCII код младшей цифры числа
shr dx,4

shr dl,4

call numcorr

xchg dh,dl

call numcorr

ret

dectohex endp

 

коррекция 4-битового числа до ASCII; на входе процедуры в регистре DL содержится 8-битовое число, а на выходе в DL содержится ASCII код шестнадцатеричного числа.  
numcorr proc

cmp dl,9

jna @@L

add dl,7

@@L: add dl,30h

ret

numcorr endp


 

outascii proc

push ax

mov ah,2

вывод двух символов на экран
int 21h

xchg dh,dl

int 21h

pop dx

ret

outascii endp

 
 


term proc

push ax

завершение работы программы
mov ax,4c00h

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 - позиционирование курсора

вызовы процедур
MOV AH,0 -ожидание следующей

INT 16h нажатой клавиши;

в AL - ASCII код, в AH - SCAN код

PUSH DX

CALL dectohex - вызов процедуры перевода

8-битового числа в ASCII-

коды цифр 16-ой системы;

в DL - первый выводимый символ,

в DH - второй

цикл вывода кодов клавиш
MOV AL,AH - в AL помещен SCAN-код

PUSH AX

CALL outascii - вывод ASCII-кода в 16-ой системе;

 

POP AX

POP DX

PUSH DX

- переход на второй столбец
ADD DL,8

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.

Разработайте на языке Паскаль программу вывода на экран символа по указанным координатам заданное число раз. Алгоритм вывода реализуйте в виде процедуры, расположенной в отдельном объектном модуле.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: