Bra kurs i assembler med simulator för förståelse mha 6502

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
4kTRB
Inlägg: 20748
Blev medlem: 16 augusti 2009, 19:04:48

Re: Bra grundkurs i generell 6502 assembler

Inlägg av 4kTRB »

Schaum's Outline of Computer Architecture
tror inte den kostar mer än en 100-lapp.

http://www.amazon.co.uk/Schaums-Outline ... =pd_cp_b_1
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i (generell) assembler (6502!)

Inlägg av TomasL »

Nerre skrev:Poängen med kursen är ju att lära sig förstå hur en mikroprocessor fungerar.

Som han skriver på sidan så är ju 6502 från den tiden då man "skrev i assembler" och det gör att det är ett bra val för att lära sig rätt "tänk". Att förstå hur stacken fungerar, hur direkt, indirekt och indexerad adressering fungerar etc.

Naturligtvis hade man kunnat hitta på ett eget assemblerspråk eller köra med Z80 eller nåt annat från den tiden, men varför uppfinna hjulet på nytt när så många redan uppfunnit det förr?
Det är i mitt tycke rätt meningslöst att lära sig assemblera kod för en processor, som man ändå inte tänkt att använda.

Man blir ändå tvungen att starta om på nytt, för varje typ av processor, eftersom de funkar så olika.
Till exempel så saknar PIC16 stack (i princip) samt en massa annat som en CISC har.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av mri »

Jag använde Emma II med 6502 cpu i mikrodatorundervisningen för ganska många år sen.
Googlade fram manual här:
http://www.ee.siue.edu/~smuren/ece282/l ... manual.pdf

Skrev assembler på papper och konverterade mha tabell till binärkod som knappades in i RAM minnet med hex-tangentbord. Detta gav nog handfast erfarenhet av vad mjukvara består av samt hur cpu'n exekverar den.
De flesta elever hade ingen tidigare erfarenhet. Fanns nog att bita i...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av TomasL »

Det var iofs det vi gjorde på lektionerna, men med en MC6800 baserad historia.
Dock på raster och fritid, satt vi och knackade FORTRAN och BASIC på ALPHAN.

Tror ärligt talat vi lärde oss mer på fritiden än på lektionerna.
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bra grundkurs i (generell) assembler (6502!)

Inlägg av Nerre »

TomasL skrev:
Nerre skrev:Poängen med kursen är ju att lära sig förstå hur en mikroprocessor fungerar.
Det är i mitt tycke rätt meningslöst att lära sig assemblera kod för en processor, som man ändå inte tänkt att använda.
Du har med andra ord inte läst sidan:)

Han skriver klart och tydligt:
I don’t think you’ll ever have to write assembly language in your day job – this is purely an academic exercise, something to expand your mind and your thinking.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av TomasL »

Vilket man gör lika bra genom att lära sig till exempelvis C.
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bra grundkurs i generell 6502 assembler

Inlägg av Nerre »

Har du tittat på kursen? I vilken C-kurs kan du enkelt skriva programmen direkt på webbsidan, kompilera och sen stega igenom dem med en debugger? Och på vilket sätt ger C en förståelse för hur en processor arbetar, med register, ALU, flaggor och minnesceller? I C vet du ju inte ens om en variabel hamnar i ett register eller på stacken, och du ser inte hur zero-flaggan eller overflow-flaggan påverkas när du adderar termer som ger ett resultat som inte ryms i målregistret.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av TomasL »

Och det måste du förstås veta för att skriva program?
Du skrev
men det är ett väldigt bra sätt att lära sig hur assemblerprogrammering fungerar
Vilket enbart gäller för just 6502-processorn och dess assembler, det lär dig ingenting om hur du skall skriva ett assemblerprogram till andra processorer.
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bra grundkurs i generell 6502 assembler

Inlägg av Nerre »

Jo, man lär sig hur register, minnesceller, flaggor, ALU-operationer, binära tal (bytes och word, overflow och carry och såna grejer), branching och sånt fungerar.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av TomasL »

Vilket fungerar olika i olika processorer.
Det är ungefär som att börja lära sig swahili, för övningens skull, först, innan man börjar lära sig engelska.
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7226
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Re: Bra grundkurs i generell 6502 assembler

Inlägg av psynoise »

Allt beror på hur man vill lära sig. I bästa världar tror jag top-down via bra litteratur är bäst. Men det är sällan några nybörjare har lust att läsa böcker pärm till pärm.

