nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:29



Reply to topic  [ 24 posts ]  Go to page 1, 2  Next
4-bit CPU: система команд 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
Итоговая система команд выглядит следующим образом:
Image

для LDA/LDB/STA аргумент (младший ниббл) всегда 0?
никак нельзя SEL объеднить с ними, чтобы 2 команды не делать для копирования между регистрами?
и можно ли в SKIP комбинации флагов юзать?

_________________
:dj: https://mastodon.social/@Shaos


10 Dec 2015 13:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
для LDA/LDB/STA аргумент (младший ниббл) всегда 0?

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

В принципе можно, но поскольку всего 4 такта на EXECUTE, я побоялся конфликта на шине.
Я писал об этом тут ранее, никто меня в обратном не разубедил...

------Image

Так что пока оставил LDA/LDB/STA как есть...

Shaos wrote:
и можно ли в SKIP комбинации флагов юзать?

Attachment:
4_bit_cpu2015big.gif
4_bit_cpu2015big.gif [ 7.14 KiB | Viewed 13013 times ]

_________________
iLavr


10 Dec 2015 15:55
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
И как оно будет работать, скажем если выбрать C, Z и NOT?

_________________
:dj: https://mastodon.social/@Shaos


10 Dec 2015 17:10
Profile WWW
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
~ Примерно так же, как и в PDP и в VAX :rotate:
( {op.c.}==0ABhex ) => якщо (C==0)&(Z==0) ,то =>SKIP~aka~(PC++++) ,инакше (PC+) , где можливо след.{op.c.}==JMP :wink:


11 Dec 2015 01:19
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
И как оно будет работать, скажем если выбрать C, Z и NOT?

Работать будет в полном соответствии со схемой электрической принципиальной (большой).
Там что, плохо видно этот узел, который делает SKIP ? :obye:

_________________
iLavr


11 Dec 2015 03:54
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
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 не идёт?

_________________
:dj: https://mastodon.social/@Shaos


11 Dec 2015 08:44
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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


11 Dec 2015 11:23
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
если все они будут установлены (C=1 Z=1 S=1), то оно нифига не скипнет?...

А так бывает? :roll:

Эээ - ну по идее да - нуль не может быть отрицательным :oops:

P.S. А кстати зачем может понадобиться безусловный SKIP?...

_________________
:dj: https://mastodon.social/@Shaos


11 Dec 2015 11:27
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
А кстати зачем может понадобиться безусловный SKIP?...

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


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

Так можно и "Теннис" попробовать перенести под этот проц. Ассемблерчик что-ли под него написать...

_________________
iLavr


11 Dec 2015 11:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Я для своего RASM могу табличку опкодов накидать по быстрому...

_________________
:dj: https://mastodon.social/@Shaos


11 Dec 2015 11:59
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Я для своего RASM могу табличку опкодов накидать по быстрому...

Да - я помню, но в силу специфики проца есть некоторая непрятность ассемблера.
Компилятор должен понимать множественные ORG и уметь "прижать" кусок кода к ORG снизу.
Это из-за RST N и RET A...

_________________
iLavr


11 Dec 2015 12:10
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Накидал :)

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

P.P.S. Эх, однобайтный аргумент в RASM не предназначен для применения к нему меток - придётся исходники ковырять...
Code:
\ 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


Attachments:
File comment: Lavr4A.tab
LAVR4A.ZIP [1008 Bytes]
Downloaded 414 times

_________________
:dj: https://mastodon.social/@Shaos
11 Dec 2015 12:19
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Кто бы мне вот это вопрос прояснил наконец бы... :o

А то я как ни сяду писать ассемблеры, он меня колбасит хуже всего... :esad:

_________________
iLavr


11 Dec 2015 12:34
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
Кто бы мне вот это вопрос прояснил наконец бы... :o

А то я как ни сяду писать ассемблеры, он меня колбасит хуже всего... :esad:


Ну как хочешь так и делай - стандартов то нет :)
У меня в RASM например вообще арифметика подобного плана не поддерживается...

_________________
:dj: https://mastodon.social/@Shaos


11 Dec 2015 12:53
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Ну как хочешь так и делай - стандартов то нет :)
У меня в RASM например вообще арифметика подобного плана не поддерживается...

В приципе-то да... но ты представляешь, какое математическое выражение можно
наколбасить в 60 знакомест?
И оно должно понимать как метки, так и всякие эквивалентности! :o

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

_________________
iLavr


11 Dec 2015 13:00
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 24 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.