@@ -60,7 +60,7 @@
|
||||
- `>r` - снять элемент с `Data Stack` и положить на `Return Stack`
|
||||
## Подробнее про умножение и деление
|
||||
### `+*`
|
||||
- Как работает умноежение чисел в двоичной системе (`A*S`): смотрим на каждый бит числа A, если бит 1, то прибавляем S к результату, если бит 0, то пропускаем, в конце сдвигаем результат
|
||||
- Как работает умножение чисел в двоичной системе (`A*S`): смотрим на каждый бит числа A, если бит 1, то прибавляем S к результату, если бит 0, то пропускаем, в конце сдвигаем результат
|
||||
- Как использует эта команда данные
|
||||
1. Регистр `A` - множитель
|
||||
2. `S` (второй элемент стека данных) - множимое
|
||||
|
||||
@@ -63,6 +63,6 @@
|
||||
### Сдвиги
|
||||
- Если сдвинуть числа больше чем на 32, то просто зануление - для сдвига влево
|
||||
- Для сдвигов вправо, если исходное число было положительным - зануление
|
||||
- Для сдвигов вправо, если иходное число было отрицательным - `-1`
|
||||
- Для сдвигов вправо, если исходное число было отрицательным - `-1`
|
||||
### Переходы
|
||||
- В отличие от БЭВМ переходы тут работают иначе. Переходы, которые сравнивают с нулем, учитывают только знак (в бэвм учитывали еще `n+v(mod2)`). Поэтому надо самому реализовывать переходы, которые учитывают специфику доп. кода через `bvz+bltz` например
|
||||
Reference in New Issue
Block a user