PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Own Microcode ASM-Compiler



schwenk
09.07.2006, 00:03
Hab mir mit MMLogic (Digitalschaltungssimulationsprogramm) einen kleinen Microprozessor gebaut. Dieser funktioniert einwandfrei bloß die Programmierung im u-Code ist sehr müsam.
Gibt es ein programm in dem man einen Asm-Quellcode (oder einen Quellcode in höherer Sproche) in seinen eigenen u-code compillieren kann.

PS: Der u-Code müsste Zeilenweiße in einem Text-Dokument geschrieben sein.

PICture
09.07.2006, 12:09
Hallo schwenk!

Ich habe vor ein paar Jahren unter DOS in QBASIC ein Programm geschrieben, das aus einer Texdatei mit Befehlsatz und einer Textdatei mit Mnemonics (Quellcode) ein ausfürbares Programm in Maschinensprache erzeugt. Ich weiss nicht was u-Code ist und ob mein Programm für Dich nutzlich seien könnte.

MfG

schwenk
09.07.2006, 14:04
ja, ich denke sowas könnt ich brauchen.

Der u-Code is der "Hardware-Code" des Prozessors also hier eine HEX-Zahl die dann im Binärcode nurnoch als "Strom" vorhanden ist (also Strom,nicht Strom,nicht Strom.....)

Ich lad mal meinen aktuellen Stand der Dokumentation für's bessere Verständniss hoch.

PICture
09.07.2006, 14:37
Ich habe es schon verstanden, ich kenne den Begriff als OpCode. Mein Programm erzeugt eine Datei die nur aus Hexzahlen besteht. Ich habe sie immer direkt aus der Festplatte, durch LPT in den Speicher des Z80 und später 8051 übertragen. Mit welchem Programm kann ich Deine Dokumentation öffnen ?

Im Code ist ein Beispiel der Befehlsatzdatei vom 8051 für mein Assembler.

MfG

8051

11õ ACALL *
31õ ACALL *
51õ ACALL *
71õ ACALL *
91õ ACALL *
B1õ ACALL *
D1õ ACALL *
F1õ ACALL *

28 ADD A,R0
29 ADD A,R1
2A ADD A,R2
2B ADD A,R3
2C ADD A,R4
2D ADD A,R5
2E ADD A,R6
2F ADD A,R7
26 ADD A,@R0
26 ADD A,@R1
24* ADD A,#*
25* ADD A,*

38 ADDC A,R0
39 ADDC A,R1
3A ADDC A,R2
3B ADDC A,R3
3C ADDC A,R4
3D ADDC A,R5
3E ADDC A,R6
3F ADDC A,R7
36 ADDC A,@R0
37 ADDC A,@R1
34* ADDC A,#*
35* ADDC A,*

01õ AJMP *
21õ AJMP *
41õ AJMP *
61õ AJMP *
81õ AJMP *
A1õ AJMP *
C1õ AJMP *
E1õ AJMP *

