Для описания такой переменной используют директиву следующего вида:
имя_переменной имя_типа <[список значений]>
D1 DATE <45,5,9>
Для работы с полями записей используются следующие средства языка ассемблера.
Оператор WIDTH
WIDTH имя поля записи
WIDTH имя записи или ее типа
WIDTH Y=7
WIDTH REC=6
Оператор MASK
MASK имя поля записи
MASK имя записи или ее типа
MASK REC =00111111b
MASK M =0000000111100000b
Данный оператор используется при выделении полей записей.
Пример:
Проверить содержит ли поле D записи D1 число 9
MOV AX, D1
AND AX, MASK D
CMP AX,9
JE YES
NO:
Пример:
Подсчитать количество студентов-отличников.
Описан структурный тип студент
STUD STRUC
FAM DB 20 DUP (?)
GR DW?
MARKS DB 5 DUP (?)
STUD ENDS
Объявление массива переменных типа структура
S STUD 100 (<>)
MOV DX, 0; число отличников
; внешний цикл (по студентам)
MOV CX, 100; общее число студентов
MOV BX, 0; начало информации об очередном студенте
M1: MOV AX, CX
; внутренний цикл (по оценкам)
MOV CX, 5; число оценок
MOV SI, 0; индекс оценки
|
|
M2: CMP (S[BX]).MARKS[SI],5; оценка=5?
JNE NEXT; нет - к следующему студенту
INC SI; к следующей оценке
LOOP M2
INC DX; учет отличника
NEXT: MOV CX, AX
ADD BX, TYPE STUD; на начало информации о следующем студенте
LOOP M1