Ich suche nach Code mit der Assemblersprache für Microblaze und weiß nicht, wie man ein Allzweckregister mit einer 32-Bit-Nummer lädt. Ich habe den Befehlssatz durchlaufen, sehe aber nur 16-Bit-Sofortwerte, die geladen werden können.Wie man einen 32-Bit-Wert in ein Register mit Microblame-Assembly lädt
Kann jemand ein Beispiel dafür geben, wie dies zu tun ist.
konnte ich
shi r8 r0 %0 /* where %0 is to the top 16 bits of a variable */
then shift it ?
and then load r8 bottom bytes?
Ich bin verwirrt verwendet. Jede Hilfe, um mich in die richtige Richtung zu lenken, wäre großartig.
Google sagt, Microblaze ist eine 32-Bit-RISC-Architektur. Eine 32-Bit-Konstante würde ein ganzes Befehlswort aufnehmen, wobei keine Bits für einen Opcode oder ein Ziel verbleiben. Wie bei allen anderen Architekturen mit fester Befehlsgröße benötigen Sie mehrere Anweisungen. Die meisten ISAs haben speziell dafür eine Anleitung, die das Zusammenführen von oberen und unteren Hälften erleichtert. Assembler haben oft eine Pseudo-Op, die ein 32-Bit-Argument akzeptiert und beide Anweisungen ausgibt. Aber ich weiß eigentlich nichts über Microblaze. –