Plaats een reactie

Je mail wordt niet openbaar getoond. Het wordt enkel gebruik voor contact of notificatie vanuit het beheer.

🗨️ Wat vind jij? Stel direct je vraag of geef je mening – zonder registratie. Je reactie zet het topic weer bovenaan bij 'Laatste posts' en trekt snel nieuwe reacties aan🔥. Mocht je als vaste bezoeker willen reageren, dan kun je je ook registreren.

Bevestig dat je geen robot bent door de volgende vragen te beantwoorden.

Noor heeft 10 knikkers. Ze verliest er 4 in het gras. Hoeveel heeft ze er nog?

Antwoord: (vul een getal in)

Er zitten 5 vogels op een hek. Twee vliegen weg. Hoeveel blijven er zitten?

Antwoord: (vul een getal in)

Weergave uitklappen Voorafgaande berichten: Snel asm leren

Re: Snel asm leren

door Maggy » do 06 aug 2009, 08:53

Ik ken programmeurs die met Qbasic zijn begonnen, probleemloos overstappen naar ANSI C, dan Python in een dagje oppikken, Ruby on Rails ook wel handig vinden, wat in ARM ASM op hun PDA schrijven, natuurlijk Intel x86 Asm niet links kunnen laten liggen en ook nog wat robotjes bouwen waarvoor ze de controllertjes dan ook nog's in van alles door elkaar aansturen.

Daar ben ik heel jaloers op. Ik kan hele simpele dingen in MASM, ANSI C, Python en overstappen van de een op de ander vind ik elke keer weer lastig. Tenzij je al van jezelf weet dat je zo'n duizendpoot bent, raad ik je aan je voorlopig te beperken tot 1 Asm.

Al zijn microcontrollers wel heel leuke dingen...

Re: Snel asm leren

door Kaspace » do 06 aug 2009, 01:33

En op AVR gebied is misschien wel de allersnelste manier om Assembler te leren om dat via Basic te doen!

In wezen is het mengen van machinetaal in Basic niet anders dan in C. Het aardige is dat je bij Basic maar een beperkt aantal libraries hebt (waar wel je haast alle doorsneetoepassingen mee kan maken), zodat het overzichtelijk blijft.

(C libraries mogen nooit "nee" verkopen, dus elke frats zit er in gebouwd: dat nekt je als eigenlijk zocht naar iets eenvoudigs.)

BascomAVR is wereldvermaard en het is zowaar een Nederlands product.

Ook dit kan je gratis gebruiken (ik meen tot maximaal 4kByte programma)

http://www.mcselec.com/index.php?page=shop...op&Itemid=1

Re: Snel asm leren

door Kaspace » do 06 aug 2009, 00:51

Fantastische site als je AVRassembler wilt leren en toepassingen wilt maken.

http://www.avr-asm-tutorial.net/avr_de/index.html

Re: Snel asm leren

door Kaspace » do 06 aug 2009, 00:28

Hmm kweet niet wat voor soort assembler je wilt leren. Als het voor een Intel PC is dan lijkt me dat niet erg zinvol.

De software voor PC is behoorlijk goed uitgekiend, zeker voor die delen die je met ASM zou willen aanpakken.

Zelfs voor microcontrollers is de trend naar C. Het heeft te maken met de programmagrootte. Om 10kByte vol te krijgen in machinetaal moet je flink wat programmeren in assembler... En tegenwoordig is 64, of 256kB al heel normaal. Om dat te hanteren MOET je haast wel C gebruiken.

Assembler gebruik je vooral bij het aan elkaar knopen van hardware gewoon definieren welk draadje aan welke pen, de penfunctie instellen.

Ik hobby wat met AVR procesors van Atmel, ongeveer even populair zijn de PICs van Microchip. Dat is spul waarbij je leuk met assembler kan spelen en helemaal je eigen dingetjes kan maken.

Als je wilt weten wat het is: het kan gratis!

1.

http://www.atmel.com/dyn/products/tools.asp?family_id=607