58 ANL A,R0
59 ANL A,R1
5A ANL A,R2
5B ANL A,R3
5C ANL A,R4
5D ANL A,R5
5E ANL A,R6
5F ANL A,R7
56 ANL A,@R0
57 ANL A,@R1
54* ANL A,#*
55* ANL A,*
B0* ANL C,/*
82* ANL C,*
52* ANL *,A
53*~ ANL *,#*

B4*% CJNE A,#*,*
B5*% CJNE A,*,*
B8*% CJNE R0,#*,*
B9*% CJNE R1,#*,*
BA*% CJNE R2,#*,*
BB*% CJNE R3,#*,*
BC*% CJNE R4,#*,*
BD*% CJNE R5,#*,*
BE*% CJNE R6,#*,*
BF*% CJNE R7,#*,*
B6*% CJNE @R0,#*,*
B7*% CJNE @R1,#*,*

E4 CLR A
C3 CLR C
C2* CLR *

F4 CPL A
B3 CPL C
B2* CPL *

D4 DA A

14 DEC A
18 DEC R0
19 DEC R1
1A DEC R2
1B DEC R3
1C DEC R4
1D DEC R5
1E DEC R6
1F DEC R7
16 DEC @R0
17 DEC @R1
15* DEC *

84 DIV AB

D8% DJNZ R0,*
D9% DJNZ R1,*
DA% DJNZ R2,*
DB% DJNZ R3,*
DC% DJNZ R4,*
DD% DJNZ R5,*
DE% DJNZ R6,*
DF% DJNZ R7,*
D5*% DJNZ *,*

04 INC A
08 INC R0
09 INC R1
0A INC R2
0B INC R3
0C INC R4
0D INC R5
0E INC R6
0F INC R7
06 INC @R0
07 INC @R1
A3 INC DPTR
05* INC *

20*% JB *,*
10*% JBC *,*
40% JC *

73 JMP @A+DPTR

30*% JNB *,*
50% JNC *
70% JNZ *
60% JZ *

12~* LCALL *
02~* LJMP *

E8 MOV A,R0
E9 MOV A,R1
EA MOV A,R2
EB MOV A,R3
EC MOV A,R4
ED MOV A,R5
EE MOV A,R6
EF MOV A,R7
E6 MOV A,@R0
E7 MOV A,@R1
74* MOV A,#*
E5* MOV A,*
A2* MOV C,*
90~* MOV DPTR,#*
F8 MOV R0,A
F9 MOV R1,A
FA MOV R2,A
FB MOV R3,A
FC MOV R4,A
FD MOV R5,A
FE MOV R6,A
FF MOV R7,A
78* MOV R0,#*
79* MOV R1,#*
7A* MOV R2,#*
7B* MOV R3,#*
7C* MOV R4,#*
7D* MOV R5,#*
7E* MOV R6,#*
7F* MOV R7,#*
A8* MOV R0,*
A9* MOV R1,*
AA* MOV R2,*
AB* MOV R3,*
AC* MOV R4,*
AD* MOV R5,*
AE* MOV R6,*
AF* MOV R7,*
F6 MOV @R0,A
F7 MOV @R1,A
76* MOV @R0,#*
77* MOV @R1,#*
A6* MOV @R0,*
A7* MOV @R1,*
F5* MOV *,A
92* MOV *,C
88* MOV *,R0
89* MOV *,R1
8A* MOV *,R2
8B* MOV *,R3
8C* MOV *,R4
8D* MOV *,R5
8E* MOV *,R6
8F* MOV *,R7
86* MOV *,@R0
87* MOV *,@R1
75*~ MOV *,#*
85~* MOV *,*

93 MOVC A,@A+DPTR
83 MOVC A,@A+PC

E2 MOVX A,@R0
E3 MOVX A,@R1
E0 MOVX A,@DPTR
F2 MOVX @R0,A
F3 MOVX @R1,A
F0 MOVX @DPTR,A

A4 MUL AB

00 NOP

48 ORL A,R0
49 ORL A,R1
4A ORL A,R2
4B ORL A,R3
4C ORL A,R4
4D ORL A,R5
4E ORL A,R6
4F ORL A,R7
46 ORL A,@R0
47 ORL A,@R1
44* ORL A,#*
45* ORL A,*
A0* ORL C,/*
72* ORL C,*
42* ORL *,A
43*~ ORL *,#*

D0* POP *

C0* PUSH *

22 RET
32 RETI

23 RL A
33 RLC A
03 RR A
13 RRC A

D3 SETB C
D2* SETB *

80% SJMP *

98 SUBB A,R0
99 SUBB A,R1
9A SUBB A,R2
9B SUBB A,R3
9C SUBB A,R4
9D SUBB A,R5
9E SUBB A,R6
9F SUBB A,R7
96 SUBB A,@R0
97 SUBB A,@R1
94* SUBB A,#*
95* SUBB A,*

C4 SWAP A

C8 XCH A,R0
C9 XCH A,R1
CA XCH A,R2
CB XCH A,R3
CC XCH A,R4
CD XCH A,R5
CE XCH A,R6
CF XCH A,R7
C6 XCH A,@R0
C7 XCH A,@R1
C5* XCH A,*
D6 XCHD A,@R0
D7 XCHD A,@R1

68 XRL A,R0
69 XRL A,R1
6A XRL A,R2
6B XRL A,R3
6C XRL A,R4
6D XRL A,R5
6E XRL A,R6
6F XRL A,R7
66 XRL A,@R0
67 XRL A,@R1
64* XRL A,#*
65* XRL A,*
62* XRL *,A
63*~ XRL *,#*

pebisoft
09.07.2006, 15:40
hallo schwenk, ich benutze auch mmlogic.
dein programm ist sehr interessant, einen prozessor zu simulieren, stell dein programm mal als zip rein.

mfg

schwenk
10.07.2006, 13:54
Also hier is mein Simulierter Microprozessor !
Hab noch ein Testprogramm (muss man einfach nur in den Speicher "laden) mit den Wichtigsen Befehlen beigefügt
(Is noch im HEX Code geschrieben ](*,) )
Der Prozessor ist auf Seite 2 der Datei. Auf Seite 1 sind seine Wesentlichen Bestandteile

Hoffe das jemand was damit anfangen kann und die Dokumentation evt. so erweitern kann das er leichter verständlich ist.

PS: Die Frage ob es ein Programm gibt das aus ASM-Code einen HEX-Code für meinen Mikoprozessor "herstellt" besteht immernoch vorallem weil ich bei meinem Proz. einen ASM-Befehl warscheinlich in 5 HEX-Befehle aufteilen muss. (Bsp. Siehe Test.txt Programm)

PICture
10.07.2006, 14:06
Hallo schwenk!

Dann brauche ich nicht Deinen Prozessor zu "studieren", da mein Assembler für nur bis zu max. 4-Byte lange Befehle (Z80) geschrieben wurde.

MfG

schwenk
10.07.2006, 14:29
Meine "Befehle" (die des UpCodes) sind aber nur 8-Bit breit.
Bloß müsste man bei den ASM-Befehlen bereits Makros einbauen können um das ganze zu erleichtern !!!

PS: Die Doku ist in Power Point gemacht

schwenk
11.07.2006, 22:26
@PICTure:

Kannstu des Prog mal hochlden vlt. kann ich trotzdem was damit anfangen.

PICture
12.07.2006, 02:50
Hallo schwenk!

Ich habe nur das Quellistig in QB gefunden. Es sollte unter QB Interpreter laufen. In eine .exe Datei kann man das mit QB Compiler umwandeln. Viel Spass damit. :)

MfG