Описание и инициализация массива в программе
Массив — структурированный тип данных, состоящий из некоторого числа элементов одного типа.
Массивы
M записи.
Массивы
5)
4)
3)
2)
1)
Трансцендентные операции FPU
· Команда: | FSIN |
· Назначение: | Синус |
Вычисляет синус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263.
· Команда: | FCOS |
· Назначение: | Косинус |
Вычисляет косинус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263.
· Команда: | FSINCOS |
· Назначение: | Синус и косинус |
Вычисляет синус и косинус числа, находящегося в ST(0), помещает синус в ST(0) и затем помещает косинус в стек (так что синус оказывается в ST(1), косинус — в ST(0). Операнд считается заданным в радианах и не может быть больше 263 или меньше -263.
· Команда: | FPTAN |
· Назначение: | Тангенс |
Вычисляет тангенс числа, находящегося в регистре ST(0), заменяет его на вычисленное значение и затем помещает 1 в стек, так что результат оказывается в ST(1), ST(0) содержит 1. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263.
· Команда: | FPATAN |
· Назначение: | Арктангенс |
Вычисляет арктангенс числа, получаемого при делении ST(1) на ST(0), сохраняет результат в ST(1) и выталкивает ST(0) из стека (помечает ST(0) как пустой).
Существующие базовые типы данных:
m Непосредственные данные, представляющие собой числовые или символьные значения, являющиеся частью команды.
m Данные, описываемые с помощью ограниченного набора директив резервирования памяти. При обработке этих директив ассемблер сохраняет информацию о местоположении данных и типе данных.
В язык ассемблера была введена возможность использования нескольких сложных типов данных. Они строятся на основе базовых типов данных.
TASM поддерживает следующие сложные типы данных:
m массивы;
m структуры;
m объединения;
Массив в программе можно моделировать одним из следующих способов:
1) перечислением элементов массива в поле операндов одной из директив описания данных. Например:
;массив из 5 элементов. Размер каждого элемента 4 байта:
mas dd 1,2,3,4,5 ; 00 00 00 01 00 00 00 02 00 00 00 04 00 00 00 05
2) используя оператор повторения dup. К примеру:
;массив из 5 нулевых элементов. Размер каждого элемента 2 байта:
mas dw 5 dup (0) ; 00 00 00 00 00 00 00 00 00 00
Такой способ определения используется для резервирования памяти с целью размещения и инициализации элементов массива;
3) используя директивы label и rept. Директива rept вызывает повторение указанного числа раз строк, заключенных между директивой и строкой endm. К примеру, определим массив байт в области памяти, обозначенной идентификатором mas_b. В данном случае директива label определяет символическое имя mas_b, но эта директива не резервирует память, а лишь определяет характеристики объекта. В данном случае объект — это ячейка памяти. Используя несколько директив label, записанных одна за другой, можно присвоить одной и той же области памяти разные имена и типы. Например:
...
n=0
...