Download AVRstudio 4. Die je moet tegenwoordig wel ff registreren voor de nieuwste versies: je moet daarbij kiezen om minimaal 1000 componenten binnen 1 jaar nodig denken te hebben... is geheel risicoloos, don't worry.

Dat is een complete omgeving om elke processor van Atmel mee te programmeren en te simuleren. Eigenlijk hoef je geen hardware te kopen!

Programmeren gaat òf met assembler (zit in AVRstudio geïntegreerd), òf met WinAVR (dat is GCC+AVRlibrary), GCC is de GNU C-compiler (die wordt bijna overal voor gebruikt: het is zo'n beetje DE standaard).

Maar....ook met C zal je wel in de details (instructieset+codes) van de processorfamilie moeten verdiepen.

2:

Bijvoorbeeld ATmega8515 is (was) heel populair. Dit handboek heb je dan nodig:

http://www.atmel.com/dyn/resources/prod_do...nts/doc2502.pdf

3:

En de instructieset AVR: http://www.atmel.com/dyn/resources/prod_do...nts/doc0856.pdf

Advies: houdt je voorlopig even bij 1 groepssoort (b.v. ATmel AVR 8bit RISC). In die groep vindt je voor "elk" probleem Application Notes met voorbeelden.

Even voor de duidelijkheid: hoewel de trend naar C is meen ik zelf dat Assembler veel leerzamer is. Ik vrees dat je nooit zelf hardware aan elkaar leert knopen zonder ASM kennis. Maar C is zeker geschikt als je een kant en klaar bordje koopt (bv Arduino). Ik gebruik zelf enkel Assembler, gewoon omdat ik C veel te ingewikkeld vindt ivm met libraries, headers, compileropties. Je krijgt veel ballast te verhapstukken om een paar bytes te manipuleren...

Maar als je bijvoorbeeld een grafisch scherm voor een mobile telefoon wilt ontwikkelen, dat moet met C. Meetapparaatjes, tellertjes, instrumentjes, besturingkjes met een paar knopjes dat zou ik allemaal liever in assembler

doen. Een ingewikkeld programma uitvoeren op de PC en via de USB apparaatjes besturen of uitlezen. Dat buitenPC spul is heerlijk te doen met assembler!

Tenslotte nog een tip: als je "hot" stuf wilt kies dan een Xmega, wordt waarschijnlijk de komende jaren de top op 8bit gebied. Hij kan meer dan het huidige 8bit spul maar is dienovereenkomstig ingewikkelder (een pen krijgt steeds meer verschillende rollen om uit te kiezen). Maar als je er nu mee begint kan je die ervaring misschien nog goed te gelde maken ook. Wel denk ik dat je hier met C sneller resultaat uit haalt...

Re: Snel asm leren

door qrnlk » wo 05 aug 2009, 15:54

Het is onmogelijk om een besturingssysteem, drivers, of ander low level stuff te programmeren zonder een taal die low-level genoeg is dat het bepaalde processor instructies kan genereren, zoals asm.
Of er moet al een goede systeem API zijn waardoor je de kernel kunt vragen om dit te doen... of wellicht zoiets als een IO kit waar je dan een plugin voor kunt schrijven.
C is niet low-level genoeg, je kan er geen I/O ports mee aanspreken, je kan er geen interrupts mee genereren, je kan er geen descriptor tables mee instellen, je kan er geen rauwe bytes (die direct op de gewenste plaats in het binaire bestand terecht komen) mee genereren, je kan er geen boot sector van een floppy mee maken (alleen al omdat je geen controle hebt over waar welke bytes terecht komen), ...
Je hebt gelijk mbt het schrijven van een OS (aka kernel) maar voor device drivers... ik weet het niet. Ik zou van een beetje redelijk OS verwachten dat er API's zijn voor elk van deze dingen of iets dat hetzelfde gewenste effect heeft zodat jouw code in user-space kan blijven en niet kernel-space vervuild.
En ik heb het dan over C als programmeertaal, zoals we het ook hebben over asm als programmeertaal, en niet over de C libraries of andere implementaties die achter de schermen alsnog asm gebruiken (omdat het gewoon niet kan in C).
Nou... ik heb wel eens inline asm in C en Common Lisp gezien.

Re: Snel asm leren

door Bert F » wo 05 aug 2009, 13:23

Als je echt iets leuks wil maken, moet je eens kijken naar antlr: http://www.antlr.org/ hiermee kun je je eigen vertaler maken voor een zelf te maken programmeertaal. Hiermee kun je dan ook een codegenerator maken voor bijvoorbeeld ia 32.


Wat bedoel je met een codegenerator voor ia32 een compiler of een os? Groeten.

Re: Snel asm leren

door virtlink » di 04 aug 2009, 16:52

Rogier schreef:Hier:

Code: Selecteer alles

#include <conio.h>

char c = _getch();
Verschil is alleen dat die van mij ook werkt op een Mac, Playstation, PDA, en straks ook op nieuwe PCs waarvan de CPU alleen nog maar 64bit Asm slikt ;)
Ten eerste werkt dat echt niet op je Mac of Playstation. Ten tweede hoop ik toch echt dat je zelf ook weet dat dat geen correct antwoord is op mijn vraag (met als belangrijkste reden dat _getch() geen demonstratie is van de functionaliteit van C als programmeertaal). Maar mocht je dat toch niet weten, dan denk je blijkbaar dat de C library ook helemaal in C is geschreven zeker. En die DOS header die je aanhaalt idem.

Het is onmogelijk om een besturingssysteem, drivers, of ander low level stuff te programmeren zonder een taal die low-level genoeg is dat het bepaalde processor instructies kan genereren, zoals asm. C is niet low-level genoeg, je kan er geen I/O ports mee aanspreken, je kan er geen interrupts mee genereren, je kan er geen descriptor tables mee instellen, je kan er geen rauwe bytes (die direct op de gewenste plaats in het binaire bestand terecht komen) mee genereren, je kan er geen boot sector van een floppy mee maken (alleen al omdat je geen controle hebt over waar welke bytes terecht komen), ...

En ik heb het dan over C als programmeertaal, zoals we het ook hebben over asm als programmeertaal, en niet over de C libraries of andere implementaties die achter de schermen alsnog asm gebruiken (omdat het gewoon niet kan in C).

En ja, andersom kan wel. Je kan waarschijnlijk zelfs een emulator schrijven in Haskell of F#, al zou ik het niet aanraden. Maar daar hadden we het niet over.

Re: Snel asm leren

door qrnlk » di 04 aug 2009, 15:51

Lichtelijk offtopic..

Mijn ervaring is dat men vaak veel te vroeg begint met optimaliseren?

Zo zijn er bijvoorbeeld mensen die al bij de keuze van implementatieplatform (programmeertaal+bibliotheken) zich overmatig druk gaan maken over de runtime snelheid. Wegens gebrek aan daadwerkelijke feiten baseert men zich dan op misleidende "algemene kennis". Toetsbare feiten ontbreken want profiling is onmogelijk zolang er nog geen programma geschreven is (rule #3)

Het gevolg is vaak dat men een taal kiest van een eigenlijk te laag niveau gegeven de complexiteit van het probleem. Waardoor men te veel details moet bijhouden waardoor het programmeren veel moeilijker is en het veel langer duurt om iets te maken of te veranderen, terwijl de kans op fouten significant toeneemt en daarmee ook de tijd die men besteed aan debuggen.

Door dat het verkrijgen van een werkend programma zo veel inspanning kost zal men niet snel geneigd zijn tot experimenteel programmeren waarbij men verschillende algoritmen en datastructuren gaat uit te proberen. Dit heeft als consequentie dat men voor de eerste die men kan bedenken kiest en deze gaat men vervolgens optimaliseren, maar het resultaat is meestal langzamer dan wat men met een beter algoritme had kunnen doen. (see also)

Re: Snel asm leren

door Mimoun » di 04 aug 2009, 14:41

... deftig ASM te leren. Ik kan al programmeren in OO-talen dus het probleem zit niet bij algoritmes
hi, van u verwacht ik hier de vraag "wat kan ik nou met asm?" wanneer u oop taal kent, deze vraag, in combinatie, met een idee over het toepassen van asm, kan een aanleiding zijn voor een antwoord op de vraag hoe "beter" asm kennis opdoen :P

en zonder dat tik je gewoon in google 'asm turotials' en daar ben je. ;)

Re: Snel asm leren

door Rogier » di 04 aug 2009, 10:27

En nu hetzelfde in C?
Hier:

Code: Selecteer alles

#include <conio.h>

char c = _getch();
Verschil is alleen dat die van mij ook werkt op een Mac, Playstation, PDA, en straks ook op nieuwe PCs waarvan de CPU alleen nog maar 64bit Asm slikt ;)
Je kan niet alles in asm ook in C.
Ik kan een volledige cpu-emulator/virtualisator (zoals VMWare en VirtualBox enzo) in C maken. Die voert dan per definitie alles wat je in asm kan, uit in C.
Maar jij zegt domweg dat asm tegenwoordig nutteloos is om nog te leren.
Nou, ik zeg niet dat het compleet nutteloos is, er zijn tegenwoordig alleen veel andere zaken die eigenlijk nuttiger zijn, waar je in de praktijk meer profijt van hebt. Als je Asm voor de lol leert is dat geen argument. Maar als het je gaat om het praktisch nut dat je ervan hebt, dan kun je je tijd vruchbaarder gebruiken of efficiënter investeren. En Asm is zéker geen heilige graal voor het maken van übersnelle of foutloze programma's.

Re: Snel asm leren

door Maggy » di 04 aug 2009, 10:20

Overigens kan je naar mijn mening niet veel "assembler" leren omdat veel hardware echt van mekaar verschilt.
Laten we ervan uitgaan dat de meeste programmeurs hooguit twee types processoren in huis hebben die ze mogelijk willen aansturen in ASM, namelijk een x86 in hun PC en een in hun mobiel of PDA. Ja, die twee verschillen fors van elkaar. Maar het is heus mogelijk de volledige Asm van beide in je kop te krijgen. De volledige C++ reference uit je kop leren raad ik iedereen van harte af.
En hoe is dat, in alledaagse praktijksituaties vandaag de dag, precies van belang?
Ik weet niet hoeveel spaken een wiel van mijn fiets heeft, ik weet vrijwel niets over de samenstelling van het rubber van mijn banden en zelfs mijn fietsbel laat ik maar liever dichtgeschroefd. Maar ik ben wel blij dat er nog altijd voldoende mensen zijn die weliswaar geen van alle individueel ALLES van grondstoffen tot complete fiets weten, maar gezamenlijk beschikken ze wel over AL die kennis. Een van de verschillen tussen een Batavus van 1000 euro en een chineese cheapo fiets is dat er wat minder metallurgische kennis in die laatste zit, resultaat een roestbak.

De Romeinen waren qua wetenschap en techniek het meest ontwikkelde Europese volk van hun tijd (dankzij geimporteerde kennis uit de rest van Europa, voor-Azie en Egypte). Na de val van het Romeinse rijk verdween de meeste kennis weer... in Europa. Gelukkig waren de moslimlanden en Azie juist wel heel zuinig op de bestaande kennis en werd die daar fiks uitgebreid anders was het hier in de Renaissance ook niks geworden. In de tweede helft van onze middeleeuwen kwam er in de moslimlanden weer een eind aan de wetenschappelijke ontwikkeling door een veelheid aan factoren.

http://en.wikipedia.org/wiki/Islamic_science#Decline

