<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="nl" lang="nl">
<head>
<title>NOP</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="NOP"/>
<meta name="wx_page_id" content="853373"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="NOP" id="wxsec1"><h1 class="pagetitle" id="wx1">NOP</h1>

<wx:template id="wx_t1" pagename="Sjabloon:Zie_artikel" page_id="196201"/>
<div class="noprint" id="wx2">
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="background: transparent; font-size: 95%; margin-bottom: 0.0em" id="wx3">
<tr id="wx4">
<td id="wx5">
<dl id="wx6">
<dd id="wx7"><a href="/wnl/Afbeelding:1rightarrow.png" title="" wx:linktype="image" wx:pagename="Afbeelding:1rightarrow.png" id="wx8"><img src="/wnl/Afbeelding:1rightarrow.png" alt="" width="15" id="wx9"/></a>
<p id="wx10"> <font size="-1" id="wx11"><i id="wx12">NOP is ook een populaire afkorting voor de <a href="/wnl/Noordoostpolder" title="Noordoostpolder" wx:linktype="known" wx:pagename="Noordoostpolder" wx:page_id="20052" id="wx13">Noordoostpolder</a></i></font></p>
</dd>
</dl>
</td>
</tr>
</table>
</div>

<wx:templateend start="wx_t1"/>
<p id="wx14"><b id="wx15">NOP</b> is in de instructieset van vrijwel alle <a href="/wnl/Microprocessor" title="Microprocessor" wx:linktype="known" wx:pagename="Microprocessor" wx:page_id="54119" id="wx16">microprocessoren</a> en <a href="/wnl/Computer" title="Computer" wx:linktype="known" wx:pagename="Computer" wx:page_id="240" id="wx17">computers</a> de <a href="/wnl/Mnemonische_code" class="new" title="Mnemonische code" wx:linktype="unknown" wx:pagename="Mnemonische_code" id="wx18">mnemonische code</a> voor een instructie die geen enkel effect heeft, behalve het verhogen van de instructieteller.</p>

<p id="wx19">Officieel is NOP de afkorting van <i id="wx20">No Operation</i>. Er wordt echter beweerd dat de code is voorgesteld door de Nederlandse hoogleraar <a href="/wnl/Gerrit_Blaauw_%28natuurkundige_en_informaticus%29" title="Gerrit Blaauw (natuurkundige en informaticus)" wx:linktype="known" wx:pagename="Gerrit_Blaauw_(natuurkundige_en_informaticus)" wx:page_id="437586" id="wx21">Blaauw</a>, en dat hij daarbij het Nederlandse volkswoord <i id="wx22">nop</i> of <i id="wx23">noppes</i> in gedachten had. Blaauw heeft een belangrijke bijdrage geleverd aan het ontwerp van de <a href="/wnl/IBM_360" title="IBM 360" wx:linktype="known" wx:pagename="IBM_360" wx:page_id="1290716" id="wx24">IBM 360</a>.</p>

<div id="wx_toc"/>

<a id="Toevallige_NOP-instructies" name="Toevallige_NOP-instructies"/>
<wx:section level="2" title="Toevallige NOP-instructies" id="wxsec2"><h2 id="wx25">Toevallige NOP-instructies</h2>

<p id="wx26">In sommige instructiesets is NOP een instructie die 'toevallig' niets doet.</p>

<a id="IBM_360" name="IBM_360"/>
<wx:section level="3" title="IBM 360" id="wxsec6"><h3 id="wx27">IBM 360</h3>

<p id="wx28">Bij de IBM 360 is het de opdracht BCR 0,0. De interne code daarvan is 0700. Het is een sprongopdracht (07) onder geen enkele voorwaarde (0) naar het adres dat in register 0 (0) staat. Een sprong onder geen enkele voorwaarde is natuurlijk geen sprong, en bovendien is register 0 niet bruikbaar voor een sprongadres.</p>

<p id="wx29">De IBM 360 heeft nog veel meer instructies die niets doen, bijvoorbeeld LR 3,3 (interne code 1833) waarmee de inhoud van register 3 naar register 3 wordt gekopieerd, maar BCR 0,0 is de officiële NOP-instructie.</p>

<a id="i86" name="i86"/>
</wx:section><wx:section level="3" title="i86" id="wxsec7"><h3 id="wx30">i86</h3>

<p id="wx31">Bij de IBM-PC, die werkt met de <a href="/wnl/8088" title="8088" wx:linktype="known" wx:pagename="8088" wx:page_id="889083" id="wx32">8088</a> en zijn opvolgers is het XCHG AX,AX met interne code 90. Deze instructie verwisselt de inhoud van register AX met AX, wat natuurlijk geen enkel effect heeft.</p>

