Mikrokodu rakstīšanas procesu datora centrālā procesora vadības atmiņai sauc par mikroprogrammēšanu. Vadības atmiņas mikrokods tiek ģenerēts pēc datora un tā mikroprogrammētā vadības bloka konfigurēšanas. Vadības atmiņa ir vadības bloka daļa, kurā tiek glabātas visas mikroprogrammas, kuras nevar bieži modificēt. Katra mikroprogrammas rinda attēlo mikroinstrukciju, kas norāda vienu vai vairākas mikro operācijas. Mikro norādījumus var organizēt divos atšķirīgos veidos: horizontālā un vertikālā. Horizontālie mikro norādījumi apzīmē vairākas mikro operācijas, kas tiek veiktas vienlaikus. Tomēr ārkārtējos gadījumos katra horizontālā mikroinstrukcija kontrolē visus sistēmas aparatūras resursus. Gluži pretēji, vertikālā mikroinstrukcija atgādina parasto mašīnas valodas formātu, kas sastāv no vienas operācijas un dažiem operandiem. Atšķirībā no horizontālajām mikro instrukcijām, vertikālā mikroinstrukcija apzīmē vienas mikrooperācijas.
Horizontālā mikroprogrammēšanā katrs bits tiek īpaši identificēts ar vienu vadības punktu, kas norāda, ka jāveic atbilstošā mikro operācija. Tā kā katra mikro instrukcija ir pietiekama, lai vienlaikus kontrolētu vairākus resursus, tai ir efektīvas aparatūras izmantošanas potenciālās priekšrocības un turklāt tai ir nepieciešams mazāks mikro norādījumu skaits vienā mikroprogrammā. Tas pieļauj augstāku paralēlisma pakāpi ar minimālu kodēšanas daudzumu un atsevišķiem vadības laukiem. Tomēr tādu mikroprogrammu izstrāde, kas resursus izmanto optimāli vai efektīvi, ir sarežģīts uzdevums. Horizontālā mikroprogrammēšana piedāvā lielu elastību, jo katrs vadības bits ir neatkarīgs viens no otra. Tam ir lielāks garums, tāpēc tas parasti satur vairāk informācijas nekā vertikālas mikro instrukcijas.
Vertikālā mikroprogrammēšana izmanto mainīgu formātu un augstāku kodēšanas pakāpi pretstatā horizontālai mikroprogrammēšanai. Tas ne tikai saīsina mikroinstrukcijas garumu, bet arī neļauj pieaugošajai atmiņas ietilpībai tieši ietekmēt mikroinstrukcijas garumu. Katra vertikālā mikro instrukcija parasti ir viena mikro operācija. Kods tiek izmantots katrai veicamai mikro operācijai, un dekodētājs kodu pārveido atsevišķos vadības signālos. Tā kā ir norādīta tikai veicamā mikrooperācija, mikroinstrukciju lauki tiek pilnībā izmantoti. Plus vertikālas mikroprogrammas ir vieglāk uzrakstīt nekā to horizontālās līdzinieces. Vertikālā mikroinstrukcija atgādina parasto mašīnas valodas formātu, kas sastāv no vienas operācijas un dažiem operandiem. Līdz ar to to ir viegli izmantot mikroprogrammēšanai. Parasti tas sastāv no četriem līdz sešiem laukiem, kuriem vienā instrukcijā nepieciešami aptuveni 16 līdz 32 biti.
Vertikālā mikroprogrammēšana izmanto mainīgu formātu un augstāku kodēšanas pakāpi pretstatā horizontālai mikroprogrammēšanai. Vertikālā mikroprogrammēšanā vadības biti tiek kodēti ar katru kodu, kas tiek izmantots katrai veicamajai darbībai, un komandu dekodētājs dekodē kodu vairākos vadības signālos. Gluži pretēji, horizontālā mikroprogrammēšana ietver horizontālas mikro instrukcijas, kurās vispār netiek izmantots kodējums. Tie attēlo katru vadības bitu datu ceļā, kas piešķirts ar atsevišķu bitu mikroinstrukcijas formātā. Katrs bits vadības laukā ir pievienots vadības līnijai.
Horizontālā mikroprogrammēšana parasti seko secīgai pieejai, lai mikroprogrammā norādītu nākamo mikroinstrukciju, līdzīgi kā parastais mašīnas valodas formāts. Katrs bits tiek identificēts īpaši ar vienu vadības punktu, kas norāda, ka jāveic atbilstošā mikro operācija. Pēc tam, lai izjauktu secību, ir nepieciešami īpaši nosacīti un beznosacījumu filiāles mikro norādījumi. Vertikālā mikroprogrammēšanā var izmantot relatīvi adresējošu shēmu, kurā nepieciešami daži biti, lai norādītu relatīvu priekšu vai atpakaļ. Tam katrā adresē ir jāaprēķina adrese.
- Vertikālām mikroprogrammām ir labāks koda blīvums, kas ir izdevīgi kontroles krātuves lielumam. Vertikālā mikroinstrukcija atgādina parasto mašīnas valodas formātu, kas sastāv no vienas operācijas un dažiem operandiem. Katra vertikālā mikro instrukcija apzīmē vienu mikrooperāciju, savukārt operandi var norādīt datu izlietni un avotu. No otras puses, horizontālās mikroprogrammas parasti pārstāv vairākas mikro operācijas, kas tiek veiktas vienlaikus. Ārkārtējos gadījumos katra horizontālā mikroinstrukcija vienlaikus kontrolē vairākus aparatūras resursus.
- Horizontālās mikroprogrammas piedāvā uzlabotu elastību, jo katrs vadības bits ir neatkarīgs viens no otra. Tam ir lielāks garums, tāpēc tas parasti satur vairāk informācijas nekā vertikālas mikro instrukcijas. Horizontālas mikro instrukcijas ar 48 vai vairāk bitiem ir diezgan izplatītas. Horizontālām mikroprogrammām ir potenciālas priekšrocības, ja aparatūra tiek izmantota efektīvāk, un papildus tai ir nepieciešams mazāks mikroinstrukciju skaits vienā mikroprogrammā. No otras puses, vertikālas mikro instrukcijas ir kompaktas, bet mazāk elastīgas nekā horizontālās mikro instrukcijas. Rezultātā vertikālā pieeja ir viegli izmantojama mikroprogrammēšanai.
Atšķirībā no horizontālajām mikro instrukcijām, vertikālā mikroinstrukcija apzīmē vienas mikrooperācijas. Horizontālās mikroprogrammas pieļauj augstāku paralēlisma pakāpi ar minimālu kodēšanas daudzumu un atsevišķiem vadības laukiem, savukārt vadības biti tiek kodēti vertikālās mikroprogrammās. Starp abām pieejām jāizvēlas uzmanīgi. Tomēr praktiski dizaineri izmanto horizontālu un vertikālu mikroinstrukciju formātu kombināciju, lai iegūtā struktūra būtu kompakta, bet efektīva.