4-bit CPU: система команд

4-битные микроконтроллеры и микропроцессоры (прошлое, настоящее, будущее)

Moderator: Lavr

User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

4-bit CPU: система команд

Post by Shaos »

Lavr wrote:Итоговая система команд выглядит следующим образом:
Image
для LDA/LDB/STA аргумент (младший ниббл) всегда 0?
никак нельзя SEL объеднить с ними, чтобы 2 команды не делать для копирования между регистрами?
и можно ли в SKIP комбинации флагов юзать?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:для LDA/LDB/STA аргумент (младший ниббл) всегда 0?
Аргумент любой, поскольку он ни на что не влияет...
Shaos wrote:никак нельзя SEL объеднить с ними, чтобы 2 команды не делать для копирования между регистрами?
В принципе можно, но поскольку всего 4 такта на EXECUTE, я побоялся конфликта на шине.
Я писал об этом тут ранее, никто меня в обратном не разубедил...

------Image

Так что пока оставил LDA/LDB/STA как есть...
Shaos wrote:и можно ли в SKIP комбинации флагов юзать?
4_bit_cpu2015big.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

И как оно будет работать, скажем если выбрать C, Z и NOT?
Я тут за главного - если что шлите мыло на me собака shaos точка net
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Re: 4-bit Processor

Post by petrenko »

~ Примерно так же, как и в PDP и в VAX :rotate:
( {op.c.}==0ABhex ) => якщо (C==0)&(Z==0) ,то =>SKIP~aka~(PC++++) ,инакше (PC+) , где можливо след.{op.c.}==JMP :wink:
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:И как оно будет работать, скажем если выбрать C, Z и NOT?
Работать будет в полном соответствии со схемой электрической принципиальной (большой).
Там что, плохо видно этот узел, который делает SKIP ? :obye:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

Lavr wrote:
Shaos wrote:И как оно будет работать, скажем если выбрать C, Z и NOT?
Работать будет в полном соответствии со схемой электрической принципиальной (большой).
Там что, плохо видно этот узел, который делает SKIP ? :obye:
ок - нашёл (верхня часть U13 и т.д.):
- если без NOT то хотя бы один из выбранных флагов должен быть 1, чтобы оно скипнулось
- если с NOT то хотя бы один из выбранных флагов должен быть 0, чтобы оно скипнулось
так?
тогда мне не понятно как работает SKIP 1111 - по идее он должен скипнуть, если хотя бы один 0 есть среди флагов C/Z/S, т.е. если все они будут установлены (C=1 Z=1 S=1), то оно нифига не скипнет?...

P.S. что такое PF, которое никуда из U13 не идёт?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:если все они будут установлены (C=1 Z=1 S=1), то оно нифига не скипнет?...
А так бывает? :roll:
Shaos wrote:P.S. что такое PF, которое никуда из U13 не идёт?
Ааааа! :D Ну так это я заложил для истинных нищебродов флаг "четности числа" Р - Parity Flag... :ebiggrin:

Если у человека не найдется микросхемы XOR в его нищебродском хозяйстве, тогда ему придется
довольствоваться лишь тремя SKIP-ами: SKIP C, SKIP Z и SKIP S.
Вот для таких нищебродов в утешение я и припас возможность реализовать SKIP Р! :roll:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

Lavr wrote:
Shaos wrote:если все они будут установлены (C=1 Z=1 S=1), то оно нифига не скипнет?...
А так бывает? :roll:
Эээ - ну по идее да - нуль не может быть отрицательным :oops:

P.S. А кстати зачем может понадобиться безусловный SKIP?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:А кстати зачем может понадобиться безусловный SKIP?...
Ну как есть безусловный JMP... a безусловный SKIP здесь достался в нагрузку от простоты схемотехники.
Но пригодиться может, я думаю...


Пробовал это всё на работе на 2-х машинах - пнях коре-дуо 2 ГГц. Работает афигительно классно!
Был удивлен работой эмулятора LCD 3310 - он даже случайное заполнение экрана при старте эмулирует! :o
Я на своем старом ноуте этого и не замечал... :esad:
Схема проца работоспособна до 1 МГц - дальше не тыкал, просто LCD начинает заполняться слишком шустро.

Так можно и "Теннис" попробовать перенести под этот проц. Ассемблерчик что-ли под него написать...
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

Я для своего RASM могу табличку опкодов накидать по быстрому...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:Я для своего RASM могу табличку опкодов накидать по быстрому...
Да - я помню, но в силу специфики проца есть некоторая непрятность ассемблера.
Компилятор должен понимать множественные ORG и уметь "прижать" кусок кода к ORG снизу.
Это из-за RST N и RET A...
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

Накидал :)

P.S. В силу специфики проца применяя RASM придётся вручную писать 256-байтовые сегменты, сохраняя их в разных A-файлах с разными ORG-ами...

P.P.S. Эх, однобайтный аргумент в RASM не предназначен для применения к нему меток - придётся исходники ковырять...

Code: Select all

\ TEST PROGRAM
    ORG 0
START:
    JMI_0 L3
    JMI_0 L2
    JMI_0 L1
    ADD
    SUB
    XOR
L1: RET_1
L2: RET_2
L3: RET_3
    JMP_0 START
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Кто бы мне вот это вопрос прояснил наконец бы... :o

А то я как ни сяду писать ассемблеры, он меня колбасит хуже всего... :esad:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 4-bit Processor

Post by Shaos »

Lavr wrote:Кто бы мне вот это вопрос прояснил наконец бы... :o

А то я как ни сяду писать ассемблеры, он меня колбасит хуже всего... :esad:
Ну как хочешь так и делай - стандартов то нет :)
У меня в RASM например вообще арифметика подобного плана не поддерживается...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 4-bit Processor

Post by Lavr »

Shaos wrote:Ну как хочешь так и делай - стандартов то нет :)
У меня в RASM например вообще арифметика подобного плана не поддерживается...
В приципе-то да... но ты представляешь, какое математическое выражение можно
наколбасить в 60 знакомест?
И оно должно понимать как метки, так и всякие эквивалентности! :o

Просто я хочу для себя как-то внести ясность... я писал письмо автору "Pretty 8080_Assembler",
но он тоже ответил уклончиво... :osad:
iLavr