Bits lesen/setzen



  • Spongy schrieb:

    LD A,$20
    LD ($FF00),A
    LD A,($FF00)
    LD A,($FF00)
    CPL
    AND $0F
    

    Setzt kein einzelnes Bit.
    Wenn $20 (Hex = 20h, Dezimal = 32) in den unteres Teil des AF Registers (A, Akkumulator) geschrieben wird steht darin 00100000.

    Was da mit Bit 5 = $20 gemeint ist versteh ich nicht so wirklich.

    Na, es klappr mit dieser Bitnummerierung und nicht anders.
    76543210
    00100000
    LD A,$20 setzt genau ein Bit und zwar das Bit 5.

    Spongy schrieb:

    Der LD OpCode weist aber nur einem Register einen bestimmten Wert oder ein anderes Register zu (So ähnlich wie der mov Befehl im x86/x64 Assembler).
    Die CPU selber besitzt auch glaube ich nur wenige OpCodes die gezielt ein Bit testen.
    Ich brauche die Funktionen öfter wenn ich Flags im Flag-Register (F von AF) setzen muss.

    Nein, meine Bytes haben keine 9 Bits, ich meinte 12345678 🙂

    Mit der üblichen Bitnummerierung (76543210) würdest Du weniger Ärger haben, denn sowohl die Dokumentation von x86/x64 als auch die zum GameBoy benutzen diese Nummerierung.
    Siehe auch Seiten die 99ff. Da wird oft von Bit 0 oder Bit 7 gesprochen und mit (76543210) ergibt das für mich am meisten Sinn.



  • Okay, ich werde dann die Funktionen von wikipedia benutzen und erstmal die Emulation soweit programmieren, dass ich diese Funktionen das erste mal brauche.

    Wenn es dann noch fragen geben sollte eröffne ich ein neues Thread.

    Danke für die Hilfe!



  • Es heißt "der Thread".



  • 314159265358979 schrieb:

    Es heißt "der Thread".

    Unser SW-Chef sagt tatsächlich immer "die Thread" (und ignoriert bei der Aussprache völlig das 'h'). 😃



  • Unser Lehrer im Programmieren sagt immer "Sread".


Anmelden zum Antworten