<a id="Aparte_NOP-instructies" name="Aparte_NOP-instructies"/>
</wx:section></wx:section><wx:section level="2" title="Aparte NOP-instructies" id="wxsec3"><h2 id="wx33">Aparte NOP-instructies</h2>

<a id="_8080" name="8080"/>
<wx:section level="3" title="8080" id="wxsec8"><h3 id="wx34">8080</h3>

<p id="wx35">De <a href="/wnl/8080" title="8080" wx:linktype="known" wx:pagename="8080" wx:page_id="889058" id="wx36">8080</a> en zijn opvolgers <a href="/wnl/8085" title="8085" wx:linktype="known" wx:pagename="8085" wx:page_id="889082" id="wx37">8085</a> en <a href="/wnl/Z80" title="Z80" wx:linktype="known" wx:pagename="Z80" wx:page_id="107793" id="wx38">Z80</a> hebben een aparte NOP-instructie met de (voor de hand liggende) interne code 00. Ook deze processors hebben echter een aantal instructies die toevallig niets doen, zoals MOV B,B (interne code 40), zodat een aparte NOP-instructie kan worden beschouwd als een verspilling van de beschikbare instructies.</p>

<a id="Gebruik" name="Gebruik"/>
</wx:section></wx:section><wx:section level="2" title="Gebruik" id="wxsec4"><h2 id="wx39">Gebruik</h2>

<p id="wx40">Op het eerste gezicht is een NOP-instructie niet erg zinvol. Hij kan echter worden gebruikt om een deel van een programma tijdelijk onwerkzaam te maken. Dat deel wordt dan vervangen door NOP-instructies. Het is daarvoor gewenst dat een NOP-instructie zo kort mogelijk is - het is immers niet mogelijk een oneven aantal <a href="/wnl/Byte" title="Byte" wx:linktype="known" wx:pagename="Byte" wx:page_id="173" id="wx41">bytes</a> te vervangen door NOP-instructies als een NOP-instructie twee bytes lang is. Bij de hierboven genoemde microprocessors is de NOP-instructie een enkele byte lang. Bij de IBM 360 is de lengte van een instructie altijd twee bytes of een veelvoud daarvan, en bovendien moet elke instructie beginnen op een even adres, zodat de NOP-instructie hier zonder bezwaar twee bytes lang mag zijn.</p>

<a id="CNOP" name="CNOP"/>
</wx:section><wx:section level="2" title="CNOP" id="wxsec5"><h2 id="wx42">CNOP</h2>

<p id="wx43">De IBM 360 heeft een assemblerinstructie met de naam CNOP. De betekenis daarvan is <i id="wx44">conditional no operation</i>, wat merkwaardig overkomt. Bij deze computer is het namelijk soms nodig dat gegevens op een adres staan dat een veelvoud is van 4 of 8. De instructie CNOP wordt door de assembler vertaald in nul of meer NOP-instructies, zodanig dat de eerstvolgende instructie op het juiste veelvoud komt te staan.</p>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wnl/index.php?title=Speciaal:Categories&amp;article=NOP" title="Speciaal:Categories" wx:linktype="known" wx:pagename="Speciaal:Categories" id="wx45">Categorie</a>: <span dir="ltr" id="wx46"><a href="/wnl/Categorie:Computerprocessor" title="Categorie:Computerprocessor" wx:linktype="known" wx:pagename="Categorie:Computerprocessor" wx:page_id="86276" id="wx47">Computerprocessor</a></span></div>
<div id="wx_languagelinks">
in andere talen: <a href="http://en.wikipedia.org/wiki/NOP" class="external" wx:linktype="interwiki" wx:pagename="en:NOP" id="wx48">English</a> | <a href="http://fr.wikipedia.org/wiki/NOP" class="external" wx:linktype="interwiki" wx:pagename="fr:NOP" id="wx49">Français</a> | <a href="http://it.wikipedia.org/wiki/NOP_%28informatica%29" class="external" wx:linktype="interwiki" wx:pagename="it:NOP_(informatica)" id="wx50">Italiano</a> | <a href="http://ja.wikipedia.org/wiki/NOP" class="external" wx:linktype="interwiki" wx:pagename="ja:NOP" id="wx51">日本語</a> | <a href="http://ru.wikipedia.org/wiki/NOP" class="external" wx:linktype="interwiki" wx:pagename="ru:NOP" id="wx52">Русский</a> | <a href="http://sv.wikipedia.org/wiki/NOP" class="external" wx:linktype="interwiki" wx:pagename="sv:NOP" id="wx53">Svenska</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name="1">
<p id="wx54">NOP is ook een populaire afkorting voor de <a href="/wnl/Noordoostpolder" title="Noordoostpolder" wx:linktype="known" wx:pagename="Noordoostpolder" wx:page_id="20052" id="wx55">Noordoostpolder</a></p>
</wx:argument></wx:templatearguments>
</html>
