Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на печать11.doc
Скачиваний:
43
Добавлен:
11.06.2015
Размер:
1.04 Mб
Скачать

10. Описание и обработка массивов на ассемблере.

Массив – непрерывная область памяти, в которой массив помещаются поля, отведенные под элементы массива. Общий размер массива есть размер 1-го элемента, умноженного на число элементов.

Address(A[i])=A+(i-L)*n=A+i*n (L=0), где i – номер элемента массива, L-минимальное значение, n-длина 1-го элемента. Выражение состоит из 2-х частей: постоянной (А) и переменной (i*n). Постоянная часть указывается в виде константы в команде. Переменная вычисляется с помощью индексного регистра. A[esi] или А[esi*4]-индекс адреса с масштабом. При обработке двумерных массивов используется базово-индексная адресация. Двумерный массив строк, каждая строка есть массив из отдельных элементов. Размер = число строк* количество элементов в строке* длина 1-го элемента в байтах.

Пример описания

B dw 2 dup (5 dup(?))

11. Вычисления с фиксированной и плавающей точкой.

Вычисления с фиксированной запятой

Существует широкий класс задач, где требуются вычисления с вещественны-

ми числами, но не нужна высокая точность результатов. А раз не нужна высокая точность, вычисление можно выполнить значительно быстрее. Чаще всего для представления вещественных чисел с ограниченной точностью используется формат чисел с фиксированной запятой: целая часть числа представляется в виде обычного целого числа, и дробная часть - точно так же в виде целого числа.

Наиболее распространенные форматы для чисел с фиксированной запятой -

8:8 и 16:16. В первом случае на целую и на дробную части числа отводится по

одному байту, а во втором - по одному слову. Операции с этими двумя формата-

ми можно выполнять, помещая число в регистр (16-битный - для формата 8:8

и 32-битный - для формата 16:16). Разумеется, можно придумать и использовать

совершенно любой формат, например 5:11, но некоторые операции над такими

числами могут усложниться.

Вычисления с плавающей запятой

Набор команд для работы с плавающей запятой в процессорах Intel достаточно

разнообразен, чтобы реализовывать весьма сложные алгоритмы, и прост в использовании. Единственное, что может представлять определенную сложность, - почти

все команды FPU по умолчанию работают с его регистрами данных как со стеком,

Выполняя операции над числами в ST(0) и ST(1) и помещая результат в ST(0).

12.Форматы и типы данных арифметического сопроцессора.

Арифметический сопроцессор значительно (в десятки раз) ускоряет вычисления, связанные с вещественными числами. Он может вычислять такие функции, как синус, косинус, тангенс, логарифмы и т.д. Разумеется, что с помощью сопроцессора можно выполнять и простейшие арифметические операции сложения, вычитания, умножения и деления.

Сопроцессор может работать либо с данными в формате с плавающей точкой, либо с целыми числами.

Типы данных FPU:

Тип данных

Бит

Количество значащих цифр

Пределы

Целое слово

16

4

-32 768 … 32767

Короткое целое

32

9

-2*10^9…2*10^9

Длинное слово

64

18

-9*10^18…9*10^18

Упакованное десятичное

80

18

-99…99 …. 99..99(18 цифр)

Короткое вещественное

32

7

1.18*10^-38…3.40*10^38

Длинное вещественное

64

15-16

2.23*10^-308…1.79*10^308

Расширенное вещественное

80

19

3.37*10^-4932…1.18*10^4932

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]