Die geschiedenis kan zich op computergebied maar al te gemakkelijk herhalen.
Volgens dat argument zou het net zo belangrijk zijn dat je als programmeur elektrotechniek en micro-elektronica studeert, want dan leer je pas écht hoe een computer werkt. En als je die lijn doortrekt, dan eigenlijk ook natuurkunde en quantumfysica.
goedkope manier van het onderwerp belachelijk maken. Mijn fietsenmaker op de hoek hoeft geen metallurg te zijn, maar zonder bekwame metallurgen reed ik nu op een roestbak.
Vroeger was Asm ook handig (of zelfs noodzakelijk) om bepaalde hardware aan te kunnen sturen, zoals geluids- en videokaarten enzo. Dat is met de komst van Windows en drivers ook veranderd, nu zit daar een laag tussen
En hoe bouw je die laag? Hoe bouw je compilers? Hoe simuleer je andere hardware op je PC?
Dat is per definitie zo, want Asm is de enige taal die je computer kan uitvoeren. Iedere compiler zet een random taal om in Asm.
Asm is een voor mensen leesbare en schrijfbare programmeertaal die goed te structureren en te documenteren is. Je computer kent bits, bytes en words, meer niet. Heus geen Asm, laat staan dat er iets van je comments in de uiteindelijke machinetaal gehandhaaft blijft.

Heb je wel 's een gecompileerd programmaatje gedisassembled? Dat leest in de regel niet echt makkelijk terug.
Dat geldt natuurlijk voor iedere taal.
Bugs die al in compilers, libraries etc zitten blijven heel lang doorspoken en vermenigvuldigen zich naar elke volgende generatie programmeertalen die niet van de grond af in Asm maar in een bestaande hogere taal ontwikkeld zijn.
Sorry, maar dat is echt volstrekte onzin. Ten eerste maakt het voor 99.99% van alle programma-onderdelen geen drol uit of het uit geoptimaliseerde assembler bestaat of een domme conversie vanuit een "hogere" programmeertaal.
Ik was op mijn IBM PC van 4,77 MHz niet veel minder productief dan nu op mijn dual Xeon van 3 GHz, afgezien van het regelmatig wachten op disk swaps.
Scripts worden doorgaans niet gecompileerd, dus dat is niet helemaal eerlijk te vergelijken. Maar zelfs daar zul je het in de praktijk zelden merken (scripts runnen vaak online en dan is de bandbreedte vaker de bottleneck dan de uitvoersnelheid van het script).
Paintshop en Photoshop werken veel met scripts, offline. Heel veel mensen gebruiken Greasemonkey in Firefox. etc. En ik moet eerlijk zeggen dat ik ook zelf nog regelmatig een macrootje of Python scriptje gebruik om mijn computer te laten werken terwijl ik in mijn bedje lig.
Andersom is het ook zo: alles wat je in Asm kan, kan ook in C, en omgekeerd.
Het kostte me weinig moeite om dit te vinden, pag 96:

http://books.google.nl/books?id=HLztYyTUt_...ble&f=false
Ik wil niet de zuurpruim uithangen en Asm afkraken ofzo.
goh, hoe kan het dan dat ik die indruk wel kreeg?

Re: Snel asm leren

door 317070 » di 04 aug 2009, 02:01

Al aan redcode gedacht? Praktisch gebruik is 0, maar het is een zeer intellectuele uitdaging om een virus te schrijven dat efficiënter andere virussen uitmoordt dan het zelf uitgemoord wordt ;)

Verslavend. En het ligt vrij dicht bij assembler. En het stimuleert om echt efficiënt te beginnen programmeren.

Re: Snel asm leren

door virtlink » di 04 aug 2009, 01:10

Andersom is het ook zo: alles wat je in Asm kan, kan ook in C, en omgekeerd.
Goed, in asm schijf ik de volgende regel code om een ingedrukte toets op te vangen in een interrupt service request handler: (Hierna staat het in het register AL en mag ik er alles mee doen wat ik wil.)

Code: Selecteer alles

in al, 0x60
En nu hetzelfde in C?

Je kan niet alles in asm ook in C. Natuurlijk maken higher level languages de kansen op fouten kleiner, en door hun ontwerpstructuur maken ze het programmeren makkelijker en sneller. Maar jij zegt domweg dat asm tegenwoordig nutteloos is om nog te leren. Latijn is net zo nutteloos, want niemand spreekt het. Toch krijg je het zelfs op de middelbare school. Het gaat in beide gevallen dan om de basis, het achterliggende.

