nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Aug 2018 04:08



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

Joined: 09 Jan 2003 00:22
Posts: 16841
Location: Colorado
Reply with quote
Shaos wrote:
Накидал :)

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

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

На самом деле предназначен, но в варианте для 8086 когда однобайтовая метка считается относительным смещением - вставил небольшой хак в rasm.c и всё получилось :)
Shaos wrote:
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


Запуск RASM LAVR4A.A -tLAVR4A.TAB генерит BIN и такой LST:

Code:
This listing generated by RoboAssembler v2.5 <me@shaos.net>


0000 E0 START:   JMI_0 L3
0001 0B
0002 E0      JMI_0 L2
0003 0A
0004 E0      JMI_0 L1
0005 09
0006 B0      ADD
0007 B4      SUB
0008 B1      XOR
0009 81 L1: RET_1
000A 82 L2: RET_2
000B 83 L3:    RET_3
000C F0      JMP_0 START
000D 00



L1      0009
L2      000A
L3      000B
START      0000


Версия 2.5 в исходниках лежит на SourceForge (вместе с новым lavr4a.tab, который я тут цеплял чуть раньше):

http://nedopc.cvs.sourceforge.net/viewvc/nedopc/src/rasm/

P.S. Приаттачиваю пересобранную досовскую версию вместе со всем необходимым


Attachments:
File comment: DOS32 version of RASM v2.5
RASM-D32.ZIP [38.55 KiB]
Downloaded 32 times

_________________
:eugeek: https://twitter.com/Shaos1973
13 Dec 2015 14:45
Profile WWW
Doomed

Joined: 10 Mar 2012 17:21
Posts: 544
Location: РФ
Reply with quote
Lavr wrote:
... a безусловный SKIP здесь достался в нагрузку от простоты схемотехники.
Но пригодиться* может, я думаю...
...
*_Может.
Например , вот ежели вдруг нужна доп.точка входа, такая, что при ентом входе какая-нибудь команда должна выполниться, а при более раннем заходе она не должна выполниться - вот тогда и пригодится безусловный SKIP :rotate:


14 Dec 2015 07:45
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16841
Location: Colorado
Reply with quote
petrenko wrote:
Lavr wrote:
... a безусловный SKIP здесь достался в нагрузку от простоты схемотехники.
Но пригодиться* может, я думаю...
...
*_Может.
Например , вот ежели вдруг нужна доп.точка входа, такая, что при ентом входе какая-нибудь команда должна выполниться, а при более раннем заходе она не должна выполниться - вот тогда и пригодится безусловный SKIP :rotate:


Хитрый трюк - годно :)

_________________
:eugeek: https://twitter.com/Shaos1973


14 Dec 2015 08:38
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
petrenko wrote:
Например , вот ежели вдруг нужна доп.точка входа, такая, что при ентом входе какая-нибудь команда должна выполниться, а при более раннем заходе она не должна выполниться - вот тогда и пригодится безусловный SKIP :rotate:

Хитрый трюк - годно :)

Собственно говоря, этот "Хитрый трюк" и безусловный JMP выполнит, но безусловный SKIP короче и шустрее.

_________________
iLavr


14 Dec 2015 08:49
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16841
Location: Colorado
Reply with quote
Я правильно понимаю, что SKIP пропускает не только JMP, но и любую пару коротких команд, идущих после него?

_________________
:eugeek: https://twitter.com/Shaos1973


14 Dec 2015 09:19
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
SKIP пропускает не только JMP, но и любую пару коротких команд, идущих после него?

Именно так и есть. Но безусловный JMP может и пяток таких команд "обогнуть" - это я просто к слову. 8)

_________________
iLavr


14 Dec 2015 09:25
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16841
Location: Colorado
Reply with quote
Lavr wrote:
Shaos wrote:
SKIP пропускает не только JMP, но и любую пару коротких команд, идущих после него?

Именно так и есть. Но безусловный JMP может и пяток таких команд "обогнуть" - это я просто к слову. 8)


но SKIP короче т.к. не требует адреса :)
и перемещаем по той же самой причине ;)

_________________
:eugeek: https://twitter.com/Shaos1973


14 Dec 2015 09:35
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
но SKIP короче т.к. не требует адреса :)

Ну, вроде как я сам об этом чуть ранее и упомянул, разве нет? :o
Lavr wrote:
...но безусловный SKIP короче и шустрее.

Shaos wrote:
и перемещаем по той же самой причине ;)

Что перемещаем-то ? :roll:

_________________
iLavr


14 Dec 2015 09:53
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16841
Location: Colorado
Reply with quote
код перемещаем :)
т.е. не привязан к конкретным адресам

_________________
:eugeek: https://twitter.com/Shaos1973


14 Dec 2015 10:01
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 24 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 1 guest


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.