КампутарыПраграмаванне

Асэмблер - каманды для пачаткоўцаў нізкаўзроўневых праграмістаў

Усе каманды могуць быць выкананы толькі з дапамогай машыннага мовы. Асэмблер-каманды - сімвалічнае ўяўленне гэтай мовы. З яго дапамогай пішуць невялікія, але вельмі хуткія праграмы. Але, нягледзячы на іх памер, працэс напісання вельмі працаёмкі. Таму каманды асэмблера выкарыстоўваюцца для працы з апаратнай складнікам, ці калі на выкананне праграмы крытычна не хапае памяці. Таму код асэмблера афармляецца ў выглядзе падпраграм і інтэгруецца з кодам высокага ўзроўню. Так як асэмблер можа моцна адрозняцца у залежнасці ад тыпу архітэктуры, то варта разгледзець яго для канкрэтнага выпадку, у дадзеным артыкуле гэта архітэктура Win. Але апісанне каманд асэмблера, як правіла, моцна не мяняецца, і выкарыстоўваць іх можна і ў мікракантролерах, і ў іншых прыборах электронікі, для якіх выкарыстоўваецца асэмблер.

Арыфметычныя каманды, якія прымяняюцца ў асэмблеры

Нягледзячы на такі парадокс, як універсальнасць, усяго 4 арыфметычныя каманды асэмблера ёсць і могуць выкарыстоўвацца праграмістамі. Але тым не менш з дапамогай іх ствараліся высокаўзроўневыя мовы праграмавання, на якіх працуюць кампутары, бытавая тэхніка, тэлефоны, смартфоны, ноўтбукі і т. Д. Працаваць з імі можна, і вельмі паспяхова. Спіс каманд асэмблера такі:

  • складанне;
  • адніманне;
  • множанне;
  • дзяленне.

складанне

Арыфметычная аперацыя, вядомая яшчэ са школы. Для яе выкарыстання неабходна ўлічваць толькі асаблівасць складання, якая звязаная з прадстаўленнем складвацца лікаў у памяці самога кампутара. Агульны выгляд аперацыі такі:

ADD <Ячейка1 / Регистр1>, <Ячейка2 / Регистр2>

Каманда бярэ колькасці з вочак, складае іх разам і запісвае ў «Ячейку1». Цяпер пра ўмовы праходжання аперацыі: абодва колькасці з вочка павінны мець аднолькавы памер. Таксама калі спачатку ідзе рэгістр, то да яго можна прыплюсаваць ўсё. Калі спачатку ідзе вочка, то да яе можна прыплюсаваць або непасрэдны аперанд, або рэгістр.

Апісанне каманд асэмблера і іх рэалізацыі патрабуе больш поўнага падыходу, чым можа даць адзін артыкул. Па камандам асэмблера, нягледзячы на іх вартае жалю колькасць, пішацца найвелізарная колькасць кніг, якія маюць не адну сотню старонак. Таму, нягледзячы на ўяўную лёгкасць, рэкамендуем азнаёміцца з больш дэталёва апісвае каманды працай, якая дазволіць даведацца ўсе нюансы для розных архітэктур.

адніманне

Гэтая аперацыя спаўняецца па такім жа алгарытме, як і папярэдняя. Нават тып запісу каманды падобны:

SUB <Ячейка1 / Регистр1>, <Ячейка2 / Регистр2>

Прынцып падліку такі: з №1 адымаецца значэнне №2, і запісваецца на месца №1. Умовы праходжання аперацыі сапраўды такія ж, як і ўмовы праходжання аперацыі складання.

множанне

Калі для дзялення і складання выкарыстоўваліся аднолькавыя каманды, як для беззнаковых, так і для знакавых лікаў, то пры памнажэньні і дзяленні для іх існуюць розныя алгарытмы. Так, для множання беззнаковых лікаў выкарыстоўваецца такая каманда:

MUL <аперанд>

Паказаны ў камандзе аперанд з'яўляецца адным з сомножителей. Месца другога сомножителя і месца выніку аперацыі загадзя фіксуюцца, у залежнасці ад памеру MUL ў байтах. Месца іх размяшчэння - тэма асобнага артыкула. Для знакавага множання выкарыстоўваюць каманду:

IMUL <операнд№1>, <операнд№2>

Можна сустрэць і іншыя варыянты рэалізацыі, але гэты з'яўляецца больш зразумелым і звыклым. Паказваюцца два сомножителя, і вынік змяшчаецца ў аперанд №1. Пры гэтым у якасці аперанда №1 выступае абавязкова рэгістр, а аперанда №2 - рэгістр або вочка памяці. Але іншыя варыянты таксама будуць апісаны:

IMUL <операнд№1>

IMUL <операнд№1 >>, <операнд№2>, <непасрэдны аперанд>

IMUL <операнд№1>, <непасрэдны аперанд>

Першы варыянт падобны MUL па сваёй прыладзе, таму правілы да яго можна аднесці і тут. Другі варыянт дазваляе відавочна паказаць месцазнаходжанне - як выніку, так і сомножителя. У трэцім варыянце паказваецца рэгістр, які будзе першым сомножителем і ў якім будзе змешчаны вынік множання. Пад непасрэдным аперандам маецца на ўвазе указанне не вызначанага рэгістра, а чысла, на якое будзе множыцца аперанд.

дзяленне

Як ужо паведамлялася вышэй, для дзялення выкарыстоўваюцца дзве каманды. Для беззнаковых лікаў ўжываюць:

DIV <аперанд>

Для знакавых лікаў выкарыстоўваюць каманду:

IDIV <аперанд>

Асаблівасць прымянення каманд дзялення заключаецца ў тым, што выкарыстоўваецца толькі аперанд-дзельнік, у якасці якога выступае рэгістр або вочка памяці. Падзельнае лік заўсёды мае сваё пэўнае месцазнаходжанне, якое залежыць ад памеру колькасці. Сваё месца мае і вынік аперацыі.

Па пошуку і вызначэнню месцаў можна сказаць тое ж, што і пра памнажэнне: неабходная асобны артыкул, так як аб'ём інфармацыі вельмі значны.

карыснае заключэнне

Таксама да катэгорыі "адносна карысныя каманды асэмблера" варта аднесці і каманду NEG <Ячэйка / Рэгістр>. Яна перакладае знак у лік, якое знаходзіцца ў аперанда. Вось і ўсё, спадзяемся, што артыкул дапамагла вам разабрацца ў арыфметычных камандах асэмблера.

Спатрэбяцца і аперацыі инкрементирования і декрементирования (павелічэння або памяншэння аперанда на адзінку). Каб инкрементировать аперанд неабходна прапісаць такую каманду:

INC <аперанд>

Для декрементации варта прапісаць:

DEC <аперанд>

У якасці аперанда можа выступіць вочка памяці або рэгістр. Выключная выгада ад гэтых аперацый заключаецца ў тым, што яны для сябе забіраюць менш месцы, чым аналагічныя каманды асэмблера, прапанаваныя складаннем або адніманне.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.birmiss.com. Theme powered by WordPress.