Составители:
Рубрика:
13
Для заполнения больших массивов используется директива dup (dupli-
cate):
<число повторений> dup(<образец>)
<число повторений> - задаёт количество размещаемых в памяти данных,
определяемых образцом;
<образец> - любая допустимая группа констант.
Например,
data2 db 23 dup(1, 2, 'x')
выделяет в памяти 23 · 3=69 байтов и заносит в них образец 1, 2, 'x', 1, 2,
'x', … .
2. Директива использования сегментных регистров по умолчанию:
assume <имя сегментного регистра>:<имя
сегмента или
nothing>[, <имя сегментного регистра>:<имя сегмента или nothing>,
…]
Как отмечалось выше, для задания адреса в памяти требуется два ре-
гистра, один из них всегда сегментный, поэтому в команде при обращении
к памяти приходиться набирать имя сегментного регистра, часто одного и
того же. Директива assume позволяет избежать этого.
Транслятор сопос-
тавляет имя массива данных и автоматически подставляет сегментный ре-
гистр, заданный для сегмента, в котором расположен данный массив. Сло-
во nothing показывает, что данный сегментный регистр не адресуется по
умолчанию. Директива assume может использоваться в программе при ка-
ждом изменении сегмента для данного сегментного регистра, но обяза-
тельно в
начале сегмента, где она задаёт по умолчанию сегментный ре-
гистр для сегмента кодов.
Например,
assume cs:code, ds:data1, es:nothing
Для заполнения больших массивов используется директива dup (dupli- cate): <число повторений> dup(<образец>) <число повторений> - задаёт количество размещаемых в памяти данных, определяемых образцом; <образец> - любая допустимая группа констант. Например, data2 db 23 dup(1, 2, 'x') выделяет в памяти 23 · 3=69 байтов и заносит в них образец 1, 2, 'x', 1, 2, 'x', … . 2. Директива использования сегментных регистров по умолчанию: assume <имя сегментного регистра>:<имя сегмента или nothing>[, <имя сегментного регистра>:<имя сегмента или nothing>, …] Как отмечалось выше, для задания адреса в памяти требуется два ре- гистра, один из них всегда сегментный, поэтому в команде при обращении к памяти приходиться набирать имя сегментного регистра, часто одного и того же. Директива assume позволяет избежать этого. Транслятор сопос- тавляет имя массива данных и автоматически подставляет сегментный ре- гистр, заданный для сегмента, в котором расположен данный массив. Сло- во nothing показывает, что данный сегментный регистр не адресуется по умолчанию. Директива assume может использоваться в программе при ка- ждом изменении сегмента для данного сегментного регистра, но обяза- тельно в начале сегмента, где она задаёт по умолчанию сегментный ре- гистр для сегмента кодов. Например, assume cs:code, ds:data1, es:nothing 13
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »