Једноставни 8086 програми скупштинског језика са објашњењем

Испробајте Наш Инструмент За Елиминисање Проблема





Програмирање на нивоу скупштине је веома важно за ниже нивое уграђени систем дизајн се користи за приступ упутствима процесора за манипулацију хардвером. То је најпримитивнији језик на машинском нивоу који се користи за стварање ефикасног кода који троши мање броја тактова и заузима мање меморије у поређењу са програмски језик на високом нивоу . Комплетни хардверски оријентисан програмски језик је писање програма који програмер мора бити свестан уграђеног хардвера. Овде пружамо основе програмирања на нивоу монтаже 8086.

Програмирање на нивоу скупштине 8086

Програмирање на нивоу скупштине 8086



Програмирање на нивоу скупштине 8086

Тхе програмски језик монтаже је језик ниског нивоа који је развијен коришћењем мнемотехнике. Микроконтролер или микропроцесор могу да разумеју само бинарни језик као што је 0 или 1, па асемблер претвара монтажни језик у бинарни језик и чува га у меморији за извршавање задатака. Пре писања програма, уграђени дизајнери морају да имају довољно знања о одређеном хардверу контролера или процесора, па смо прво морали да знамо хардвер 8086 процесора.


Хардвер процесора

Хардвер процесора



8086 Процесорска архитектура

8086 је процесор који је представљен за све периферне уређаје, као што су серијска магистрала, и РАМ и РОМ, И / О уређаји и тако даље, а који су сви споља повезани са процесором помоћу системске магистрале. Микропроцесор 8086 има Архитектура заснована на ЦИСЦ-у , и има периферне уређаје попут 32 И / О, Серијска комуникација , сећања и бројачи / тајмери . Микропроцесору је потребан програм за извршавање операција којима је потребна меморија за читање и чување функција.

8086 Процесорска архитектура

8086 Процесорска архитектура

Програмирање нивоа 8086 на нивоу монтаже заснива се на регистрима меморије. Регистар је главни део микропроцесори и контролери који се налазе у меморији која омогућава бржи начин прикупљања и чувања података. Ако желимо да манипулишемо подацима са процесором или контролером извођењем множења, сабирања итд., То не можемо учинити директно у меморији где су потребни регистри за обраду и чување података. Микропроцесор 8086 садржи разне врсте регистара који се могу класификовати у складу са њиховим упутствима као што су

Регистри опште намене : 8086 ЦПУ се састојао од 8 општих регистара и сваки регистар има своје име као што је приказано на слици као што су АКС, БКС, ЦКС, ДКС, СИ, ДИ, БП, СП. Све су то 16-битни регистри где су четири регистра подељена на два дела као што су АКС, БКС, ЦКС и ДКС који се углавном користи за задржавање бројева.

Регистри за посебне намене : 8086 ЦПУ се састојао од 2 регистра посебне функције као што су ИП и регистри застава. ИП регистар указује на тренутно извршно упутство и увек ради на прикупљању са регистром ЦС сегмента. Главна функција регистара заставица је модификација ЦПУ операција након завршетка механичких функција и не можемо директно приступити
Регистри сегмената: 8086 ЦПУ се састојао од 4-сегментних регистара као што су ЦС, ДС, ЕС, СС који се углавном користи за чување било каквих података у сегментним регистрима, а блоку меморије можемо приступити помоћу регистара сегмената.


Прости језички програми за скупштину 8086

Програмирање 8086 на асемблерском језику има нека правила попут

  • Ниво монтаже програмирање 8086 код мора бити написан великим словима
  • Ознаке мора пратити двотачка, на пример: лабел:
  • Све ознаке и симболи морају почињати словом
  • Сви коментари се куцају малим словима
  • Последњи ред програма мора се завршити директивом ЕНД

8086 процесори имају још две инструкције за приступ подацима, као што су ВОРД ПТР - за реч (два бајта), БИТЕ ПТР - за бајт.

Оп-Цоде и Операнд