Re: Snel asm leren

door Rogier » ma 03 aug 2009, 20:24

virtlink schreef:Dat vind ik onzin. Asm is in de eerste plaats ontzettend handig om het binnenste van een computer te snappen. Dat een computer werkt met getallen en indirectie, en niet met symboolnamen en functies. Dat de processor niks weet van variabelen, maar een paar registers heeft waar je wat mee kan doen.

(...)

paging en segmentatie, noem maar op.
Ik ben heel blij dat er nog mensen zijn die Asm leren. Als Adm zou uitsterven, zou er een nieuw soort computer-analfabetisme ontstaan. Er zou geen programmeur meer zijn die de computer anders kan aansturen dan als een blackbox.
En hoe is dat, in alledaagse praktijksituaties vandaag de dag, precies van belang?

Volgens dat argument zou het net zo belangrijk zijn dat je als programmeur elektrotechniek en micro-elektronica studeert, want dan leer je pas écht hoe een computer werkt. En als je die lijn doortrekt, dan eigenlijk ook natuurkunde en quantumfysica.
Hoe simpele recursie op het laagste niveau moet worden opgelost door middel van een stack, en waarom een byte van 255 optellen bij een byte met waarde 255 een byte met waarde 254 geeft. Hoe kommagetallen er binair uit zien, of negatieve getallen in diverse notaties. Little endian,
De zaken die je hier noemt zijn inderdaad nuttig in allerlei praktijksituaties, maar dan gaat het meer om een conceptueel begrip dan kennis van assembler. Diezelfde kennis is net zo nuttig wanneer je voor intel als voor andere platforms programmeert (zoals game consoles, en tot voor kort de Mac, enz), en echt programmeren in Asm staat daar eigenlijk los van. De dingen die je omschrijft zijn mij ook vaak genoeg van pas gekomen in puur C++ situaties.

Ik ben het wel met je eens dat het programmeren in assembler je vanzelf met deze concepten vertrouwd maakt (evenals pointers bijvoorbeeld, er zijn verdomd veel programmeurs die daar geen hol van begrijpen). Maar dan wordt Asm meer een middel (een leermethode) dan een doel.

Vroeger was Asm ook handig (of zelfs noodzakelijk) om bepaalde hardware aan te kunnen sturen, zoals geluids- en videokaarten enzo. Dat is met de komst van Windows en drivers ook veranderd, nu zit daar een laag tussen en spreek je met apparaten op een universele manier. En eerlijk is eerlijk, dat is wel zo handig en scheelt een onwijze bult werk en tijd.
Alles wat in hogere talen geprogrammeerd kan worden, kan ook in Asm geschreven worden.
Dat is per definitie zo, want Asm is de enige taal die je computer kan uitvoeren. Iedere compiler zet een random taal om in Asm.
Asm is in principe totaal bugvrij te schrijven, zolang je maar elke subroutine grondig test en op bugvrije hardware werkt.
Dat geldt natuurlijk voor iedere taal. Bij Asm kost het alleen een veelvoud van de tijd, en is dus een stuk moeilijker om dat consistent vol te houden. En in de praktijk, waar een programma binnen een bepaalde tijd af moet zijn, is dat helemaal onrealistisch.

Programmeren in Asm kost veel, veel meer tijd, en de kans op foutjes is groter, en die zijn bovendien moeilijker op te sporen.
Elk fatsoenlijk Asm programma is veel sneller dan welk gecompileerd programma dan ook,
Sorry, maar dat is echt volstrekte onzin. Ten eerste maakt het voor 99.99% van alle programma-onderdelen geen drol uit of het uit geoptimaliseerde assembler bestaat of een domme conversie vanuit een "hogere" programmeertaal. Ten tweede is het zeer twijfelachtig of je tegenwoordig nog wel betere Asm kunt maken dan wat compilers produceren. Heb je wel eens gekeken wat Visual C voor Asm produceert met alle optimalisaties aan? Dat is tamelijk ziek hoor, daar valt als programmeur (ook met de nodige expertise) nauwelijks nog tegenop te optimizen.

