Программирование в машинных кодах и на языке ассемблера 1993 г.

Таблица 3 - система команд встроенного калькулятора.


3. СИСТЕМА КОМАНД КАЛЬКУЛЯТОРА

Таблица 3.

Код

Команда

Содержимое вершины стека

Нарушение регистров

Назначение команды

до

после

00 s

jump true

x

-

-

Выполняется относительный переход на s шагов, если x имеет значение TRUE.

01

exchange

x,y

y,x

-

Меняются местами два числа на вершине стека

02

delete

x

Верхнее число удаляется со стека

03

subtract

x,y

x-y

-

Вычитание

04

multiply

x,y

x*y

-

Умножение

05

divide

x,y

x/y

-

Деление

06

power

x,y

xAy

B,M0...M3

Возведение в степень

07

or

x,y

TRUE или FALSE

Логическое "ИЛИ"

08

n and

x,y

TRUE/ FALSE

Логическое "И" для чисел

Код

Команда

Содержимое вершины стека

Нарушение регистров

Назначение команды

до

после

07

or

x,y

TRUE или FALSE

-

Логическое "ИЛИ"

08

n and

x,y

TRUE/ FALSE

-

Логическое "И" для чисел

09

n le

x,y

TRUE/ FALSE

"МЕНЬШЕ ИЛИ РАВНО" В рег-ре В д.б.0 9

0A

n ge

x,y

TRUE/ FALSE

"БОЛЬШЕ ИЛИ РАВНО" В рег-ре В д.б.0A

0B

n ne

x,y

TRUE/ FALSE

-

"НЕ РАВНО" В рег-ре В д.б.0В

0C

n gt

x,y

TRUE/ FALSE

"БОЛЬШЕ"

В рег-ре В д.б.0С

0D

n lt

x,y

TRUE/ FALSE

-

"МЕНЬШЕ"

В рег-ре В д.б.0D

0E

n eq

x,y

TRUE/ FALSE

-

"РАВНО"

В рег-ре В д.б.0E

0F

add

x,y

x+y

-

Сложение (для чисел)

10

s and

x$ , y

TRUE/ FALSE

Логическое "И" для стринга и числа

11

s le

x$,y$

TRUE/ FALSE

"МЕНЬШЕ ИЛИ РАВНО" В регистре В д.б.11

12

s ge

x$,y$

TRUE/ FALSE

"БОЛЬШЕ ИЛИ РАВНО" В регистре В д.б.12

13

s ne

x$,y$

TRUE/ FALSE

"НЕ РАВНО" В регистре В д.б.13

14

s gt

x$,y$

TRUE/ FALSE

"БОЛЬШЕ"

В рег-ре В д.б.14

15

s lt

x$,y$

TRUE/ FALSE

"МЕНЬШЕ"

В рег-ре В д.б.15

16

s eq

x$,y$

TRUE/ FALSE

"РАВНО"

В рег-ре В д.б.16

17

s add

x$,y$

x$ + y$

-

Слияние стрингов

18

val$

x$

val$ x $

Расчет x$ без ограничительных кавычек как стрингового выражения. в рег-ре В д.б.18

19

usr s

x$

usr x$

-

Определение адреса

Код

Команда

Содержимое

Нарушение

Назначение команды

вершины стека

регистров

до

после

символа графики поль

зователя, установлен-

ного для клавиши с

символом x$.

1A

read in

x

inkey$#x

-

Определение символа,

поступающего от канала

подключенного к потоку

V1

1B

negate

x

-x

-

x.

Изменение знака на

противоположный

code

x$

code x$

-

Определение кода

символа.

1D

val

x$

val x$

-

Расчет x$ без ограни-

чительных кавычек как

числового выражения.

В регистре B д.б .А

1E

len

x$

len x $

-

Определение длины

стринга.

1F

sin

x

sin x

B,M0 .

.M2

Вычисление синуса

20

cos

x

cos x

B,M0 .

.M2

Вычисление косинуса

21

tan

x

tan x

B,M0 .

.M2

Вычисление тангенса

22

asn

x

asn x

