Naar inhoud springen

Opcode

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Jvhertum (overleg | bijdragen) op 23 jun 2007 om 14:17.
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

Een opcode (een afkorting vasn operation code) is een deel van een instructie in machinetaal die aangeeft welke bewerking uitgevoerd moet worden.

Een instructie die door een computer wordt uitgevoerd, bestaat meestal uit twee delen: de opcode en de operanden. Er zijn twee soorten opcodes: in de machinetaal en in de assembleertaal. De laatste worden mnemonische opcodes genoemd.

Luidt de instructie bijvoorbeeld dat er vijf moet worden opgeteld bij register EBX, dan is:

  • opcode: 'optellen bij een register'
  • operanden: 'EBX' en '5'

De machinecode (voor i86) van deze instructie is 83C305. De opcode is 83C, het register EBX wordt aangeduid met 3 en de bij te tellen waarde is 05.

De assemblerinstructie is:

ADD EBX,5

Hierin is ADD de mnemonische opcode.

In het gegeven voorbeeld komen de opcodes niet precies met elkaar overeen. Uit de mnemonische opcode 'ADD' blijkt namelijk dat er moet worden opgeteld, maar niet dat er bij een register moet worden opgeteld. Dat blijkt pas uit de operand 'EBX'. Er zijn assembleertalen waarin er wel een directe een-op-eenrelatie is tussen de opcode in de machinetaal en de mnemonische opcode. Zo maakt de assembleertaal van de IBM 360 onderscheid tussen de mnemnnische opcodes 'A' (optellen van waarde in het geheugen) en 'AR' (optellen van waarde uit register). De assemblerinstructies zijn:

A  4,8 Tel de inhoud van adres 8 op bij register 4
AR 4,8 Tel de inhoud van register 8 op bij register 4