Web Analytics
Privacy Policy Cookie Policy Terms and Conditions НАР 2 - Википедија

НАР 2

Из пројекта Википедија

НАР 2 (Наставни Рачунар 2) је теоретски модел 32-битног рачунара кога је креирао професор природно-математичког факултета универзитета у Београду Недељко Парезановић као побољшање претходног НАР 1. Коришћен је током предавања о асемблерском програмирању и архитектуре рачунара ("Основе рачунарских система").

Садржај

[уреди] Структура инструкција

Свака инструкција НАР 2 процесора се састојала од тачно једне 32-битне машинске речи и садржала је следеће делове:

  • Код инструкције у 8 највиших битова (24...31)
  • 4 бита (20...23) одреднице индексног регистра који ће бити употребљен у одговарајућим начинима адресирања
  • 4 бита (16...19) који су одређивали начин адресирања:
    • бит 19: П - Посредно
    • бит 18: Р - Релативно
    • бит 17: И - Индиректно
    • бит 16: Н - Непосредно
  • 16 најнижих битова чине параметер или аргумент инструкције

[уреди] Регистри

НАР 2 има следеће регистре:

  • Бројач наредби БН
  • 32-битни акумулатор чији садржај може бити третиран било као реалан или цео број
  • До 16 индексних регистара, X0...X15. Међутим, X0 никада није био употребљен - могуће да је резервисан као бројач наредби БН

[уреди] Кодови инструкција

Бројни кодови инструкција нису одређени, само њихове словне ознаке:


[уреди] Инструкције за рад са регистрима

  • МУА - Меморија У Акумулатор - ставља вредност у акумулатор
  • АУМ - Акумулатор У Меморију - ставља вредност акумулатора у меморију
  • ПИР - Пуњење Индексног Регистра - ставља вредност у задати индексни регистар

[уреди] Целобројна аритметика

Напомена: све ознаке инструкција у овој групи се завршавају словом "Ф" што означава рад у "фиксном зарезу". Ово је, међутим, тачно само за инструкције сабирања, одузимања и негације (промене знака). Инструкције мнижења и дељења су чисто целобројне - зарез је фиксиран десно од цифре најмање тежине.

  • САБФ (Сабери у Фиксном зарезу) - додаје вредност у акумулатор
  • ОДУФ (Одузми у Фиксном зарезу) - одузиме вредност од акумулатора
  • МНОФ (Множи у Фиксном зарезу) - Множи акумулатор параметром
  • ДЕЛФ (Дели у Фиксном зарезу) - Дели акумулатор параметром
  • ПЗАФ (Промени Знак Акумулатора у Фиксном зарезу) - Врши негацију вредности акумулатора


[уреди] Аритметика са бројевима у покретном зарезу

  • САБ (Сабери) - додаје вредност у акумулатор
  • ОДУ (Одузми) - одузиме вредност од акумулатора
  • МНО (Множи) - Множи акумулатор параметром
  • ДЕЛ (Дели) - Дели акумулатор параметром
  • ПЗА (Промени Знак Акумулатора) - Врши негацију вредности акумулатора


[уреди] Логичке

  • КОН (Конјункција) - врши логичко "И" над акумулатором, са вредношћу параметра
  • ДИС (Дисјункција) - врши логичко "ИЛИ" над акумулатором, са вредношћу параметра
  • НЕГ (Негација) - врши логичко "НЕ" (инверзију) акумулатора (игнорише параметар)


[уреди] Логичка померања

  • ПОЛ (Помери Лево) - помера битове акумулатора на лево
  • ПОД (Помери Десно) - помера битове акумулатора на десно


[уреди] Контрола тока

  • НЕС (Негативни Скок) - извршава условни скок на задату адресу ако је вредност акумулатора негативна
  • БЕС (Безусловни Скок) - извршава безусловни скок на задату адресу
  • НУС (Нула-Скок) - извршава условни скок на задату адресу ако је вредност акумулатора нула
  • ЗАР (Заустави Рачунар) - зауставља рачунар

[уреди] Стандардна синтакса

Асемблер НАР 2 рачунара је конзистентан и једноставан за интерпретацију. Свака линија програма може да садржи до једне инструкције следећег облика:

  1. Словна ознака инструкције
  2. Празнина, у случају да инструкција одређује индексни регистар, начин адресирања или параметар; затим зарезом одвојене:
    1. Име индексног регистра (ако је потребно)
    2. Зарезом раздвојена слова која одређују начин адресирања
    3. Вредност параметра

Пример

  аум   X1, п, 0
  муа   н, 1
  аум   15
  пир   X1, п, н, 1
  муа   X1, п, н, 0
  одуф  н, 1
  одуф  X2, п, н, 0

[уреди] Начини адресирања

