![]() |
microcode en assemblercode
ik loop helemaal vast in hoe beide codes toe te passen? Wie heeft er genoeg ervaring met deze 2 programmeertalen om mij de basics te kunnen uitleggen?
|
Ik heb iets van 5 jaar geleden wel met assembler moeten werken, maar het is toch gewoon hetzelfde principe als alle andere programmeertalen (alleen dan wat omslachtiger)? Wat begrijp je precies niet?
|
het probleem zit em voornamelijk in dat ik de overslag van assembler naar microcode niet begrijp en dat ik helemaal gek word van het boek :P
|
Er zijn verschillende soorten assembler, elke computerarchitectuur heeft er zijn eigen dialect van en hetzelfde kan je zeggen van microcode; een expert in x85-assembler hoeft dus ook geen expert in powerpc of avr-assembler te zijn en exact hetzelfde als het gaat over microcode (maar nog extremer).
Om gewoon te schetsen hoe programmeertalen min of meer in elkaar zitten: een hoge programmeertaal (pascal, C, ...) kan je door een compiler laten omzetten in machinecode, dit kan je in feite zien als binaire vorm van assembler. Assembler-code wordt door een assembler vrij makkelijk omgezet naar die machinecode (met het voordeel dat je in assembler variabelen als naam kan gebruiken, in machinecode worden dat gewoon getalletjes en dat gelijkaardige operaties eenzelfde naam hebben in assembler maar een verschillend nummer kunnen hebben in machinecode: voor de machine is het anders om een constante op te tellen bij een register of twee registers op te tellen). Één instructie in een hoge taal zoals: Code:
IF a = b Code:
JNE a, b, labelELSE Met microcode gebeurt er iets gelijkaardigs: elk assemblercommando (of beter: elke instructie in de machinecode) wordt omgezet in nog kleinere instructies: bv. haal waarde uit register X, schrijf deze naar de adresbus van het geheugen, ... Voor het bovenstaande voorbeeld zou dat voor enkel de eerste JNE-instructie bv. kunnen zijn: Code:
pop een waarde van de stack naar tijdelijk register Heel simpel gesteld: met een hoge taal maak je de computer (maar vooral jezelf) wijs wat er moet gebeuren, met assembler maak je de processor wijs wat er moet gebeuren en met microcode maak je elk van de onderdelen van de processor duidelijk wat ze moeten doen. |
@ILUsion: bedankt voor de gestructureerde uitleg, ik begrijp het nu zo ongeveer.
@TS: Ik neem aan dat jij ook trotse eigenares bent van het Computers/organisatie/architectuur/communicatie boek ? wat een $^%& boek is dat. |
Citaat:
@ sean_b idd wij hebben dat boek ook, heel hulp daar uit te verwachten :/ |
Citaat:
Maar goed, daar ben je weinig verder mee. Ik geloof dat een van de basiswerken daaromtrent de werken van A. Tanenbaum zijn (tenzij je daarop al doelde): voor dit onderwerp zal dat "Structured Computer Organization" (ISBN 0-13-148521-0) zijn, lijkt me. En anders staan er op WikiPedia wel wat referenties als je zoekt op microcode (in de Engelse tenminste; sowieso zou ik aanraden om Engelse referentiewerken te gebruiken als je de taal genoeg machtig bent). |
hmmm, oke het is mij tenminste iets duidelijker nu :P
en wij doen in informatica jaar 1 een periode TI (technische informatica) vandaar de zooi op het CPU, en we hebben er een hele handleidinjg voor gekregen hoor, alleen is die niet heel duidelijk vaak :P |
Alle tijden zijn GMT +1. Het is nu 08:17. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.