Men främsta lärdomen vid lite mer praktiskt övning är troligtvis insikten om vikten av att vara strukturerad och lägga mycket tid på förarbete. Folk som slänger sig framför tangentbordet för att programmera direkt lyckas sällan med något komplicerat.
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bra grundkurs i generell 6502 assembler

Inlägg av Nerre »

TomasL skrev: Det är ungefär som att börja lära sig swahili, för övningens skull, först, innan man börjar lära sig engelska.
Nu är det ju faktiskt så att det finns språk som t.ex. Interlingua som är framtagna för att det mha dem skall vara lätta att lära sig andra språk...

Jag tycker det är häftigt med en kurs som är på en enda webbsida (låt vara att det på min dator är 19 skärmsidor), den innehåller 12 instanser av en inbäddad editor/assemblator/simulator med debugger och stepping-stöd och en "grafisk" skärm. Den går igenom minnesadressering, registerhantering, beräkningar, flaggor, branching, stackhantering och avslutas med ett fullt spelbart Masken i emulatorn.
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Bra grundkurs i generell 6502 assembler

Inlägg av pbgp »

Jag tycker TomasL är lite väl negativ. Det är mycket nyttigt att lära sig assembler för vilken arkitektur som helst, det blir garanterat lättare när man ska lära sig nästa. Det blir en referenspunkt.

Även om man inte skriver assembler i sitt dagliga arbete så måste man förr eller senare titta i en debugger och då är det ju trevligt att ha ett hum om vad alla hex-siffror och förkortningar betyder.

Jag fick det här i min inkorg på jobbet för några dagar sedan:

Kod: Markera allt

I/DEBUG   (  260):     r0 00000000  r1 203610e2  r2 203610e2  r3 4015a1f4
I/DEBUG   (  260):     r4 5d4a88f8  r5 4015a1f4  r6 00000000  r7 5dc16770
I/DEBUG   (  260):     r8 5d4b0098  r9 00000000  sl 5dc16648  fp 5d4b0098
I/DEBUG   (  260):     ip 5d21ef94  sp 5d0f9108  lr 5d204945  pc 5d253ccc  cpsr 40000010
I/DEBUG   (  260):     d0  4154205245544c41  d1  6c6c616320454c42
I/DEBUG   (  260):     d2  7573204444412073  d3  6974706972637362
I/DEBUG   (  260):     d4  ffffffffffffffff  d5  ffffffffffffffff
I/DEBUG   (  260):     d6  ffffffffffffffff  d7  ffffffffffffffff
I/DEBUG   (  260):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   (  260):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (  260):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (  260):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (  260):     d16 4745544e49206e6f  d17 4e20544f4e205245
I/DEBUG   (  260):     d18 0000001600000040  d19 00003e7900000015
I/DEBUG   (  260):     d20 0000000900000001  d21 0000000c0000000c
I/DEBUG   (  260):     d22 0000000000000000  d23 0000000000000023
I/DEBUG   (  260):     d24 e0e0e0e0e0e0e0e0  d25 e0e0e0e0e0e0e0e0
I/DEBUG   (  260):     d26 1919191919191919  d27 1919191919191919
I/DEBUG   (  260):     d28 9f9f9f9f9f9f9f9f  d29 9f9f9f9f9f9f9f9f
I/DEBUG   (  260):     d30 4f4f42454e4f4850  d31 54454b4355423f4b
I/DEBUG   (  260):     scr 80000010
I/DEBUG   (  260):
I/DEBUG   (  260): backtrace:
I/DEBUG   (  260):     #00  pc 00014ccc /system/lib/xxx
I/DEBUG   (  260):     #01  pc 00013941  /system/lib/xxx
I/DEBUG   (  260):     #02  pc 000141ed  /system/lib/xxx
I/DEBUG   (  260):     #03  pc 0002038c  /system/lib/xxx
Från en JAVA-app som krashat i ett JNI-anrop på android. Eftersom jag kan lite (och betoning på lite) assembler så vet jag ungefär vad det är jag tittar på.
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Bra grundkurs i generell 6502 assembler

Inlägg av Nerre »

Förstår inte riktigt varför rubriken ändrades... Som den står nu (utan mina paranteser) så betyder den inte samma sak som med mina paranteser.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Bra grundkurs i generell 6502 assembler

Inlägg av TomasL »

bluint som är lite klåfingrig, kanske?
Skriv svar