Nulová operace

Nulová operace (zkracováno NOP nebo NOOP z anglického no operation, doslova žádná operace) je v oboru počítačů zvláštní příkaz, který je na rozdíl od jiných běžných příkazů sám o sobě jalový, tedy nevykonává žádnou konkrétní činnost. Používán je jak v protokolech, tak v programovacích jazycích. Zvláště významné je jeho použití v jazyce symbolických adres.

V jazyce symbolických adres a strojovém kódu

Způsob realizace

V jazyce symbolických adres má nulová operace obvykle název NOP. K výjimkám patří jazyk MMIX vyvinutý Donaldem Knuthem pro hypotetický RISCový počítač.

Na různých platformách s různými instrukčními sadami je instrukce NOP překládána na instrukce s různými opkódy. Cílem je vždy taková instrukce strojového kódu, která nemění na stavu procesoru nic jiného než instrukční čítač. Některé procesory mají pro tento účel i zvláštní instrukci (například Motorola 6809), ale obvyklejší bývá překlad na běžnou instrukci aritmetické nebo logické operace, kopírování nebo skok doplněnou takovými operandy, aby instrukce neměla žádný efekt. Například na procesorech z rodiny x86 se standardně NOP překládá na 0x90, což znamená xchg (e)ax, (e)ax, tedy instrukci na prohození hodnot, která dostane v obou parametrech stejný registr. Na procesorech z rodiny SPARC se používá instrukce 0x01000000, která znamená sethi 0, %g0, tedy nastavuje na nulu registr %g0, který je ovšem nulový vždy.

Smysl užití

Motivací pro použití nulové operace může být více, například:

Zvláštní kapitolou je používání NOPů pro dodatečné změny strojového kódu. To může mít jak tu podobu, že si programátor předem připraví místo, kam může později snadno včlenit instrukci skoku na dodatečně přidaný kód, nebo naopak situaci, kdy je nějaký skok či celý dlouhý kód přepsán NOPy, čímž je vyřazena některá z funkcí programu. Tento způsob používání NOPů je zvláště častý při crackování softwaru, tedy při odstraňování ochranných částí kódů ověřujících, zda je uživatel z hlediska tvůrce programu k použití programu oprávněn.

Reference

V tomto článku byly použity překlady textů z článků Nulloperation na německé Wikipedii a NOP na anglické Wikipedii.


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Nulová_operace
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.