Processors van vandaag de dag zijn dusdanig ingewikkeld dat je met zoveel facetten rekening moet houden (pairing, caching, penalties, noem maar op), dat een beetje complex programma al zo'n monnikenwerk zou zijn om in Asm te bouwen, daar is haast geen beginnen aan. Laat staan dat je het ook nog net zo goed wilt optimizen als een compiler doet, dat kost nog eens een veelvoud van het werk en benodigde expertiese.
om van scripts nog maar te zwijgen.
Scripts worden doorgaans niet gecompileerd, dus dat is niet helemaal eerlijk te vergelijken. Maar zelfs daar zul je het in de praktijk zelden merken (scripts runnen vaak online en dan is de bandbreedte vaker de bottleneck dan de uitvoersnelheid van het script).

Pas als je intensieve dingen gaat doen in een scriptje (iets wat zwaar moet rekenen of veel data verwerken), dan wordt het merkbaar trager dan een 'echt' programma. Maar dat geldt zo'n beetje voor alle programma's gecompileerd in iedere willekeurige gecompileerde taal (met een fatsoenlijke compiler).
Je kunt dll's schrijven, of objects om te gebruiken in je OOPS taal.
(Net als boven) vanzelfsprekend, want andere talen waarin dat kan worden naar Asm omgezet.

Andersom is het ook zo: alles wat je in Asm kan, kan ook in C, en omgekeerd. En alles wat je in x86 (intel) Asm kan, kan ook op een motorola cpu, en omgekeerd.
Het internet stikt van de voorbeelden en tutorial sites. En als je even doorbijt kun je in Asm net zo snel schrijven als in C.
Ik durf te wedden dat ieder programma dat een béétje complex is (dus geen hello world, al geldt het daar ook voor) een veelvoud van tijd kost om te maken in Asm.

Ik wil niet de zuurpruim uithangen en Asm afkraken ofzo. Ik heb er jaren 100% in geprogrammeerd dus ik weet waar ik het over heb. Evengoed kan het best leuk (en op sommige momenten zelfs nuttig) zijn om Asm te leren, maar vergis je niet in hoeveel tijd en moeite dat gaat kosten, en hoeveel je er echt aan hebt. Als het je om het nut gaat, ben je tegenwoordig volgens mij beter af door je te verdiepen in andere programmeeraspecten.

Een fraai voorbeeld vind ik MenuetOS, een of andere freak die een compleet OS heeft gebouwd in 100% Asm. Oooh man wat moet die gast daar veel tijd in hebben gestoken! Compleet windowed, met netwerk support en browsers en alles. Erg leuk, veel hulde en respect voor zijn prestatie. En ook volslágen zinloos ;)

Re: Snel asm leren

door Cycloon » ma 03 aug 2009, 17:34

Alles wat in hogere talen geprogrammeerd kan worden, kan ook in Asm geschreven worden. Asm is in principe totaal bugvrij te schrijven, zolang je maar elke subroutine grondig test en op bugvrije hardware werkt
Alle code kan in principe bugvrij gemaakt worden, alleen is dat praktisch onmogelijk. Grote projecten in asm (die echt niet vaak meer voorkomen) krijgen ook vroeg of laat met bugs te maken, hoe hard je ook je best doet.

Even met assembler werken is wel tof, maar je moet je er zeker geen maanden op leren om het te begrijpen. Overigens kan je naar mijn mening niet veel "assembler" leren omdat veel hardware echt van mekaar verschilt. Je kan wel wat trucjes leren en wat zaken leren die bijna overal voorkomen (zoals registers) maar dat wil nog niet zeggen dat je zomaar overweg kan met nieuwe hardware. Vaak wordt wel genoeg documentatie geleverd bij hardware om je weg te vinden zelf mocht je nooit assembler gezien hebben.