/p>
Так само, як і для структур:
1 TData < 00,,> == Dat1 TData < 00>
Dat2 TData < ,,> == Dat2 TData < >
Однією директивою можна описати масив записів, використовуючи декілька параметрів у поле операндів або конструкцію повторення, наприклад,
TData 100 Dup (<>)
Описано 100 записів з початковими значеннями, рівними прийнятим за замовчуванням.
З усією записом в цілому можна працювати як звичайно з байтами або зі словами, тобто можна реалізувати присвоювання Rec1=Rec2:
mov AL, Rec2
mov Rec1, AL
Для роботи з окремими полями запису існують спеціальні оператори width і mask. Оператор width має вигляд:
<ім'я поля запису>
width <ім'я запису або ім'я типу запису>
Значним оператора width є розмір в бітах поля або всієї запису залежно від операнда.
Оператор mask має вигляд:
<ім'я поля запису>
Mask <ім'я запису або ім'я типу запису>
Значним цього оператора є «маска»- Це байт або слово, залежно від розміру запису, що містить одиниці в тих розрядах, які належать полю або всієї записи, вказаних в якості операнда, і нулі в інших, не використовуваних розрядах. Наприклад:
A=00111000bB=00000111bY=1111111000000000bRec1=mask TRec=00111111b
Цей оператор використовується для виділення полів запису, наприклад, щоб виявити всіх народжених 1-го числа, доведеться виділяти поле D і порівнювати його значення з 1-ей.
mov AX, Dat1AX, mask DAX, 1yes: --------------------
------------------------ jmp m1
yes: ------------------------
При роботі з записами, асемблер імені будь-якого поля приписує як значення число, на яке потрібно зрушити вправо це поле, щоб воно виявилося притиснутим до правої межі комірки, займаної записом. Так значенням поля D для запису типу TData є нуль, для поля M - 5, для поля Y - 9. Значення імен полів використовуються в командах зрушення, наприклад, визначити народилися в квітні можна так:
AX, Dat; Ax=Y M DAX, mask M; AX=0 M 0CL, M; CL=5Ax, CL; AX=0 0 MAX, 4; M=4? Yes: ------------------ m1
yes: --------------------------
18. Робота з підпрограмами в Асемблері
Програма, оформлена як процедура, до якої звернення відбувається з ОС, закінчується командою повернення ret. Підпрограма (ПП), як допоміжний алгоритм, до якого можливе багаторазове звернення за допомогою команди call, теж оформляється як процедура за допомогою директив proc і endp. Структуру процедури можна оформити так:
<ім'я процедури> proc <параметри>
<тіло процедури>
ret
<ім'я процедури> endp
В Асемблері один тип підпрограм - процедура.