Оп-Цоде и Операнд

Оп код: Једна наредба се позива као оп-код који ЦПУ може извршити. Овде се упутство „МОВ“ позива као оп-код.

Операнди: Подаци од једног дела називају се операнди којима се може управљати помоћу оп-кода. На пример, операцију одузимања изводе операнди који се одузимају од операнда.
Синтакса: СУБ б, ц

Програми 8086 микропроцесорских скупштинских језика

Напишите програм за читање карактера са тастатуре

МОВ ах, 1х // потпрограм за унос тастатуре
ИНТ 21х // унос знакова
// карактер се чува у ал
МОВ ц, ал // копирање карактера из алт ц

Напишите програм за читање и приказивање карактера

МОВ ах, 1х // потпрограм за унос тастатуре
ИНТ 21х // читање карактера у ал
МОВ дл, ал // копирање знака у дл
МОВ ах, 2х // потпрограм за излаз знакова
ИНТ 21х // приказ знака у дл

Напишите програм користећи регистре опште намене

ОРГ 100х
МОВ АЛ, ВАР1 // провера вредности ВАР1 померањем у АЛ.
ЛЕА БКС, ВАР1 // добивање адресе ВАР1 у БКС.
МОВ БИТЕ ПТР [БКС], 44х // измена садржаја ВАР1.
МОВ АЛ, ВАР1 // провера вредности ВАР1 померањем у АЛ.
ЈЕЛ ТАКО
ВАР1 ДБ 22х
КРАЈ

Напишите програм за приказивање низа помоћу библиотечких функција

укључују ему8086.инц // Макро декларација
ОРГ 100х
ШТАМПА „Здраво свете!“
ГОТОКСИ 10, 5
ПУТЦ 65 // 65 - је АСЦИИ код за „А“
ПУТЦ „Б“
РЕТ // повратак у оперативни систем.
ЕНД // директива за заустављање компајлера.

Аритметичка и логичка упутства

Процеси аритметичке и логичке јединице 8086 раздвојили су се у три групе као што су операција сабирања, дељења и прираста. Већина Аритметичка и логичка упутства утичу на регистар статуса процесора.

Мнемотехника за програмирање 8086 у скупштинском језику је у облику оп-кода, као што су МОВ, МУЛ, ЈМП итд., Који се користе за извођење операција. Програмирање на скупштинском језику 8086 примери

Сабирање
ОРГ0000х
МОВ ДКС, # 07Х // премештање вредности 7 у регистар АКС //
МОВ АКС, # 09Х // премештање вредности 9 у акумулатор АКС //
Додајте АКС, 00Х // додајте ЦКС вредност са Р0 вредношћу и резултат чува у АКС //
КРАЈ
Множење
ОРГ0000х
МОВ ДКС, # 04Х // премештање вредности 4 у регистар ДКС //
МОВ АКС, # 08Х // премештање вредности 8 у акумулатор АКС //
МУЛ АКС, 06Х // Помножени резултат се чува у Акумулатору АКС //
КРАЈ
Одузимање
ОРГ 0000х
МОВ ДКС, # 02Х // премештање вредности 2 за регистрацију ДКС //
МОВ АКС, # 08Х // премештање вредности 8 у акумулатор АКС //
СУББ АКС, 09Х // Вредност резултата се чува у акумулатору А Кс //
КРАЈ
Дивизија
ОРГ 0000х
МОВ ДКС, # 08Х // померање вредности 3 за регистрацију ДКС //
МОВ АКС, # 19Х // премештање вредности 5 у акумулатор АКС //
ДИВ АКС, 08Х // коначна вредност се чува у Акумулатору АКС //
КРАЈ

Стога је ово све о Програмирању на нивоу скупштине 8086, 8086 Процесорска архитектура, једноставним примерима програма за процесоре 8086, аритметичким и логичким упутствима. Даље, било каква питања у вези са овим чланком или електронским пројектима, можете нас контактирати коментаришући у одељку за коментаре испод.