Продолжаем, комада ALU это команда для АЛУ

команды будут 4 видов 3х адресные, 2х адресные, 1н адресные, безадресные

3х адресные, код операции задается в 3х битном поле aluop
0 - add dst, left, right // dst = left + right
1 - adc dst, left, right // dst = left + right + flag
2 - sub dst, left, right // dst = left - right
3 - sbc dst, left, right // dst = left - right - flag
4 - and dst, left, right // dst = left & right
5 - or dst, left, right // dst = left | right
6 - xor dst, left, right // dst = left ^ right
7 - 2х адресные команды, код операции 2х адресных команд задает поле left

2х адресные команды:
0 - shr dst, right // dst = right >> 1, младший бит в флаг, старший 0
1 - ror dst, right // dst = right >> 1, младший бит в флаг, старший из флага
2 - add dst, right // dst = right + left left, используется как непосредственный параметр, только не от 0до7 а от 1 до 8
3 - sub dst, right // dst = right - left, left опять же imm
4 - == // flag = (dst == right)
5 - < // flag = (dst < right)
6 - > // flag = (dst > right)
7 - 1 адресная команда, код одноадресных команд в поле right

1но адресные команды
0 - neg // dst = 0-dst
1 - inv // dst = fffffffff^dst
2 - not // dst = !dst
3 - ==0 // dst==0
4 - <0 // dst < 0
5 - parity
6 - четность
7 - безадресные команды алу, код команды задает поле dst

безадресные команды
0 - set flag // flag = 1
1 - reset flag // flag = 0
2 - invert flag // flag = !flag
3..7 резерв

---------- Post added at 22:07 ---------- Previous post was at 22:06 ----------

Цитата Сообщение от Strijar Посмотреть сообщение
Не только в TOS и NOS как обычно?
да, 8 верхних элементов в регистрах, дальше уже к стеку идет оращение, добавление на вершину, выталкивает 8 регистр в стек

---------- Post added at 22:07 ---------- Previous post was at 22:07 ----------

а можно просто как с регистрами работать