Var är det lämpligt att diskutera .asm kod?
Var är det lämpligt att diskutera .asm kod?
Sist jag la upp lite .asm kod här, blev det lite kritik. Långa listningar uppskattades inte. Var är det lämpligt att diskutera .asm kod? Knåpar med 6502, 6510, atmega, x86 och kanske några till. Håller på att plocka ut bit's ur en byte(hela minnet), för att blinka en LED. Morse eller dyl. Blir säkert ljudpulser med. Skriver i en 6502 emulator, och avrstudio parallellt. Vågar jag lägga upp min kod här för kritik? Kritik som effektiviserar tar jag gärna.
Re: Var är det lämpligt att diskutera .asm kod?
Att det blir långa listor, kan bero på om man lägger all kod rakt in i inlägget.
Om du använder [ Code ] [ /code ] borde allt läggas fint i en textruta och inte göra inlägget så långt.
Jag tycker att du bord kunna lägga ditt inlägg i denna katogorin.
Om du använder [ Code ] [ /code ] borde allt läggas fint i en textruta och inte göra inlägget så långt.
Jag tycker att du bord kunna lägga ditt inlägg i denna katogorin.
Re: Var är det lämpligt att diskutera .asm kod?
Testar.
Kod: Markera allt
; Plocka bits från en byte
.ORG $1000
jmp $1010
alfa: .DB 0,1,"01234567",0,0,0
LDY #157 ; Byte in
TYA
sec ; Set carry??
SBC #128 ; Sub bit7
bmi hopp100 ; testa om "1"
jsr on ; aktivera om "1"
hopp100: BPL hopp1 ; Testa om "0"
jsr off ; deaktivera om "0"
adc #128 ; Åter till 0 om den var 0
hopp1: SBC #64 ;-----
bmi hopp101 ; testa om "1"
jsr on ; aktivera om "1"
hopp101: BPL hopp2 ; Testa om "0"
jsr off ; deaktivera om "0"
adc #64 ;-----
hopp2: SBC #32 ;se ovan
bmi hopp102
jsr on
hopp102: BPL hopp3
jsr off
ADC #32 ;-----
hopp3: SBC #16
bmi hopp103
jsr on
hopp103: BPL hopp4
jsr off
ADC #16 ;-----
hopp4: SBC #8
bmi hopp107
jsr on
hopp107: BPL hopp5
jsr off
ADC #8
hopp5: SBC #4 ;-----
bmi hopp108
jsr on
hopp108: BPL hopp6
jsr off
ADC #4
hopp6: SBC #2 ;-----
bmi hopp109
jsr on
hopp109: BPL hopp7
jsr off
ADC #2
hopp7: SBC #1 ;-----
bmi hopp110
jsr on
hopp110: BPL hopp8
jsr off
ADC #1 ;-----
hopp8:
RTS
off;
LDX #$00
;dec $d020 För skärmblink
RTS
on:
LDX #$01
;inc $d020 För skärmblink
RTS
Re: Var är det lämpligt att diskutera .asm kod?
Provade först Code. Sen klippte jag och klistrade [ Code ]. Och till sist såg jag knappen Code ovan
när man skriver ett inlägg.

Re: Var är det lämpligt att diskutera .asm kod?
Att använda code taggarna kan ju inte vara problemet.
Det brukar vara ett större problem att åstakomma en
vettig fråga samt en kod som är läsbar...
Jag fattar inte vad tråden handlar om, om jag ska vara ärlig....
Det brukar vara ett större problem att åstakomma en
vettig fråga samt en kod som är läsbar...

Jag fattar inte vad tråden handlar om, om jag ska vara ärlig....
Re: Var är det lämpligt att diskutera .asm kod?
Klippte och klistrade. Det ser ine likt ut hör på forumet som i min 6502 emulator. Där måste vissa rader börja med space. Lite tom rader här och var skulle kanske inte skada. Vilket jag googlade fram som indentering.
Känns som det borde gå att optimera en del, nästan samma rader upprepas 8 gånger.... Eftersom kommandot BIT inte finns i ovan processorer, provade jag en annan variant.
sodjan: Jag förstår inte ditt inlägg.
Känns som det borde gå att optimera en del, nästan samma rader upprepas 8 gånger.... Eftersom kommandot BIT inte finns i ovan processorer, provade jag en annan variant.
sodjan: Jag förstår inte ditt inlägg.
Re: Var är det lämpligt att diskutera .asm kod?
Det jag menar är att, att använda code-taggarna löser ju i sig inget.
Det är ju självklart att man gör det när man postar (t.ex) programkod.
Det svåra är istället att åstakomma en vettig fråga.
Men varför denna tråd? Det är väl bara att köra på !?
> Det ser ine likt ut hör på forumet som i min 6502 emulator.
*Oftast* beror det på tabbar...
Det är ju självklart att man gör det när man postar (t.ex) programkod.
Det svåra är istället att åstakomma en vettig fråga.
Men varför denna tråd? Det är väl bara att köra på !?
> Det ser ine likt ut hör på forumet som i min 6502 emulator.
*Oftast* beror det på tabbar...
Re: Var är det lämpligt att diskutera .asm kod?
Har jag gjort flera tabbar? Hmmm du menat nog tabulatortangenten, mellanslag borde funka bättre.
Fråga 1 Är det lämpligt att diskutera kod i detta forum? 2 Finns det bättre ställen? Helst på Svenska eller motvilligt Engelska. 3 Vilka fel finns i min kod? Förutom programmerar etik.
Icecap: Jag tar det som en komplimang att du bara hittar fel i programmerar etiken. Men är ganska säker på att det finns utrymme för optimering.
Tänk på att progget i första hand är till atmega. Men varför skriver jag då i 6502 kod? Svar: för jag kan den minst dåligt. Proggar parallellt i avrstudio. Kod kommer, om jag får... om nån har en bra länk till korta "examples" atmega .asm blir jag glad.
Fråga 1 Är det lämpligt att diskutera kod i detta forum? 2 Finns det bättre ställen? Helst på Svenska eller motvilligt Engelska. 3 Vilka fel finns i min kod? Förutom programmerar etik.
Icecap: Jag tar det som en komplimang att du bara hittar fel i programmerar etiken. Men är ganska säker på att det finns utrymme för optimering.
Tänk på att progget i första hand är till atmega. Men varför skriver jag då i 6502 kod? Svar: för jag kan den minst dåligt. Proggar parallellt i avrstudio. Kod kommer, om jag får... om nån har en bra länk till korta "examples" atmega .asm blir jag glad.
Re: Var är det lämpligt att diskutera .asm kod?
Fel.1802 skrev:Lite tom rader här och var skulle kanske inte skada. Vilket jag googlade fram som indentering.
Utan indentering:
Kod: Markera allt
If (condition)
(
Do something
);
if else
(
do something else
);
Kod: Markera allt
If (condition)
(
Do something
);
if else
(
do something else
);
Re: Var är det lämpligt att diskutera .asm kod?
Så bra var google. Om man inte testar det man tror man förstått, kan det bli fel. Det där har jag anv utan att veta vad det heter, och säkert inte helt korrekt.
Ofta blir inte ens det jag skriver i "besvara" likt när det är upplagt. Och sen tycker jag det är viktigare hur koden ser ut när den jobbar. x86 skriver jag ofta i debug, där finns inte etikett behovet.
Ofta blir inte ens det jag skriver i "besvara" likt när det är upplagt. Och sen tycker jag det är viktigare hur koden ser ut när den jobbar. x86 skriver jag ofta i debug, där finns inte etikett behovet.
Re: Var är det lämpligt att diskutera .asm kod?
Sodjan menar att du kan försöka förklara vad du vill få gjort med koden.
Vi kan inte säga om den är "rätt" eller "fel" om vi inte vet vad du vill att den ska göra.
Nånting gör den ju... men gör den som du vill?
Du skriver att du " Skriver i en 6502 emulator, och avrstudio parallellt. " ... Men vad är kodexemplet för något? Till en 6502 eller till en AVR?
SBC är ju "Subtract with Carry", men varför står den instruktionen med STORA bokstäver när de flesta andra är skrivna med små bokstäver? Sådant gör att det blir ännu svårare att förstå vad du har tänkt.
EDIT: läste detta nu:
Vi kan inte säga om den är "rätt" eller "fel" om vi inte vet vad du vill att den ska göra.
Nånting gör den ju... men gör den som du vill?
Du skriver att du " Skriver i en 6502 emulator, och avrstudio parallellt. " ... Men vad är kodexemplet för något? Till en 6502 eller till en AVR?
SBC är ju "Subtract with Carry", men varför står den instruktionen med STORA bokstäver när de flesta andra är skrivna med små bokstäver? Sådant gör att det blir ännu svårare att förstå vad du har tänkt.
EDIT: läste detta nu:
OK. Men det är ganska meningslöst att blanda två olika sorters assembler. Försök att använda en lista på vilka koder din atmega kan använda, och läs i den. Jag vet inte vad t.ex. TYA eller jsr gör, men en ATmega kommer aldrig att fatta det heller! Jag länkade ju till assembler-tutorial i förra tråden. Har du inte laddat ner den. Du borde ha den framme och läsa i hela tiden om du inte kan AVR-assembler utantill. Då behöver du inte fråga om sec betyder set carry. Det står där.Tänk på att progget i första hand är till atmega. Men varför skriver jag då i 6502 kod? Svar: för jag kan den minst dåligt. Proggar parallellt i avrstudio. Kod kommer, om jag får... om nån har en bra länk till korta "examples" atmega .asm blir jag glad.
Men kollade du inte länken i det här inlägget?om nån har en bra länk till korta "examples" atmega .asm blir jag glad.
Re: Var är det lämpligt att diskutera .asm kod?
Progget är skrivet i en enkel pc 6502 emulator. Den bryr sig inte om stora eller små bokstäver. Och jag vet inte skillnaden. Målet är att göra om en byte till 8 bits. Som tex blinkar eller piper. 1 tidsenhet för nolla och 3 för etta. Etta aktiverar, och nolla gör inget. Eller nått i den stilen. Och går igenom hela minnet.
Skrev ett basic program till c64 nyligen och skickade datan $0000-ffff$(hela byte) till ljudchippet. Lät som ett gammalt spel jag inte mins namnet på. Lägger upp progget så småningom. För tillfället ligger det på c64 diskett. Men i värsta fall får jag överföra det för hand. Har ett c64 falskt rs232 kort. Inte äkta signaler(c64 lämnar bara 5V), men det funkade i ena riktningen mot PC.
Skrev ett basic program till c64 nyligen och skickade datan $0000-ffff$(hela byte) till ljudchippet. Lät som ett gammalt spel jag inte mins namnet på. Lägger upp progget så småningom. För tillfället ligger det på c64 diskett. Men i värsta fall får jag överföra det för hand. Har ett c64 falskt rs232 kort. Inte äkta signaler(c64 lämnar bara 5V), men det funkade i ena riktningen mot PC.
Re: Var är det lämpligt att diskutera .asm kod?
Det finns en instruktion som heter ROL . Den finns både i 6502 och AVR assembler. "ROL shifts all bits left one position. The Carry is shifted into bit 0 and the original bit 7 is shifted into the Carry." Den roterar en byte ett steg, dvs. en bit åt vänster. Högsta biten, bit 7 i registret, skickas ut till carry. Detta kan du använda för att plocka ut bitarna en och en och sedan hoppa om carry är etta eller nolla.
Du gör då en loop som kör 8 varv - ett varv per bit.
pseudoassembler:
Du gör då en loop som kör 8 varv - ett varv per bit.
pseudoassembler:
Kod: Markera allt
;/åtta bitar finns i register "r" som ska analyseras.
sätt loop-räknare till 8
loop:
rotera "r" vänster med ROL så att bit 7 hamnar i carry
hoppa till "off" om carry är nolla.
utför "on"-rutin
hoppa till forsätt_loop
off:
utför off-rutin
fortsätt_loop:
minska loop-räknade med ett (dec)
hoppa till loop om loopräknare inte är noll.
Re: Var är det lämpligt att diskutera .asm kod?
Smart lösning, jag skall prova. Är inte så hemma på flaggorna. Men det löser sig.