Добавил:
ИВТ (советую зайти в "Несортированное") Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
23.11.2024
Размер:
575.96 Кб
Скачать

 

МИЭТ, СПИНТех, КАИ

Команды, упоминаемые на прошедших лекциях

 

12 / 18

 

Загрузка значений в стек

FPU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fld src

Вещественное число (здесь и далее src 2 fst(i); smemg)

 

 

 

 

 

 

 

Загрузка целых чисел

 

 

 

 

 

 

 

 

fild smem

Целое знаковое число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fbld smem

Целое дв.-десятичное 80-бит. упакованное знаковое число

 

 

 

 

 

 

 

 

Загрузка констант

 

 

 

 

 

 

 

 

fldz

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fld1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fldpi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fldl2t

log2 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fldl2e

log2 e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fldlg2

log10 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fldln2

ln 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Суффиксы

 

 

 

 

 

 

 

операнд

 

вещественный (f)

целый (fi)

размера

 

s или без суффикса

single (32)

short (16)

 

команд FPU

 

l

 

 

double (64)

long (32)

 

с smem; dmem

t

 

 

ten bytes (80)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команды пересылки и условия

Загрузка значений в стек FPU

 

 

 

 

 

 

 

 

Базовая арифметика (основной набор)

Выгрузка и пересылка значений

 

 

 

 

 

 

 

 

 

 

 

FPU

Основные арифметические операции

 

 

 

 

 

 

 

FPU (флаги)

Дополнительные арифметические и трансцендентные ко

 

МИЭТ, СПИНТех, КАИ

 

Команды, упоминаемые на прошедших лекциях

 

13 / 18

 

Выгрузка и пересылка

значений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fst dest

 

Копирует st(0) в dest

 

 

 

 

 

 

fstp dest

 

Выталкивает st(0) в dest

 

 

 

 

 

 

 

Выгрузка с округлением

 

 

 

 

 

 

fist dmem

 

Копирует st(0) в dmem как целое

 

 

 

 

 

 

fistp dmem

 

Выталкивает st(0) в dmem как целое

 

 

 

 

 

 

fbst dmem

 

Копирует st(0) в dmem как двоично-десятичное

 

 

 

 

80-битное целое

 

 

 

 

 

 

fbstp dmem

 

Выталкивает st(0) в dmem как

 

 

 

 

 

 

 

 

двоично-десятичное 80-битное целое

 

 

 

 

 

 

Переименование регистров стека FPU

 

 

 

 

 

 

fxch

 

Меняет местами st(0) и st(1)

 

 

 

 

 

 

fxch %st(i)

 

Меняет местами st(0) и st(i)

 

 

 

 

 

 

Условное копирование,

CC 2 fe; ne; b=nae; be=na; ae=nb; a=nbe; u; nug

 

 

fcmovCC %st(i), %st(0)

 

st(i) ! st(0); если CC 2 flags

 

 

 

 

 

 

 

 

Управление тегами

 

 

 

 

 

 

ffree %st(i)

 

Помечает st(i) как свободный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команды пересылки и условия

 

Загрузка значений в стек FPU

 

 

 

 

 

 

Базовая арифметика (основной набор)

 

Выгрузка и пересылка значений

 

 

 

 

 

 

 

 

 

FPU

 

Основные арифметические операции

 

 

 

 

 

 

 

FPU (флаги)

 

Дополнительные арифметические и трансцендентные ко

 

 

МИЭТ, СПИНТех, КАИ

Команды, упоминаемые на прошедших лекциях

 

14 / 18

 

Основные арифметические

 

операции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Форма

src

 

dest

 

 

 

 

 

 

 

Стек FPU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fXXX

smem

smem

st(0)

 

 

 

 

не изменяется

 

 

 

 

 

fiXXX smem

smem

st(0)

 

 

 

 

не изменяется

 

 

 

 

 

fXXX

%st(i), %st(0)

st(i)

st(0)

 

 

 

 

не изменяется

 

 

 

 

 

fXXX

%st(0), %st(i)

st(0)

st(i)

 

 

 

 

не изменяется

 

 

 

 

 

fXXXp %st(0), %st(i)

st(0)

st(i) # st(i 1)

 

pop src = st(0)

 

 

 

 

 

fXXXp

st(0)

st(1) # st(0)

 

 

pop src = st(0)

 

 

 

 

XXX 2 fadd; sub; subr; mul; div; divrg

 

 

 

 

 

 

src;dest 2 fst(0); g

 

 

Команда

 

 

 

GAS

 

 

 

 

 

 

 

 

Intel

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fadd

(сложение)

 

 

 

st(0) +

=

dest + src

! dest

 

 

 

 

 

fsub

(вычитание)

 

 

st(0)

!

dest

 

dest src

!

dest

 

 

fsubr (обратное вычитание)

 

st(0)

!

dest

 

src dest

!

dest

 

 

fmul

(умножение)

 

 

 

st(0)

=

dest src

! dest

 

 

 

 

 

fdiv

(деление)

 

 

st(0)=

!

dest

 

dest=src

!

 

dest

 

 

fdivr (обратное деление)

 

 

=st(0)

!

dest

 

src=dest

!

 

dest

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команды пересылки и условия

 

Загрузка значений в стек FPU

 

 

 

 

 

 

 

 

 

Базовая арифметика (основной набор)

 

Выгрузка и пересылка значений

 

 

 

 

 

 

 

 

 

 

 

 

 

FPU

 

Основные арифметические операции

 

 

 

 

 

 

 

FPU (флаги)

 

Дополнительные арифметические и трансцендентные ко

МИЭТ, СПИНТех, КАИ Команды, упоминаемые на прошедших лекциях 15 / 18

Дополнительные арифметические и трансцендентные команды

Команда

Операнды

 

 

 

Результат

 

 

 

 

 

 

 

 

 

 

fabs

x = st(0)

 

jxj

 

y st(0)

операнды

fptan

x = st(0)

 

tg(x) y st(1)

fsqrt

x = st(0)

 

p

 

 

 

y st(0)

 

 

x

 

 

 

 

 

1

 

y st(0)

 

 

 

 

 

замещает

fsincos

x = st(0)

y = st(1)

sin(x) y st(1)

fpatan

x = st(0);

азимут

(x;y)

y st(0)

 

 

 

 

cos(x) y st(0)

 

 

 

 

 

 

 

 

fsin

x = st(0)

 

sin(x)

 

y st(0)

результат

fyl2x

x = st(0) > 0; y = st(1)

y log2(x)

y st(0)

fcos

x = st(0)

 

cos(x)

 

y st(0)

 

fscale

x = st(0);

y = st(1)

xx 2byc ! st(0); st(1) = y

 

f2xm1

x = st(0) 2 ( 1; +1)

2 1

 

y st(0)

 

 

 

 

y

fyl2xp1

x = st(0) 0; y = st(1)

y log2(x + 1) y st(0)

fprem1

x = st(0);

y = st(1)

x mod y

 

y st(0)

 

Команды пересылки и условия

Загрузка значений в стек FPU

Базовая арифметика (основной набор)

Выгрузка и пересылка значений

FPU

Основные арифметические операции

FPU (флаги)

Дополнительные арифметические и трансцендентные ко

Соседние файлы в папке АВС