B,M0 .

.M2

Вычисление тангенса

23

acs

x

acs x

B,M0 .

.M2

Вычисление арккосинуса

24

atn

x

atn x

B,M0 .

.M2

Вычисление арктангенса

25

ln

x

н X

B,M0 .

.M2

Вычисление натурально-

го логарифма

26

exp

x

exp x

B,M0 .

.M3

Вычисление e в степени

x. Здесь e - основание

натуральных логарифмов

27

int

x

int(x)

M0

Преобразование дейст-

вительного числа в

целое. Округление вы

полняется вниз.

28

sqr

x

sqr(x)

B,M0 .

.M3

Вычисление корня квад-

ратного

Код

Команда

Содержимое вершины стека

Нарушение регистров

Назначение команды

до

после

8 n

series n

x

Pn(x)

B,M0..

.N2

Вычисление многочлена Чебышева n-го порядка (Применяется при расчетах алгебраических и тригонометрических функций)

9 n

series n+10

x

P (x) n-10

B,M0..

.M2

То же

AO

const zero

-

0

-

Помещает на стек 0

A1

const one

-

1

-

Помещает на стек 1

A2

const half

-

1/2

-

Помещает на стек 0.5

A3

const pi/2

-

1.57079

-

Помещает на стек одну вторую числа Пи

A4

const ten

-

10

-

Помещает на стек 10

Cn

store Mn

x

x

Копирование числа с вершины стека в n-ую ячейку памяти калькулятора. Нормально n=0...5, но можно установить n от 6 до 1F путем изменения содержимого системной переменной MEM.

Dn

Store

M(n+10)

x

x

То же, но n=10...1F

En

recall Mn

-

Mn

-

Вызов на стек данных из ячеек памяти

Fn

recall

M(n+10)

-

M (n + 10)

-

То же

29

sgn

x

sgn(x)

-

Определение знака

2A

abs

x

abs(x)

Определение абсолютной величины числа

2B

peek

x

peek (x)

Определение содержимого памяти по адресу

in

x

in x

Ввод числа с внешнего

?

порта x

2D

usr n

x

usr x

Вычисление процедуры, записанной в машинных кодах

Код

Команда

Содержимое вершины стека

Нарушение регистров

Назначение команды

до

после

2E

str$

x

str$ x

M0...M5

Преобразование числа

в соответствующий

стринг. В системной

переменной МЕМ должен

храниться адрес

MEMBOT

2F

chr$

x

chr$ x

-

Определение символа

числа по его коду

30

not

x

T или F

-

Условие "НЕ"

31

duplicate

x

x, x

-

Повторение числа на

вершине стека

32

mod,div

x,y

x-y*

M0

Выделение остатка от

int (x/y),

деления двух чисел и

int(x/y)

целого частного

33 s

jump

-

-

Безусловный переход

34

stk data

-

x

-

Помещает на стек чис

ло x; оно должно быть

записано в упакован

ной форме.

35 s

djnz

-

-

-

Если в регистре В не

0, то выполняется пе-

реход на s байтов, а

содержимое регистра В

уменьшается на 1.

36

lt zt

x

T или F

-

Условие "МЕНЬШЕ НУЛЯ"

37

gt z

x

T или F

-

Условие "БОЛЬШЕ НУЛЯ"

38

end calc

-

-

-

Выход из калькулятора

39

get argt

x

2*asn (sin

MO

Вычисление формулы

3A

truncate

x

sgn(x)*

-

Выделение целой части

int(abs x

числа (округление "к

)

нулю")

3B

execute B

-

-

-

Выполнение той коман-

ды калькулятора, код

которой содержится

в регистре В.

3C

e to fp

x

?

-

Не работает по причи-

не ошибки в ПЗУ

3D

restack

x

x

-

Перевод целого числа

в действительное




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Прогаммистам - Алгоритм.
Из неопубликованого - Анкета.
Новости - группа Anarchia переживает свои худшие времена.
body postbox - нам пишут.
Вступление - представляю вам свое первое электронное издание на Спектруме.

В этот день...   21 ноября