Hallo, guten Tag. Ich brauche bitte Hilfe für eine Umwandlung für den 6502 in ASM: ma=2^(7-(x and 7)) Wer kann mir Helfen , das bitte umzusetzen in ASM? Danke. Gruss
:
Verschoben durch Admin
Das ist eine Zweierpotenz. Sieh mal in Deinem Assemblerhandbuch nach, was der Befehl ASL macht.
So ungefähr. Es ist egal ob erst subtrahiert und dann maskiert, da der 6502 keinen barrel shifter hat muss eine Schleife um 1 bit zu einer Zeit schieben. Dabei schiebt man 1 mal mehr damit man zumindest 1 x durch die Schleife muss und schiebt das 1 bit aus dem carry in den A. Ergebnis in A. LDA #$07 CLC SBC x AND #$07 TAX INX LDA #$00 STC loop: ROL DEX BNE loop
Oder mit Tabelle (es sind ja nur 8 verschiedene Werte möglich):
1 | lda x |
2 | and #$07 |
3 | tax |
4 | lda tab,x ; in A steht nun das Ergebnis |
5 | |
6 | tab: .byte $80, $40, $20, $10, $08, $04, $02, $01 |
Oder MaWins Vorschlag etwas gestrafft:
1 | lda x |
2 | and #$07 |
3 | tax |
4 | lda #$00 |
5 | sec |
6 | loop: ror |
7 | dex |
8 | bmi loop |
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.