Bra kurs i assembler med simulator för förståelse mha 6502
Re: Bra grundkurs i generell 6502 assembler
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
tror inte den kostar mer än en 100-lapp.
http://www.amazon.co.uk/Schaums-Outline ... =pd_cp_b_1
Re: Bra grundkurs i (generell) assembler (6502!)
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.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?
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.
Re: Bra grundkurs i generell 6502 assembler
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...
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...
Re: Bra grundkurs i generell 6502 assembler
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.
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.
Re: Bra grundkurs i (generell) assembler (6502!)
Du har med andra ord inte läst sidan:)TomasL skrev: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.Nerre skrev:Poängen med kursen är ju att lära sig förstå hur en mikroprocessor fungerar.
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.
Re: Bra grundkurs i generell 6502 assembler
Vilket man gör lika bra genom att lära sig till exempelvis C.
Re: Bra grundkurs i generell 6502 assembler
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.
Re: Bra grundkurs i generell 6502 assembler
Och det måste du förstås veta för att skriva program?
Du skrev
Du skrev
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.men det är ett väldigt bra sätt att lära sig hur assemblerprogrammering fungerar
Re: Bra grundkurs i generell 6502 assembler
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.
Re: Bra grundkurs i generell 6502 assembler
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.
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.
Re: Bra grundkurs i generell 6502 assembler
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.
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.
Re: Bra grundkurs i generell 6502 assembler
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...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.
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.
Re: Bra grundkurs i generell 6502 assembler
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:
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å.
Ä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
Re: Bra grundkurs i generell 6502 assembler
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.