Са четири бита за одређивање начина адресирања (П, Р, И и Н), НАР 2 инструкције могу да задају до 16 различитих начина адресирања иако немају сви смисла у свим инструкцијама. Интересантно је да су називи начина адресирања изабрани тако да је могуће "П, Н" - посредно-непосредно адресирање и да се користе називи "посредно" и "индиректно" уместо "индексно" и "посредно".

У следећој табели:

  • M[x] означава 32-битну вредност (садржај) меморијске локације са адресом x
  • БН означава бројач наредби
  • p означава 16-битну вредност параметра (са знаком)
  • Xi означава индекси регистар задат подацима са треутне меморијке локације
  • f() је функција "ефективне вредности" при индиректном адресирању, која се рачуна по истој табели:
Одреднице адресирања Врста инструкције
П Р И Н Подаци Скок
- - - - M[p] p
- - - Н p p
- - I - M[f(M[p])] f(M[p])
- - И Н f(M[p]) f(M[p])
- Р - - M[БН+p] БН+p
- Р - Н БН+p БН+p
- Р I - M[f(M[БН+p])] f(M[БН+p])
- Р И Н f(M[БН+p]) f(M[БН+p])
П - - - M[Xi+p] Xi+p
П - - Н Xi+p Xi+p
П - И - M[f(M[Xi+p])] f(M[Xi+p])
П - И Н f(M[Xi+p]) f(M[Xi+p])
П Р - - M[БН+Xi+p] БН+Xi+p
П Р - Н BN+Xi+p BN+Xi+p
П Р И - M[f(M[БН+Xi+p])] f(M[БН+Xi+p])
П Р И Н f(M[БН+Xi+p]) f(M[БН+Xi+p])

Напомена: Одредница адресирања "Н" нема ефекте на инструкције за контролу тока јер процесор не може да скочи "у вредност" него само на задату адресу.

[уреди] Итеративно индиректно адресирање

НАР 2 подржава итеративно индиректно адресирање. Меморијска локација се прво рачуна узевши у обзир П и Р одреднице начина адресирања. Затим, ако је одредница "И" присутна, 32-битна машинска реч се чита са те локације и прорачун почиње из почетка, укључујићи нове одреднице начина адресирања, селектора индексног регистра и вредности параметра - само се код инструкције игнорише. Тако, ако следећи програм учитамо на адресу 0 и извршимо:

  муа И, 0

... замрзнућемо НАР 2 у бескрајној петљи прорачуна адресе:

  1. "И, 0" одређује да адреса податка за инструкцију треба да се учита са меморијске локације 0
  2. Садржај меморијске локације 0 се чита и он (опет) садржи "И, 0".
  3. "И, 0" одређује да адреса податка за инструкцију треба да се учита са меморијске локације 0
  4. Садржај меморијске локације 0 се чита и он (опет) садржи "И, 0".
  5. "И, 0" одређује да адреса податка за инструкцију треба да се учита са меморијске локације 0
  6. Садржај меморијске локације 0 се чита и он (опет) садржи "И, 0".
  7. ...

Приметите да:

  муа Р, И, 0

изгледа општије (може да замрзне НАР 2 са било које адресе), али ово зависи од тренутна када се садржај регистра БН мења.

Остаје питање третмана одренице "Н" (непосредно адресирање) заједно са одредницом "И" - да ли или не треба поштовати почетну/оригиналну одредницу "Н" из инструкције или ону која стиже са (индиректно) прочитаном адресом? Приказана табела приказује први случај само да би приказала више начина адресирања.

[уреди] Читање вредности индексних регистара

НАР 2 не садржи посебну инструкцију за читање садржаја индексних регистара која би парирала ПИР инструкцији. Ипак, постоји једноставан начин да се то изведе употребом посредног-непосредног адресирања (П, Н) као у следећем примеру:

  муа Xi, П, Н, n

... што поставља вредност Xi+n у акумулатор. За n=0 ово практично преписује садржај задатог индексног регистра у акумулатор.


Рачунари из Србије

1980‑2000:

ТИМ-100 | ТИМ-001 | ТИМ-600 | ТИМ-011 | ТИМ-40М | АТЛАС-ТИМ AT 32 | Галаксија | Галаксија Плус | Pecom 32 | Pecom 64 | Lira XT | Лола 8 | ПА512 | ЛПА512

1960‑1979:

ЦЕР Рачунари (ЦЕР-10, ЦЕР-2, ЦЕР-20, ЦЕР-200, ЦЕР-202, ЦЕР-22, ЦЕР-12, ЦЕР-203) | ХРС-100

Теоретски:

НАР 1 | НАР 2

Види још:

Потпун списак из Србије | бивше Југославије | Света и историју рачунара у: Србији | бившој Југославији | (бившим) комунистичким земљама | свету

Други језици
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu