Var är det lämpligt att diskutera .asm kod?
Re: Var är det lämpligt att diskutera .asm kod?
Wedge: Dimman har inte lättat helt, men med din och andras hjälp är den på god väg.
Nu böjar det bli dax att skriva på loopen, och köra fler minnes adresser till min rutin. Kanske i en ny tråd. Där ROL inte kommer att anv eller...
Nu böjar det bli dax att skriva på loopen, och köra fler minnes adresser till min rutin. Kanske i en ny tråd. Där ROL inte kommer att anv eller...
Re: Var är det lämpligt att diskutera .asm kod?
Här kommer lite mer till programmet MemBitBlink.
Går det att konv till avr? Ovan funkar inte i ROM. Funkar det i FLASHROM? Om inte går det att lägga en subrutin i AVR RAM?
Kod: Markera allt
;SelfMod,a65
;Smidig när man har ont om register
.org $1000
LDX #$10 ; Startadress high byte
LDY #$ff ; Startadress low byte
Loop: ;Yttre loop
ILoop: ; Innre loop
LDA $1000 ; Denna rad modifieras av nedan LDA$0000 funkar ej
; i simulatorn
; JSR aslbit
INY
STY $1005 ; FARLIG! modifiera/öka raden "LDA $1000"
cpy #$40 ; Kör $40 som max i low byte
BNE ILoop ; Testa mot z flaggan
; JSR aslbit
LDY#$ff ; Nolla inre loop
INX ; Öka yttre loop high byte
STX $1006 ; FARLIG! modifiera/öka raden "LDA $1000"
CPX #$12 ; Kör $12 som max för high
BNE Loop ; Testa mot z flaggan
end:
JMP end ; Avsluta
aslbit:
RTS
.db "01234567890123456789Text lätt att hitta",0,0
Senast redigerad av 1802 21 oktober 2012, 20:38:57, redigerad totalt 1 gång.
Re: Var är det lämpligt att diskutera .asm kod?
> Funkar det i FLASHROM?
Nej.
> Om inte går det att lägga en subrutin i AVR RAM?
Nej.
Nej.
> Om inte går det att lägga en subrutin i AVR RAM?
Nej.
Re: Var är det lämpligt att diskutera .asm kod?
ROM = Read *Only* Memory (Enbart Läs Minne). Funkar inte att modifiera programkod via programkod i ROM. Självmodifierande kod slutade man använda någon gång på 80-talet iomed att cache minne introducerades i de flesta processorerna.
Det skulle teoretiskt funka i flashminne för de uC som stödjer flashning av programminnet via kod, men det skulle behövas skrivas en rutin som flashade om minnet för enbart den instruktionen och det skulle vara mer besvär och så stor prestandaförlust att det är totalt meningslöst.
Du får anpassa delar av den koden för microcontrollers utan självmodifierande kod.
Vad gör egentligen MemBitBlink? Varför måste du porta 6502 kod till AVR? Är det inte enklare att skriva från början?
Du försöker porta kod, som demonstrerar hur man undviker en begränsning med få register i 6502 arkitekturen via självmodifierande kod, till en helt annan arkitektur som har helt andra möjligheter och fler register. Vad är poängen?
Det är som om man har problem med liten pakethållare på cykeln, så man köper en lastbil och monterar på en större pakethållare på lastbilen.
Det skulle teoretiskt funka i flashminne för de uC som stödjer flashning av programminnet via kod, men det skulle behövas skrivas en rutin som flashade om minnet för enbart den instruktionen och det skulle vara mer besvär och så stor prestandaförlust att det är totalt meningslöst.
Du får anpassa delar av den koden för microcontrollers utan självmodifierande kod.
Vad gör egentligen MemBitBlink? Varför måste du porta 6502 kod till AVR? Är det inte enklare att skriva från början?
Du försöker porta kod, som demonstrerar hur man undviker en begränsning med få register i 6502 arkitekturen via självmodifierande kod, till en helt annan arkitektur som har helt andra möjligheter och fler register. Vad är poängen?
Det är som om man har problem med liten pakethållare på cykeln, så man köper en lastbil och monterar på en större pakethållare på lastbilen.
Re: Var är det lämpligt att diskutera .asm kod?
Koden skall anv på samtliga av mina pryttlar, C64 x86 avr pic z80 och kanske fler. Men jag får nog hitta en annan variant till AVR. Kul att höra att det går(i flash), men onödigt omständigt. Går det inte att lägga en subrutin i AVR ram? Känns ju som hela vitsen med RAM, att den går att ändra i.
Jag hittade en memorymap ATMega81515MM.jpg . Memory Map Small.jpg (JPEG-bild, 612 × 348 pixlar) - Skalad (93%) Nån som har en till ATMega16u4? Alla 3 på samma bild.
Jag hittade en memorymap ATMega81515MM.jpg . Memory Map Small.jpg (JPEG-bild, 612 × 348 pixlar) - Skalad (93%) Nån som har en till ATMega16u4? Alla 3 på samma bild.
Re: Var är det lämpligt att diskutera .asm kod?
Jag, som är rudis, brukar följa alla nybörjartrådar om microcontrollers, i hopp om det ska klarna lite allt efter som.
Men det här var en väldigt rörig tråd, som jag har svårt att förstå.
#Koden skall anv på samtliga av mina pryttlar, C64 x86 avr pic z80 och kanske fler.#
Kan man använda samma asemblerkod till olika processorer?
Det trodde jag var omöjligt.
Programmet "MemBitBlink", vad ska det utföra för något?
Men det här var en väldigt rörig tråd, som jag har svårt att förstå.
#Koden skall anv på samtliga av mina pryttlar, C64 x86 avr pic z80 och kanske fler.#
Kan man använda samma asemblerkod till olika processorer?
Det trodde jag var omöjligt.

Programmet "MemBitBlink", vad ska det utföra för något?
Re: Var är det lämpligt att diskutera .asm kod?
Nej det kan man inte.Kan man använda samma asemblerkod till olika processorer?
Du har rätt, Det är en omöjlighet.Det trodde jag var omöjligt.
Re: Var är det lämpligt att diskutera .asm kod?
säter: du har i alla fall fattat något, det är ju bra att någon gör det här... Och du har alldeles rätt i att ASM bara gäller för en specifik processorfamilj, mnemonicen är specifika varför man har skapat högnivåspråk, just för att släppa förbi det problem.
Re: Var är det lämpligt att diskutera .asm kod?
Du kan inte lägga kod där, samma gäller PIC, RAM är till för variabler, inget annat.Går det inte att lägga en subrutin i AVR ram? Känns ju som hela vitsen med RAM, att den går att ändra i.
Dock, på PIC32 som är en MIPS-processor, kan man köra program från RAM, om man vill. Man kanske kan göra det på ARM-versionerna av AVR också.
Beträffande skriva till programminnet, gissar att AVR funkar på samma sätt som PIC, man raderar och skriver minnet i sektorer, raderar gör man i 64-bytes sektorer, skriver gör man i 8-bytes sektorer.
Proceduren är rätt omständig och tidskrävande.
Re: Var är det lämpligt att diskutera .asm kod?
Exakt samma kod funkar inte mot alla CPU, men det är snarlikt. Typ olika dialekter. Så ser jag det.
säter: Läs hela tråden. Fråga sedan igen.
TomasL: Variabler. Det är ju precis det jag gör i SelfMod. För att undvika att andra processer pillar på dem ligger de i rutinens area. Borde gå att göra mot AVR RAM, men till ingen nytta. Så det får bli en annan taktik. Trycka upp register och flaggor i stacken. För att sedan återställa dem. Kan det vara något?
säter: Läs hela tråden. Fråga sedan igen.
TomasL: Variabler. Det är ju precis det jag gör i SelfMod. För att undvika att andra processer pillar på dem ligger de i rutinens area. Borde gå att göra mot AVR RAM, men till ingen nytta. Så det får bli en annan taktik. Trycka upp register och flaggor i stacken. För att sedan återställa dem. Kan det vara något?
Re: Var är det lämpligt att diskutera .asm kod?
Först frågade du :
> Om inte går det att lägga en subrutin i AVR RAM?
På vilket jag svarade ett tydligt "Nej".
Sen frågar du igen :
> Går det inte att lägga en subrutin i AVR ram?
V.v. förklara på ett enkelt sätt så jag förstår vad som var
otydligt med mitt första svar.
> Kul att höra att det går(i flash), men onödigt omständigt.
Med en oerhört speciell tolkning av "går". I praktiken går det inte alls.
Ett par andra saker...
> Självmodifierande kod slutade man använda någon gång på 80-talet...
Korrekt...
> ...iomed att cache minne introducerades i de flesta processorerna.
Har inte ett smack med det att göra! Det går aldeles utmärk att ha
självmodifierande kod helt oavsett om det finns cache eller inte, så klart.
Att det inte är lika vanligt idag (men inte helt borta) beror på helt andra
saker, bl.a säkerhetsrellaterade.
> Om inte går det att lägga en subrutin i AVR RAM?
På vilket jag svarade ett tydligt "Nej".
Sen frågar du igen :
> Går det inte att lägga en subrutin i AVR ram?
V.v. förklara på ett enkelt sätt så jag förstår vad som var
otydligt med mitt första svar.
> Kul att höra att det går(i flash), men onödigt omständigt.
Med en oerhört speciell tolkning av "går". I praktiken går det inte alls.
Ett par andra saker...
> Självmodifierande kod slutade man använda någon gång på 80-talet...
Korrekt...
> ...iomed att cache minne introducerades i de flesta processorerna.
Har inte ett smack med det att göra! Det går aldeles utmärk att ha
självmodifierande kod helt oavsett om det finns cache eller inte, så klart.
Att det inte är lika vanligt idag (men inte helt borta) beror på helt andra
saker, bl.a säkerhetsrellaterade.
Re: Var är det lämpligt att diskutera .asm kod?
Då ser du helt fel, det skiljer så mycket mellan olika processorer att det inte ens liknar varandra, eftersom ASM inte är ett språk, så kan det inte finnas dialekter.Exakt samma kod funkar inte mot alla CPU, men det är snarlikt. Typ olika dialekter. Så ser jag det.
En variabel kan inte ligga i programminne, då är det en konstant, per definition.
Vara till vadå?Trycka upp register och flaggor i stacken. För att sedan återställa dem. Kan det vara något?
Re: Var är det lämpligt att diskutera .asm kod?
> ..eftersom ASM inte är ett språk, så kan det inte finnas dialekter.
Tomas, du brukar tjata om det där.
Jag skulle kunna hålla med om att "maskinkod" inte är ett "språk", men att
påstå att en modern assembler, med allt vad de kan innehålla, inte är ett
"språk" är mest löjligt och tillför absolut ingenting till diskussionen.
Tomas, du brukar tjata om det där.

Jag skulle kunna hålla med om att "maskinkod" inte är ett "språk", men att
påstå att en modern assembler, med allt vad de kan innehålla, inte är ett
"språk" är mest löjligt och tillför absolut ingenting till diskussionen.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Var är det lämpligt att diskutera .asm kod?
En tråd så full med trollgodis var det länge sedan man såg....
1802 - Det verkar som du mest är interesserad av att vända och vrida på
allt och testa det mest omöjliga. Om det ramlar ut något som en sidoeffekt
så är du glad och lycklig över detta.
Lite mcgyver som bygger granater av grankottar och en gammal socka.
Swech
1802 - Det verkar som du mest är interesserad av att vända och vrida på
allt och testa det mest omöjliga. Om det ramlar ut något som en sidoeffekt
så är du glad och lycklig över detta.
Lite mcgyver som bygger granater av grankottar och en gammal socka.
Swech
Re: Var är det lämpligt att diskutera .asm kod?
lea msg(pc),a0
move.l (sp),a1
.lp:
move.b (a0)+, (a1)+
bne.s .lp
dc.w $4e75
msg:dc.b "RCA 1802. Enligt Elfa, en mikroprocessor med 91 lättanvända instruktioner. Om de är lättanvända, tvistar de lärde. En knepig grunka, inte lik mycket annat. 68k är lite modernare", 0, $13, $37, $c0, $de, 33
Assembler är absolut ett språk med sina fördelar och nackdelar. Det har mer struktur, aningen outtalad, än bara mnemonics i sig.
Dock har det många dialekter.
move.l (sp),a1
.lp:
move.b (a0)+, (a1)+
bne.s .lp
dc.w $4e75
msg:dc.b "RCA 1802. Enligt Elfa, en mikroprocessor med 91 lättanvända instruktioner. Om de är lättanvända, tvistar de lärde. En knepig grunka, inte lik mycket annat. 68k är lite modernare", 0, $13, $37, $c0, $de, 33
Assembler är absolut ett språk med sina fördelar och nackdelar. Det har mer struktur, aningen outtalad, än bara mnemonics i sig.
Dock har det många dialekter.