-         

Ergebnis 1 bis 10 von 10

Thema: Own Microcode ASM-Compiler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2006
    Ort
    Nbg
    Alter
    28
    Beiträge
    17

    Own Microcode ASM-Compiler

    Anzeige

    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.

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.979
    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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2006
    Ort
    Nbg
    Alter
    28
    Beiträge
    17
    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.
    Angehängte Dateien Angehängte Dateien

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.979
    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
    Code:
     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 *,#*

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo schwenk, ich benutze auch mmlogic.
    dein programm ist sehr interessant, einen prozessor zu simulieren, stell dein programm mal als zip rein.

    mfg

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2006
    Ort
    Nbg
    Alter
    28
    Beiträge
    17

    Hier isser ;-)

    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)
    Angehängte Dateien Angehängte Dateien

  7. #7
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.979
    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

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2006
    Ort
    Nbg
    Alter
    28
    Beiträge
    17
    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

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    09.01.2006
    Ort
    Nbg
    Alter
    28
    Beiträge
    17
    @PICTure:

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

  10. #10
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.979
    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
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •