Компьютерийн үндсэн архитектур: Сурах бичиг. Процессорууд. Компьютерийн командын систем. Хяналтын төхөөрөмжүүд. Процессор доторх мэдээллийн оролт гаралтын системийн зохион байгуулалт Компьютерийн командын төрлүүд

Компьютерийн функциональ ба бүтцийн зохион байгуулалт.

Өдөөгч

Энэ бол санах ойн элемент юм. Санах, хадгалах гэх мэт чадвартай төхөөрөмж. мэдээлэл.

RS flip-flops нь хоёр хаалганаас бүрдэх ба нэг хаалгатай эсвэл үгүй, хоёрдугаарт мөн үгүй.

RS гох нь түүний оролтын аль нь хамгийн сүүлд нэгтэй тэнцэх дохиог хүлээн авсныг санаж байна. Хэрэв дохиог S оролтод өгсөн бол флип-флоп нь нэгийг нь хадгалдаг. Хэрэв R оролтод дохио өгсөн бол флип-флоп тэгийг хадгалдаг.

0 1 1 - тохируулна 1

1 0 0 - 0 тохируулна

1 1 - зөвшөөрөгдөөгүй

Цогцуулагчдыг каскад хэлбэрээр холбосноор та дурын тооны цифртэй хоёртын тоонуудын логик нэмэгчийн хэлхээг авч болно.

Нэмэгч ба хагас нэмэгч нь нэг циклийн логик хэлхээ юм. Өдөөгч нь олон мөчлөгтэй байдаг.

Регистрүүд нь тэдгээрт бичигдсэн тоонуудыг бүртгэх, хадгалах, хөрвүүлэхэд зориулагдсан байдаг.

Тоолуур нь оролтын дохионы тоог хагасаар тоолж, үр дүнг хоёртын кодоор бүртгэх зориулалттай нэгж юм.

Энэ бол компьютерийн чадавхийг тодорхойлсон хийсвэр загвар юм. Энэ нь шийдэгдэж буй ажлуудын төрөл, нөөцийн шаардлага, даалгаврын төрлөөр (санах ой, процессорын шинж чанар) тодорхойлогддог.

Компьютерийн бүтцийн зохион байгуулалт нь бүрэлдэхүүн хэсэг, блокуудын дараалал, харилцаа холбоог тогтоодог физик загвар юм.

Команд гэдэг нь процессор шаардлагатай үйлдлүүдийг гүйцэтгэхэд шаардлагатай тодорхой талбаруудыг эзэлдэг хоёртын код хэлбэрийн мэдээллийн цуглуулга юм.

Тушаалын формат нь түүний талбаруудын тохиролцсон бүтэц, код, үүнд үйлдлийн код, операндуудын хаяг, үр дүнгийн хаяг орно.

Цагдаа A1 A3 Цагдаа A1 А2 A3

Цагдаа. ß---a3---à

Хаяглах аргууд: хаяг ба ассоциатив (агуулгаар хайх) - команд агуулсан кодыг тодорхойлохын тулд бүх нүдийг харах.

Хаягийн хайлт - хаягийн нүдэнд байгаа тоогоор мэдээллийг санах ойноос гаргаж авдаг. Гадаад төрхөөрөө энэ нь ил эсвэл далд байж болно. Ил тод – хаягийн кодын нүдийг агуулаагүй. Стек хаяглалтад далд хаяглалтыг ашигладаг.

Стек хоосон байна бичих бичих унших Б унших А стек хоосон байна

Стек нь дараалсан санах ойн эсүүд эсвэл регистрүүдийн бүлэг юм. Стек хаяг байхгүй бөгөөд хяналтын схемийг дараах дүрмийн дагуу байгуулна. Унших, бичихэд зөвхөн нэг бүртгэл байдаг, нэг нүд нь стекийн дээд хэсэг юм. Хамгийн сүүлд бичсэн бүртгэлийг эхнийх гэж үзнэ.

Автомат индекс хаяглалт - орчин үеийн компьютерт ашигладаг. Бүртгэлийн санах ойн агуулгыг үйл ажиллагааны өмнө эсвэл дараа нь байнга тодорхойлсон, тодорхой хэмжээгээр нэмэгдүүлж эсвэл багасгадаг. Энэ төрлийг их хэмжээний өгөгдөл боловсруулахад ашигладаг.



Академич Глушковын зарчим.

Мэдээлэл боловсруулах бүх нийтийн төхөөрөмж (1956). Энэ нь мэдээллийг хүлээн авах, хадгалах, хөрвүүлэх боломжийг олгодог регистр, нэмэгч болон бусад зангилаанаас бүрдэнэ. Мэдээлэл боловсруулах төхөөрөмжийн цаг хугацааны явцад ажиллах үйл явц нь үйлдлийн хэсэг нь тодорхой үйлдлүүдийг гүйцэтгэдэг цагийн интервалуудын дарааллаас бүрддэг бөгөөд эдгээр үйлдлүүдийн гүйцэтгэл нь хяналтын дохионы дагуу явагддаг.

Микропрограм нь үйл ажиллагааны гүйцэтгэлийг хангах бичил командуудын дараалал юм.

Микрокоманд нь хяналтын дохионы дараалал юм.

Ерөнхий мэдээлэл. Тодорхой микропроцессорын тогтмол зааврын багц гэж нэрлэдэг тушаалын систем.Процессорын үйл ажиллагааг хослуулан тодорхойлно үндсэнөөр өөр үйлдлийн код бүхий тушаалууд. Нийт тооСистемд үндсэн командуудын тооноос илүү олон тушаалууд (үйл ажиллагааны кодууд) үргэлж байдаг. Жишээлбэл, үндсэн команд нь MOV dst, scr командыг агуулдаг бөгөөд энэ нь эх scr-аас очих dst руу өгөгдөл илгээх функцийг хангадаг. Системд ийм командууд олон байж болно. Тушаалын системийг хүснэгт хэлбэрээр үзүүлэв. Хүснэгт нь өөр бүтэцтэй байж болох ч ихэвчлэн тушаалын талаарх дараах мэдээллийг агуулна.

  • мнемониккоманд гэдэг нь командын нэрний товчлол юм. Үүнийг хийхийн тулд тушаалаар гүйцэтгэсэн үйлдлийн нэрийг 3-4 латин үсгээр бичнэ. Мнемониккомандын үйлдлийн кодыг илэрхийлэх тохиромжтой хэлбэр юм. Үүнийг ассемблер хэлээр командыг тайлбарлахад бас ашигладаг. Ассемблер програм нь опкодын мнемоник тэмдэглэгээг харгалзах хоёртын эквивалент болгон хувиргадаг;
  • арван зургаатын кодуудтушаалууд;
  • гүйцэтгэсэн тушаалын тугуудад үзүүлэх нөлөөхөтөлбөрийн статусын бүртгэл;
  • байтын тообаг дээр болон машины цикл ба мөчлөгийн тоо, тушаалыг гүйцэтгэхэд зарцуулсан;
  • аманба/эсвэл бэлгэдлийн тайлбартушаалаар гүйцэтгэсэн үйлдэл.

Ихэнхдээ, тав тухтай байлгах үүднээс командын системийг функциональ байдлаар нь тусдаа бүлэгт хуваадаг. Жишээлбэл, 78 үндсэн команд агуулсан KR580VM80 микропроцессорын командын системийг 5 бүлэгт хуваадаг. Бүлэг бүрийн командуудын функциональ шинж чанаруудын товч тайлбарыг доор харуулав.

Тушаалуудын урт нь 1-ээс 3 байт хооронд хэлбэлздэг. Опкодыг үргэлж командын эхний байтад байрлуулна. Командын хоёр дахь байт нь шууд операнд эсвэл портын хаяг, хоёр ба гурав дахь байт нь санах ойн эсийн хаяг юм. Тушаалууд нь зөвхөн нэг санах ойн хаягийг тодорхой тохируулахыг зөвшөөрдөг, өөрөөр хэлбэл тэдгээр нь unicast командын ангилалд багтдаг. Командуудыг тайлбарлахдаа ашиглана уу дараах тэмдэглэгээ:

  • src, dst – 8 битийн эх сурвалж ба очих газар. Эх сурвалж эсвэл очих газар нь 8 битийн A, B, C, D, E, H регистрүүдийн аль нэг эсвэл M санах ойн нүд байж болох бөгөөд тэдгээрт хандах хандалтыг илгээж буй байтын хаягийг агуулсан регистрийн хос H L хангадаг. Опкодын хувьд эх сурвалж src болон очих dst нь гурван битийн код SSS болон DDD гэж тодорхойлогддог;
  • RP – BC, DE, N L, A + RP (онцлогын бүртгэл) эсвэл стек заагч SP хос регистрүүдийн хоёр битийн код;
  • өгөгдөл, өгөгдөл 16 – 8 ба 16 бит операнд;
  • addr, порт – 16 битийн санах ойн хаяг ба 8 битийн порт хаяг;
  • (addr), (SP) - заасан хаягууд дахь санах ойн эсийн агуулга;
  • (SP)+, -(SP) – стектэй өсөлтийн дараах болон нэмэгдлийн өмнөх үйлдлүүд. Дамжуулах командууд. Энэ бүлэг нь программуудад хамгийн их ашиглагддаг өгөгдөл дамжуулах зааврыг агуулдаг бөгөөд тэдгээрийн эх үүсвэр, очих газар нь дотоод процессорын бүртгэл, үндсэн санах ой, гадаад төхөөрөмж байж болно. Командууд нь статус бүртгэлийн тугуудад ямар ч нөлөө үзүүлэхгүй.

Командын мнемоник нь хийгдэж буй үйлдлийн шинж чанар, хаяглах аргыг тусгадаг. Жишээлбэл, мнемоник MOV, MVI нь операндуудын хөдөлгөөнийг илэрхийлдэг; LDA, LDAX, LXI, LHLD – ачаалах зориулалттай (Ачаалал); STA, STAX, SHLD – хадгалах. Байттай үйлдлүүдийн хувьд MOV, MVI, LDA, STA, LDAX, STAX гэсэн мнемоник ашигладаг; үгтэй үйлдлийн хувьд – LXI, LHLD, SHLD. Аккумляторын агуулгыг ачаалах, хадгалах үед шууд хаяглах нь LDA ба STA-д, шууд бус хаяглалт нь LDAX ба STAX-д тусгагдсан байдаг.

Энэ бүлгийн багуудыг хүснэгтэд нэгтгэн харуулав. 5.8. Тэд танд дараах боломжийг олгоно:

  • өгөгдөл дамжуулах үйл ажиллагааэх (src) ба очих газар (dst) хооронд dst ← src (тушаал 1) гэж бичигдэнэ. Эх сурвалж, очих газар нь дотоод бүртгэл юм ерөнхий зорилго(A, B, C, D, E, H) болон санах ойн нүд M. M ← M-ээс бусад ямар ч хослолыг зөвшөөрдөг, өөрөөр хэлбэл санах ойн M нүдийг дахин ачаалахыг зөвшөөрдөггүй;
  • ачаалж байнаерөнхий зориулалтын регистрүүд болон хоёр дахь байт B2 (команд 2) бүхий M нүд, BC, DE, HL (SP стек заагчийг оруулаад) хоёр дахь B2 ба гурав дахь B3 байт (команд 3) бүхий хос бүртгэл, B3 нь үргэлж ачаалагддаг. дээд регистрүүд (B, D, H) хосууд, B2 - бага регистрүүд (C, E, L);
  • дамжуулахбатерей А ба үндсэн санах ой (команд 4÷7), зай болон гадаад төхөөрөмжийн хооронд өгөгдөл (команд 8, 9). А батерей ба санах ойн хооронд шилжих үед санах ойн эсийн хаягууд нь BC, DE хос регистр эсвэл командын гурав, хоёр дахь байт (B3B2) дээр байрладаг;

Хүснэгт 5.8

Мнемоник

Гүйцэтгэсэн

үйл ажиллагаа

үйл ажиллагаа

dst src

А (addr)

Тэмдэглэл: RP – BC, DE, HL, A + RP (онцлогын бүртгэл) эсвэл стек заагч SP хос регистрүүдийн 2 битийн код; B – байт, U – цикл, T – цикл.

  • дамжуулаххос HL бүртгэл ба санах ойн хоорондох өгөгдөл (багууд 10, 11). Энэ тохиолдолд L регистрээс операндыг командын гурав, хоёр дахь байтаас бүрдсэн B3B2 хаягтай нүд рүү, H регистрээс нэгээс дээш хаяг руу илгээнэ. Урвуу дамжуулалтын үед эхлээд эхний операндыг B3B2 хаягтай нүднээс L регистр рүү, дараа нь хоёр дахь нь B3B2+1 хаягтай нүднээс H регистр рүү ачаалагдана;
  • дамжуулаххос регистрүүдийн хоорондох өгөгдөл, түүний дотор А аккумлятор болон RP функцийн регистр, стек (багууд 12, 13). Стек рүү бичих үед стек заагчийн агуулгыг нэгээр багасгаж, SP-1 хаяг дээр эхний операндыг B, D, H, эсвэл A регистрүүдийн аль нэгэнд ачаалсны дараа стек заагчийн агуулгыг бууруулна. дахин нэгээр, хоёр дахь операндыг C, E, L эсвэл RP регистрээс SP–2 хаягаар ачаална. Стекээс гарч ирэх үед стек заагчийн SP хаягтай нүдэнд хадгалагдсан операнд эхлээд C, E, L, эсвэл RP регистрүүдийн аль нэгэнд ачаалагдана. Дараа нь агуулгыг SP + 1 хаягийн нүднээс нэгээр нэмэгдүүлж, хоёр дахь операндыг B, D, H, эсвэл A регистрүүдийн аль нэгэнд ачаалж, стек заагчийн агуулгыг дахин нэгээр нэмэгдүүлж, утга SP + 2. A, RP (түүний код RP = 11) хос регистрийг стекээс ачаалах үед RP атрибутын регистрийн триггерүүдийн төлөв өөрчлөгддөг гэдгийг тэмдэглэх нь зүйтэй. Энэ нь шинж чанаруудад нөлөөлдөг цорын ганц команд (бүх өгөгдөл дамжуулах командуудын) юм;
  • дамжуулах HL регистрийн хосын агуулгыг стек заагч SP болон програмын тоолуур компьютерт оруулах (заавар 14, 15);
  • солилцох HL ба DE регистрийн хос, HL регистрийн хос болон стекийн хоорондох өгөгдөл (заавар 16, 17). Солилцооны явцад HL регистрийн хосын агуулгыг DE хос буюу стект, DE регистрийн хос буюу стекийн агуулгыг HL хост байрлуулна. Солилцооны ажиллагааг "↔" тэмдгээр тэмдэглэнэ.

Арифметик командууд. Микропроцессорын тооцоолох чадвар нь 8 битийн операнд дээр нэмэх, хасах энгийн зааварчилгаагаар хязгаарлагддаг. Үржүүлэх, хуваах үйлдлүүд хэрэгждэг программын хувьд. Командын багц (Хүснэгт 5.9) нь дараахь зүйлийг хийх боломжийг танд олгоно.

  • нэмэлтТэгээд хасах 8 битийн операндууд нь зөөвөрлөхтэй, зөөвөрлөхгүй (заавар l÷8), операндуудын аль нэг нь үргэлж аккумляторт, хоёр дахь нь ерөнхий зориулалтын регистрүүдийн аль нэгэнд (санах ойн нүд M) эсвэл командын хоёр дахь байт байна. . Олон байт тоог нэмэх, хасах үед онцлог регистрийн дамжуулах дохио С-ийн утгыг харгалзан үзсэн командуудыг ашигладаг. Үүнтэй ижил зорилгоор та 9-р тушаалыг ашиглан 16 битийн хаягтай регистр бүхий хос HL регистрийн агуулгыг нэмж болно;
  • арифметик харьцуулалтерөнхий зориулалтын регистрүүдийн аль нэг Rn (санах ойн нүд M) эсвэл B2 хоёр дахь байт (10+11 командууд) бүхий аккумлятор А-ийн агуулга. Энэ тохиолдолд A – Rn эсвэл A – B2 хасах үйлдлийг гүйцэтгэнэ. Харьцуулалтын үр дүнг шинж чанарын бүртгэлийн гох дохиогоор тодорхойлно: хэрэв Z = 1 бол A = Rn эсвэл A = B2; хэрэв S = 1 бол A > Rn эсвэл A > B2. Батерейны агууламж өөрчлөгдөхгүй;
  • нэмэгдүүлэхТэгээд буурах 1-ээр (нэмэгдүүлэхТэгээд бууруулах)регистр ба бүртгэлийн хосуудын агуулга. Ихэнхдээ програмчлах үед

Хүснэгт 5.9

Мнемоник

Гүйцэтгэх ажиллагаа

үйл ажиллагаа

A ← A + src + C

A ←A – src – C

A ← A + өгөгдөл + CY

A ← A – өгөгдөл

A ← A – өгөгдөл – CY

A – scr (харьцуулалт)

A – scr (харьцуулалт)

dst ← dst – 1

A ← 2/10-засвар А

операндын утгыг нэгээр нэмэгдүүлэх, багасгах шаардлага гарч байна. Үүнийг хийхийн тулд та A + B2 нэмэх эсвэл A – B2 хасах, B2 ​​= 1 гэж бичих үйлдлүүдийг ашиглаж болно, гэхдээ зааврын систем нь 8- болон тоог нэмэгдүүлэх, багасгах тусгай зааврыг (12-5-15) өгдөг. 16 битийн операндууд;

аравтын засвар BCD 8421 (заавар 16) дахь арифметик үйлдлийг гүйцэтгэсний дараа аккумляторын агуулга. Энэ тохиолдолд аккумляторын агуулгыг хоёр nibble хэлбэрээр дүрсэлсэн бөгөөд тус бүр нь аравтын оронтой тохирч байна. Засварыг § 5.2 (х. 99) -д заасан дүрмийн дагуу аравтын бутархай засах блокоор хийдэг.

Логик үйлдлийн командууд. Энэ бүлгийн командууд (Хүснэгт 5.10) нь дараахь зүйлийг хэрэгжүүлэх боломжийг танд олгоно.

  • давхар логик үйлдлүүд үржүүлэх(БА), нэмэлт(OR) ба онцгой OR 8 битээс дээш операндууд (заавар 1÷6). Логик үйлдлүүд нь битийн чиглэлтэй бөгөөд найман операнд бит тус бүрээр бие даан хийгдэнэ. Хаяггүй операнд нь аккумляторт байрладаг бөгөөд үйл ажиллагааны үр дүн мөн тэнд очдог. Хоёр дахь операнд нь ерөнхий зориулалтын регистрүүдийн аль нэгний (санах ойн нүд M) эсвэл зааврын хоёр дахь байтын агуулга юм;
  • урвууА батерейны агуулга (тушаал 7);
  • туг тушаалууд (8, 9) урвууТэгээд суурилуулалтаттрибутын регистрийн дамжуулалтын триггерийн бит С;
  • хоёр төрөл мөчлөгийн өөрчлөлтүүдзайны агууламж зүүн ба баруун (Yul-13 тушаалууд). Эхний төрлийн ээлжийг (зөөвөрлөхгүйгээр шилжүүлэх) бүх аккумляторын гохыг хоёр дахь төрлийн ээлжээр (зөөвөрлөх, эсвэл сунгах) цагираг руу хаах замаар хэрэгжүүлдэг, атрибутын регистрийн зөөвөрлөх гох С-ийг нэмж оруулав; бөгж. Командын системд байхгүй байгаа хоёр чиглэлийн логик болон арифметик шилжилтийг эхлээд өргөтгөсөн шилжилтийн хамт C битийг 0 эсвэл 1 болгож тохируулснаар хэрэгжүүлж болно.

Дамжуулах командуудыг удирдах. Удирдлагыг шилжүүлэх үед санах ойн нүднүүдийн агуулгыг татах дараалсан үйл явц эвдэрч, процессор өөр санах ойн талбарт хаяглагдсан байдаг. Онцлох

Хүснэгт 5.10

Мнемоник

Гүйцэтгэсэн

үйл ажиллагаа

үйл ажиллагаа

A ← A l src – үржүүлэх

A ← A v src – нэмэх

A ← A © src – бусад. ЭСВЭЛ

A ← A l өгөгдөл

A ← A © өгөгдөл

гурван төрлийн удирдлагын шилжүүлгийн командууд: командууд шилжилтөгөгдсөн хаяг дээр (JMP), залгахдэд програмууд (CALL) болон буцахдэд програмаас (RET). Үүнд: болзолгүйТэгээд нөхцөлтбагууд. Нөхцөлт командууд нь атрибут регистрийн (эсвэл төлөв) Z, C, S, P дөрвөн триггерийн аль нэгний дохионы утгаар тодорхойлогдсон тугийн төлөвөөс хамааран шилжилтийг хийж, дэд програмыг дуудаж, дэд программаас буцаж ирдэг. . 8080 процессор нь дөрвөн тугийн (Z, C, P, S) хоёр төлөвийг (1 ба 0) ашигладаг бөгөөд команд бүрт 8 сонголт хийх боломжийг олгодог (Хүснэгт 5.11). Аттрибутын (нөхцөл) тэмдэглэгээг одоор (**) оронд J**, C**, R** нөхцөлт командуудын мнемоник дээр зааж өгсөн болно. Жишээлбэл, C = 0 үед шилжилтийн нөхцөл хангагдсан гэж үздэг NC шинж чанар нь JNC командтай тохирч байна.

Нөхцөл ба болзолгүй үсрэлт болон дэд программын дуудлага нь 64 килобайт санах ойн аль ч цэг рүү хяналтыг шилжүүлэхийн тулд бүтэн 16 битийн шууд хаягийг ашигладаг.

Хүснэгт 5.11

Хүснэгтэнд үзүүлсэн командуудын онцлогуудыг харцгаая. 5.12.

Гурван байт JMP зааврыг ашиглан үүнийг хэрэгжүүлдэг болзолгүйхяналтыг шилжүүлэх. Энэ тохиолдолд командын хоёр ба гурав дахь байт (програмын үргэлжилсэн хаяг хаяг) нь компьютерийн командын тоолуурт ордог (B3-ийн агуулга нь дээд эрэмбийн битүүдэд, В2 нь доод эрэмбийн битүүдэд).

Багууд нөхцөлтхяналтын дамжуулалтууд J** нөхцөл байдлаас шалтгаалан тооцооллын процессыг салбарлан хэрэгжүүлэх. Нөхцөл (ТИЙМ) хангагдсан тохиолдолд командын хоёр ба гурав дахь байтыг компьютерийн тоолуурт оруулна, үгүй ​​бол (ҮГҮЙ) тоологчийн агуулгыг 3 нэгжээр нэмэгдүүлнэ. Хөтөлбөр нь програмын тоолуур дээр байрлах хаягаар үргэлжилдэг, i.e. дараагийн тушаалаас.

Хүснэгт 5.12

Мнемоник

Гүйцэтгэсэн

үйл ажиллагаа

үйл ажиллагаа

Багууд болзолгүй(ДУУДЛАГА) болон нөхцөлт(ХАМТ**) дуудлагань үндсэн санах ойн өөр хэсэгт хадгалагдсан дэд программуудад хандахад ашиглагддаг. Эдгээр заавар нь компьютерийн програмын тоолуурын агуулгыг стек дээр хадгалах замаар тасалдсан үндсэн програм руу буцах боломжийг үргэлж олгодог. Буцах үйлдлийг хийсний дараа:

  • цагт болзолгүйзалгах эсвэл болзол биелүүлэхкомандын хоёр ба гурав дахь байтыг компьютерийн програмын тоолуурт оруулна;
  • цагт нөхцөлийг биелүүлэхгүй байхпрограмын тоолуурын агуулга 3 нэгжээр нэмэгддэг.

Програм нь компьютерийн програмын тоолуур дээр байрлах хаягаар үргэлжилнэ.

Уг багц нь хэрэгжүүлэх боломжийг олгодог тушаалуудыг агуулдаг болзолгүй(RET) ба нөхцөлт (K**) хяналтыг буцаан шилжүүлэхтасалдсан хөтөлбөр рүү. Эдгээр зааврыг гүйцэтгэх үед буцах хаяг нь стекээс компьютерийн програмын тоолуур руу дахин бичигдэх бөгөөд үүнд өсөлтийн дараах хаяглалтын аргыг ашигладаг. Хэрэв буцах нөхцөл хангагдаагүй бол (нөхцөлтэй командын хувьд) дараагийн команд руу шилжих нь компьютерийн тоолуурын програмын агуулгыг нэгээр нэмэгдүүлэх замаар хийгддэг. Стек заагч SP нь тасалдсан програм руу буцах хаягийн хамт стекийн байршлын хаягийг хадгалдаг тул буцаах заавар нь нэг байт заавар юм.

PCHL заавар нь HL регистрийн хосод хадгалагдсан хаягтай програмын тоолуур компьютерийг ачаална.

Ерөнхий удирдлагын багууд. Энэ бүлгийн командууд (Хүснэгт 5.13) микропроцессорын ажиллах горимыг тохируулахад ашиглагддаг. RST заавар нь микропроцессорыг дахин эхлүүлэх болон тасалдлыг засварлахад ашиглагддаг. Үүнийг гүйцэтгэх үед:

  • Програмын тоолуурын агуулгыг стек заагч дээр үүсгэсэн SP – 1, SP – 2 хаягуудаар дамжуулдаг бөгөөд энэ нь үндсэн програм руу буцахыг баталгаажуулдаг;
  • Тасалдлын үйлчилгээний 8 програмын аль нэгийг эхлүүлэх 16 битийн хаягийг програмын тоолуур руу илгээдэг.

Хүснэгт 5.13

Мнемоник

Гүйцэтгэсэн

үйл ажиллагаа

үйл ажиллагаа

–(SP) ← PC ← 8×n, n = 0 – 7

Тасалдлыг идэвхжүүлэх

Тасалдлыг идэвхгүй болгох

Маск уншиж байна

Маск суурилуулах

Үйл ажиллагаа байхгүй

EI тасалдлын идэвхжүүлэх команд нь INTE тасалдлыг идэвхжүүлэх гохыг нэг төлөвт тохируулж, микропроцессор тасалдлын хүсэлтэд хариу үйлдэл үзүүлэхэд хүргэдэг. DI тасалдлыг идэвхгүй болгох команд нь INTE флип-флопыг тэг болгож тохируулдаг. Хоосон NOP командыг програмчлах боломжтой саатлын гогцоонд ашигладаг. HLT зогсоох команд нь програмын гүйцэтгэлийг зогсооход хүргэдэг.

Чухал салшгүй хэсэгКомпьютерийн бүтэц нь командын систем юм. Гэсэн хэдий ч их тооХамгийн доод түвшний ("машин") компьютеруудын төрөл зүйл нь нийтлэг зүйлтэй байдаг. Аливаа компьютерийн командын систем нь дараах бүлэг мэдээлэл боловсруулах командуудыг агуулсан байх ёстой. 1. Мэдээллийг нэг газраас нөгөөд хуулах өгөгдөл дамжуулах (тооллого) командууд. 2. Компьютерийн технологи үнэн хэрэгтээ нэрээ авсан арифметик үйлдлүүд. Мэдээжийн хэрэг, орчин үеийн компьютерт тооцоолох үйлдлүүдийн эзлэх хувь мэдэгдэхүйц буурсан боловч тэдгээр нь програмуудад чухал үүрэг гүйцэтгэдэг. Арифметикийн үндсэн үйлдлүүд нь ихэвчлэн нэмэх, хасах үйлдлүүдийг багтаадаг гэдгийг анхаарна уу (сүүлийнх нь эцсийн дүндээ ихэвчлэн нэг аргаар нэмэхийг багасгадаг). Үржүүлэх, хуваах үйл явцын хувьд олон компьютерт тэдгээрийг дагуу гүйцэтгэдэг тусгай хөтөлбөрүүд. 3. Компьютерт боловсруулж буй мэдээлэлд дүн шинжилгээ хийх боломжийг олгодог логик үйлдлүүд. Хамгийн энгийн жишээнүүд бол харьцуулалт, түүнчлэн сайн мэддэг AND, OR, NOT (inversion) логик үйлдлүүд юм. Нэмж дурдахад тус тусдаа кодын битүүдийн дүн шинжилгээ, тэдгээрийг дахин тохируулах, суулгах нь ихэвчлэн нэмэгддэг. 4. Хоёртын код нь зүүн, баруун тийш шилжинэ. Энэ бүлгийн командын ач холбогдлыг батлахын тулд баганыг үржүүлэх дүрмийг эргэн санахад хангалттай: дараагийн бүтээгдэхүүн бүрийг нэг оронтой зүүн тийш шилжүүлэн ийм схемд бичнэ. Зарим онцгой тохиолдлуудад үржүүлэх, хуваах үйлдлийг ерөнхийд нь ээлжээр сольж болно (баруун талд тэгийг нэмэх эсвэл хасах замаар, өөрөөр хэлбэл аравтын бутархай тоог бодитоор шилжүүлснээр та үүнийг 10 дахин нэмэгдүүлж эсвэл багасгаж болно гэдгийг санаарай). 5. Гадаад төхөөрөмжтэй солилцох мэдээлэл оруулах, гаргах командууд. Зарим компьютерт гадаад төхөөрөмжүүд нь тусгай үйлчилгээний санах ойн хаяг байдаг тул оролт гаралтыг тооллогын командуудыг ашиглан гүйцэтгэдэг. 6. Шугаман бус алгоритмуудыг хэрэгжүүлэх удирдлагын командууд. Үүнд үндсэндээ нөхцөлт болон болзолгүй үсрэлтүүд, мөн дэд программыг дуудах командууд (буцах замаар үсрэх) багтана. Зарим компьютерууд гогцоонуудыг зохион байгуулах тусгай тушаалуудтай байдаг боловч энэ нь шаардлагагүй: гогцоог нөхцөлт болон болзолгүй шилжилтийн нэг буюу өөр хослол болгон бууруулж болно. Ихэнхдээ ижил бүлгийн командууд нь процессорыг удирдах хэд хэдэн үйлдлийг агуулдаг, тухайлбал "зогсоох" эсвэл "Үйлдэл байхгүй"). Заримдаа тэд тусгай бүлэгт хуваагддаг. Процессорын төхөөрөмжийн нарийн төвөгтэй байдал нэмэгдэхийн хэрээр хяналтын битүүдийн төлөв байдалд дүн шинжилгээ хийх, тэдгээрт ажиллах командуудын тоо нэмэгддэг. Энд жишээ болгон бид процессорын ажиллах горимын битүүд болон гадны төхөөрөмжүүдийн тасалдлын механизмын хяналтын битүүдийг нэрлэж болно. Сүүлийн үед бүх зүйл том үүрэгЗааварчилгааны багц нь нэг өгөгдлийн форматаас нөгөө формат руу хөрвүүлэх командуудыг агуулдаг (жишээлбэл, 8-битээс 16-бит гэх мэт) бөгөөд энэ нь өгөгдөл боловсруулах ажлыг ихээхэн хялбаршуулдаг. янз бүрийн төрөл , гэхдээ зарчмын хувьд хэд хэдэн энгийн командын дарааллаар сольж болно. Тушаалын системийг авч үзвэл түүний бүтээн байгуулалтад хоорондоо өрсөлдөж буй орчин үеийн хоёр чиглэлийг дурдахгүй байхын аргагүй юм: CISC (Complex Instruction Set Computer) командын бүрэн багц бүхий компьютер ба хязгаарлагдмал багц - RISC (Reduced Instruction Set Computer). Энэ хуваагдал нь ихэнх тохиолдолд компьютер нь зааврынхоо багахан хэсгийг гүйцэтгэх ёстой байдаг бол үлдсэн хэсэг нь хааяа ашиглагддаг (нэг алдартай нийтлэлд үүнийг дараах харааны аналоги хэлбэрээр хошигнож өгүүлдэг: "20%. Хүн амын 80% нь шар айраг уудаг." Тиймээс, хэрэв та үйлдлүүдийн багцыг хамгийн энгийн бөгөөд богино хугацаанд мэдэгдэхүйц хязгаарлаж, харин тэдгээрийг сайтар оновчтой болговол та нэлээд үр дүнтэй, хурдан RISC машин авах болно. Үнэн бол та програм хангамжийн "хаягдсан" тушаалуудыг хэрэгжүүлэх хэрэгцээ шаардлагаас болж хурдны төлбөрийг төлөх шаардлагатай болно, гэхдээ энэ төлбөр нь ихэвчлэн үндэслэлтэй байдаг: жишээлбэл, шинжлэх ухааны тооцоо эсвэл компьютерийн графикийн хувьд хурд нь програмчлалын асуудлаас хамаагүй чухал байдаг. Орчин үеийн микропроцессорын зааварчилгааны системтэй холбоотой асуудлуудыг энэ бүлгийн дараа илүү дэлгэрэнгүй авч үзэх болно. Дүгнэж хэлэхэд, компьютерийн хурдацтай хувьслын явцад үндсэн командуудын багц бага зэрэг өөрчлөгдсөнийг бид дахин онцолж байна. Үүний зэрэгцээ санах ой дахь мэдээллийн байршлын хаягийг зааж өгөх аргууд нь ихээхэн өөрчлөлтөд орсон бөгөөд онцгой анхаарал хандуулах ёстой. Компьютерийн команд нь ихэвчлэн үйлдлийн болон хаяг гэсэн хоёр хэсгээс бүрдэнэ. Үйлдлийн хэсэг (өөрөөр үйлдлийн код гэж нэрлэдэг - OPC) нь мэдээлэлтэй ямар үйлдэл хийх шаардлагатайг заадаг. Хаягийн хэсэг нь ашигласан мэдээлэл хаана хадгалагдаж байгааг тодорхойлдог. Хэд хэдэн машины ажиллагааг хянах командууд нь хаягийн хэсэггүй байж болно, жишээлбэл, зогсоох командад; үйл ажиллагааны хэсэг нь үргэлж байдаг. Үйлдлийн кодыг командын системийн ерөнхий жагсаалтад тодорхой ердийн тоо гэж үзэж болно. Үндсэндээ энэ жагсаалтыг тодорхой дотоод хэв маягийн дагуу бүтээдэг боловч тэдгээр нь үргэлж тодорхой байдаггүй. Хаягийн хэсэг нь илүү олон төрөлтэй тул илүү нарийвчлан авч үзэх хэрэгтэй. Юуны өмнө зааврууд нь тэдгээрт хамаарах операндуудын тооноос хамааран нэг, хоёр, гурван хаягтай байж болно гэдгийг бид тэмдэглэж байна. Эхний компьютерууд нь хамгийн энгийн бөгөөд ойлгомжтой гурван хаягтай командын системтэй байв. Жишээ нь: санах ойн A1, A2 хаягуудаас тоо авч, тэдгээрийг нэмж, нийлбэрийг A3 хаяг руу оруулна. Хэрэв мэс засал шаардлагатай бол бага тоо хаягууд, дараа нь нэмэлт хаягуудыг ашиглаагүй. Тооллогын ажиллагаанд зөвхөн А1, А3 мэдээллийн эх, хүлээн авагчийн нүдийг зааж өгсөн бөгөөд А2-ын агуулга ямар ч утгагүй байсан гэж бодъё. Гурван хаягтай команд нь тайлахад хялбар бөгөөд ашиглахад тохиромжтой байсан ч RAM-ийн хэмжээ нэмэгдэхийн хэрээр түүний урт нь маш том болсон. Үнэн хэрэгтээ, тушаалын урт нь гурван хаяг, үйлдлийн кодын уртын нийлбэр юм. Жишээлбэл, 1024 нүдтэй энгийн RAM-ийн хувьд нэг командын хаягийн хэсгийг бичихэд 3 * 10 = 30 хоёртын бит шаардлагатай байдаг бөгөөд энэ нь техникийн хэрэгжилтэд тийм ч тохиромжтой биш юм. Тиймээс үр дүнг бүртгэх хаягийг устгаснаар командын уртыг багасгасан хоёр хаягтай машинууд гарч ирэв. Ийм компьютерт үйлдлийн үр дүн нь тусгай бүртгэлд (нэмдэгч) үлдсэн бөгөөд дараагийн тооцоололд ашиглахад тохиромжтой байв. Зарим машинд үр дүнг аль нэг операндын оронд бичдэг байсан. Тушаалыг цаашид хялбаршуулах нь unicast машинуудыг бий болгоход хүргэсэн. Тодорхой энгийн жишээн дээр ийм компьютерийн командын системийг авч үзье. Бид A1, A2 RAM хаягтай нүдэнд хадгалагдсан тоонуудыг нэмж, нийлбэрийг A3 хаягтай нүдэнд байрлуулах шаардлагатай гэж бодъё. Энэ асуудлыг шийдэхийн тулд unicast машин гурван командыг гүйцэтгэх шаардлагатай: A1 нүдний агуулгыг нэмэгч рүү задлах; А2-аас тоогоор нэмэгчийг нэмнэ; А3 дээр нэмэгчээс гарсан үр дүнг бичнэ. Unicast машин нь гурван хаягтай машинаас гурав дахин олон команд шаарддаг юм шиг санагдаж магадгүй юм. Үнэндээ энэ нь үргэлж тийм байдаггүй. A5 = (A1 + A2)*AZ/A4 илэрхийлэлийг тооцоолох өөрийн программыг төлөвлөж үзээрэй, танд гурван гурван хаягтай команд, зөвхөн таван Unicast тушаал хэрэгтэй болно. Тиймээс, unicast машин нь санах ойд шаардлагагүй завсрын үр дүнг бичдэггүй тул зарим талаараа илүү үр дүнтэй байдаг. Бүрэн гүйцэд байхын тулд санах ойг зохион байгуулах тусгай арга - стек ашигладаг хаяггүй (тэг хаягтай) машиныг хэрэгжүүлэх боломжийн талаар хэлэх хэрэгтэй. Ийм машины зарчмуудыг ойлгохын тулд нэлээд нарийвчилсан тайлбар хийх шаардлагатай болно. Өнөө үед хаяггүй компьютер бараг ашиглагддаггүй. Тиймээс бид ижил төстэй зохион байгуулалттай командын систем нь зарим программчлагдах микро тооцоолуур (жишээлбэл, "BZ-21", "BZ-34" гэх мэт) үндэс суурь болсон гэдгийг дурдах төдийд л хязгаарлагдах болно. Одоог хүртэл бид машины зааврын бүтцийг тайлбарлахдаа мэдээллийн хаяг гэсэн зөн совингийн ойлголтыг ашигласан. Одоо RAM-ийн элементүүдийг илүү нарийвчлан, хатуу авч үзэх асуудлыг авч үзье. Санах ой нь эхний хоёр үеийн компьютеруудад хамгийн энгийн байдлаар зохион байгуулагдсан. Энэ нь тусдаа нүднүүдээс бүрдэх бөгөөд тэдгээрийн агуулгыг нэг нэгж болгон уншиж эсвэл бичсэн байв. Санах ойн нүд бүр өөрийн гэсэн дугаартай байсан бөгөөд үүнийг хаяг гэж нэрлэдэг байв. Мэдээжийн хэрэг, хөрш зэргэлдээх RAM эсийн хаягууд нь дараалсан бүхэл тоонууд, i.e. нэгээр ялгаатай. Харж буй компьютерууд нь зөвхөн нэг төрлийн (бодит тоо) өгөгдлийг ашигласан бөгөөд тэдгээрийн урт нь машины зааврын урттай тэнцүү бөгөөд санах ой болон машины бусад бүх төхөөрөмжүүдийн багтаамжтай давхцаж байв. Жишээлбэл, ердийн хоёр дахь үеийн компьютерийн үүр нь 36 хоёртын битээс бүрддэг болохыг онцлон тэмдэглэе. Ихэнх тохиолдолд програм нь дараалсан байрласан нүднүүдийн тодорхой хэмжээний агуулгыг ижил томьёо ашиглан боловсруулах зорилготой байсан (хэл дээр). өндөр түвшинЭнэ төрлийн бүтцийг хожим массив гэж нэрлэдэг). Эхний хоёр үеийн компьютерууд нь мэдээллийн массивыг циклээр боловсруулах тусгай механизмаар хангасан. Үүний тулд машины зааварт ердийн хаягуудаас гадна тусгай хяналтын битийг нэг болгож тохируулсан өөрчлөх боломжтой хаягуудыг ашиглах боломжтой байв. Командыг гүйцэтгэх үед ийм байдлаар тэмдэглэгдсэн өөрчлөгдсөн хаягууд нь тусгай индексийн нүднүүдийн утгын хамт нэмэгдсэн. Индекс нүднүүдийн агуулгыг өөрчилснөөр массивын өөр өөр элементүүдэд хандах боломжтой болсон. Үүссэн хаягийг үүсгэх нь тушаалыг гүйцэтгэх үед хяналтын хэсэгт хийгдсэн тул RAM дахь анхны командыг өөрчлөхгүйгээр хадгалсан гэдгийг бид онцгойлон тэмдэглэж байна. Тайлбарласан хаягийг өөрчлөх механизм нь дараалсан RAM нүднүүдийн нийлбэрийг олох, санах ойн хэсгүүдийг хуулбарлах гэх мэт мөчлөгийн програмуудыг бичих ажлыг ихээхэн хялбаршуулсан. Гурав дахь үеийн компьютеруудад санах ойн барилгын үзэл суртал эрс өөрчлөгдсөн: RAM-тай солилцох мэдээллийн хамгийн бага хэсгийг 8 хоёртын оронтой тоогоор тогтоосон, өөрөөр хэлбэл. нэг байт. Хэд хэдэн төрлийн өгөгдлийг боловсруулах боломжтой болсон: текст тэмдэгт (1 байт), бүхэл тоо (2 байт), энгийн эсвэл давхар нарийвчлалтай бодит тоо (тус тус бүр 4 эсвэл 8 байт). Үүнтэй холбогдуулан мэдээллийн хэмжилтийн шинэ уламжлалт нэгжийг нэвтрүүлсэн - машин үг. Энэ нь 4 байттай тэнцүү бөгөөд стандартын урттай тохирч байв бодит тоо. Бүх мэдээллийн хэмжээг үгийн үржвэртэй нэгжээр хэмжиж эхлэв. давхар үг, хагас үг гэх мэт. Мэдээжийн хэрэг, байт зохион байгуулалттай машинуудын хаяг (RAM эсийн дугаар) нь тусдаа байтыг зааж эхэлсэн; санах ойн байтуудын тоо нэгээр нэмэгддэг. Үг нь хэд хэдэн дараалсан байтаас бүрдэнэ. Үгийн хаягийн хувьд түүнийг бүрдүүлж буй аль нэг байтын хаягийг авах нь тохиромжтой (ихэвчлэн хамгийн бага тоотой бага байтыг ашигладаг). Тиймээс үгсийн хаяг нэгээс хойш өөрчлөгдөхгүй; тэдгээрийн өсөлт нь байт дахь машины үгийн уртаас хамаарах бөгөөд дөрөвтэй тэнцүү байна. Машины үгийн хэмжээг ямар ч төхөөрөмжийн битийн багтаамжаас хамааралгүйгээр боловсруулж буй мэдээллийн формат дээр үндэслэн сонгосон бололтой. Үүнийг батлахын тулд EC гэр бүлийн гуравдагч үеийн ердийн компьютеруудын тухай цөөн хэдэн баримтыг энд оруулав. EC-1022 загварын арифметик-логик нэгж нь 16 хоёртын биттэй, EC-1033 нь 32 биттэй, EC-1050 нь 64 биттэй байв. Үүний зэрэгцээ ES-1022 ба ES-1033-д RAM-д нэг хандахын тулд 4 байт, ES-1050-д - 8 байт (мөн ES-1045-д - 16 байт) сонгосон. Тиймээс олон тооны тоонууд нь 32 бит (4 байт) нь техникийн хувьд тодорхой хэмжээний мэдээлэл биш гэдгийг харуулж байна. Гурав дахь үеийн машинуудад хэд хэдэн онцлог шинж чанарууд гарч ирэв: өөр өөр урттайөгөгдөл хаяглах арга, тусгай хэт санамсаргүй бүртгэлийн санах ой байгаа эсэх, үр дүнтэй RAM хаягийг хэд хэдэн регистрүүдийн нийлбэр болгон тооцоолох гэх мэт тушаалууд. Энэ бүхнийг дөрөв дэх үеийн компьютеруудад улам боловсронгуй болгож, микропроцессорын битийн хүчин чадал нь тэдний нэг болсон хамгийн чухал шинж чанарууд. Дөрөв дэх үеийн компьютерийн санах ойн бүтцийн онцлогийг авч үзэхийг бид дараагийн хэсэг хүртэл хойшлуулах болно.

Компьютерийн архитектурын чухал бүрэлдэхүүн хэсэг бол зааварчилгааны систем тул бид энэ асуудлыг цаашид авч үзэх болно.

Доод баг Процессор дараагийн алхамыг хийхэд шаардлагатай хоёртын код хэлбэрээр танилцуулсан мэдээллийн нийлбэрийг ойлгох.

Командын кодонд тодорхой битүүд (талбарууд) дараах мэдээллийг агуулна.

Үйл ажиллагааны төрлүүдийн талаар,

Боловсруулсан өгөгдөл хадгалагдаж буй RAM эсийн хаягууд,

Үйлдлийн үр дүнг бичих санах ойн нүднүүдийн хаягууд.

Компьютерт командын кодын бүрэлдэхүүн хэсгүүдийг таних боломжийг олгодог урьдчилан тохиролцсон талбаруудын бүтцийг нэрлэдэг Тушаалын формат .

Тушаалын форматын жишээг 5-р зурагт үзүүлэв.

Зураг 5

Командын кодын гол элемент нь үйлдлийн код (OPC) бөгөөд энэ команд дээр ямар үйлдэл хийхийг тодорхойлдог. Үүнд форматын хамгийн чухал N бит хуваарилагдсан.

Үлдсэн битүүд нь A1 ба A2 - операндуудын хаяг, A3 - үр дүнгийн хаягийг агуулна.

Хаяглах аргыг өөрчлөх үед тушаалын формат дахь талбаруудын хуваарилалт өөрчлөгдөж болно.

Тушаалын урт нь хаягийн талбаруудын тооноос хамаарна. Хаягийн тооноос хамааран багуудыг хаяггүй гэж хуваадаг; нэг, хоёр, гурван хаяг.

Командын код нь зарим үйлдлийг гүйцэтгэх шаардлагатай өгөгдлийн талаархи мэдээллийг агуулдаг гэдгийг санаарай. Эдгээр өгөгдлийг операнд гэж нэрлэдэг. Ерөнхийдөө операндууд нь компьютерийн RAM эсвэл бүртгэлийн санах ойд агуулагддаг. Санах ойд операндуудыг олох арга нь мөн зааврын форматыг тодорхойлдог.

Санах ойд операнд хайх хоёр өөр зарчим байдаг: ассоциатив ба хаяг:

- Ассоциатив хайлт (санах ойн эсийн контентоор хайх) нь командаар заасан ассоциатив шинж чанарыг агуулсан кодыг тодорхойлохын тулд санах ойн бүх эсийн агуулгыг үзэх явдал юм.

- Хаяг хайх операнд нь тушаалын хаягийн талбарт заасан хаяг дээр байна гэж үздэг.

Операндын гүйцэтгэх хаяг болон зааврын хаягийн кодыг хооронд нь ялгадаг.

Операнд гүйцэтгэх хаягЭнэ нь операндыг бичих эсвэл унших санах ойн эсийн дугаарын хоёртын код юм.

Тушаалын хаягийн кодкомандын хаягийн талбарт хоёртын код гэж нэрлэгддэг бөгөөд түүний тусламжтайгаар операндын гүйцэтгэх хаягийг үүсгэх шаардлагатай болдог. Компьютерт хаягийн код болон гүйцэтгэх хаяг нь давхцдаггүй тул хаяглах аргыг командын хаягийн кодоос гүйцэтгэх хаягийг бүрдүүлэх арга гэж тодорхойлж болно.

Бид эдгээр ойлголтуудыг операндуудыг шийдвэрлэх аргуудыг тайлбарлахдаа цаашид ашиглах болно.

Санах ой дахь операндуудыг хайх төрлөөс хамааран операндуудыг хаяглах аргуудыг дараахь байдлаар ангилдаг.

1) тушаалд хаягийн мэдээлэл байгаа тул:

-тодорхой хаяглах. Кодын энэ аргын тусламжтайгаар тушаал нь операнд хаягийн талбартай байна;



- далд хаяглалт. Энэ аргын хувьд зааварт хаягийн талбар байхгүй бөгөөд операндын хаяг нь опкодоор илэрхийлэгддэг. Жишээлбэл, очих хүлээн авагчийн хаягийг зааварчилгаанаас хасч, үр дүн нь хоёр дахь операндын оронд бичигдсэн гэсэн үг юм.

2) RAM-д хандах давтамжийн дагуу:

- шууд хаяглах.Шууд хаяглалттай бол операнд нь командын хаягийн талбарт шууд байрлана (Зураг 6).

Зураг 6

- шууд хаяглах (шууд хаяглах).Шууд хаяглалтын тусламжтайгаар командын талбар дахь хаягийн кодыг ашиглан операнд руу ханддаг. Энэ тохиолдолд гүйцэтгэх хаяг нь тушаалын кодын хаягтай давхцдаг. Үүнийг дараах зургаар дүрсэлж болно (Зураг 7).

Зураг 7

- шууд бус хаяглалт.Шууд бус хаяглалтын үед зааврын код нь санах ойн үүрний хаягийг зааж өгдөг бөгөөд энэ нь операнд өөрөө биш, харин заагч гэж нэрлэгддэг хаяг юм. Үүнийг дараах зургаар дүрсэлж болно (Зураг 8).

Зураг 7

3) санах ойн эсийн хаягийг бүрдүүлэх аргын дагуу:

- Үнэмлэхүй хаяглалтсанах ойн нүдний хаягийн хоёртын кодыг зааврын хаягийн талбараас эсвэл шууд бус хаяглалтын тохиолдолд өөр нүднээс бүрэн гаргаж авах боломжтой гэж үзье.

- Харьцангуй хаяглалтоперандын хоёртын кодыг хэд хэдэн бүрэлдэхүүн хэсгээс бүрдүүлсэн гэж үзье.

B - үндсэн код;

Мөн - индекс код;

C - офсет код.

Эдгээр бүрэлдэхүүн хэсгүүдийг янз бүрийн хослолд ашигладаг.

Харьцангуй хаяглалтын төрлүүд:



Зураг 9

Регистр санах ойг операндын хаягийг бүрдүүлэхэд ашигладаг.

Массив дахь i операндын хаяг нь офсет S-ээр өгөгдсөн операндын массивын эхлэл хаягийн нийлбэрээр тодорхойлогддог ба регистрийн санах ойн регистрүүдийн аль нэгэнд бичигдсэн i индексийг индексийн регистр гэж нэрлэдэг.

Индекс регистрийн хаягийг тушаалд индексийн хаягийн талбараар зааж өгнө.

i-р мөчлөг бүрт индекс регистрийн агуулга тогтмол утгаараа ихэвчлэн 1-ээр өөрчлөгддөг.

Массивын элементүүд дээр ижил төстэй үйлдэл хийх шаардлагатай массив бүхий програмуудтай ажиллахын тулд энэ төрлийн хаягжилтыг ашиглах нь тохиромжтой.

2) Автомат индекс хаяглалт.Автомат индексжүүлэлтийн үед RP регистрт байрлах шууд бус хаяг нь автоматаар нэмэгддэг (автоматаар нэмэгддэг хаяглалт) эсвэл үйл ажиллагаа явуулахын өмнө эсвэл дараа нь тогтмол хэмжээгээр буурдаг (автоматаар бууруулах хаяглалт).

3) Стек хаяглалт. Орчин үеийн компьютеруудад стек санах ой өргөн хэрэглэгддэг. Хэдийгээр стек хандалтын хаяг нь команд дотор байхгүй ч хяналтын хэлхээгээр үүсгэгддэг (Зураг 9):

Зураг 9

Бичлэг уншихад зөвхөн нэг бүртгэл байдаг - стекийн дээд хэсэг.

Энэ хаяглалтын аргыг, ялангуяа дэд программуудыг дуудах үед програмын тасалдлын системд ашигладаг.

Стекийн санах ойг стек заагч болон автомат индексийн хаяг ашиглан энгийн санах ойн дээр суулгадаг. Логикийн хувьд стект хуваарилагдсан санах ойн нүднүүд нь хамгийн сүүлд бичигдсэн хаягийг уншиж, эхний бичсэн хаягийг хамгийн сүүлд уншихаар зохион байгуулдаг. Энэхүү логик зохион байгуулалтыг тусгай тоолуураар бүрдүүлдэг. Энэ тоолуурыг микропроцессорын регистр болох стек заагч SP гэж нэрлэдэг. Санах ойн үүр одоогоорбичиж болно, жишээлбэл, дэд програмын буцах хаягийг дуудна стекийн дээд хэсэг . Стекийг зохион байгуулахад зориулагдсан санах ойн эсийн тоог нэрлэнэ овоолгын гүн . Хамгийн сүүлд бичиж болох санах ойн нүдийг дуудна овоолгын доод хэсэг . Стек рүү бичих үйлдлийг автомат бууруулж хаяглах, уншихыг автоматаар нэмэх хаягжилт ашиглан гүйцэтгэнэ (Зураг 10).

Зураг 10

Жишээ. C хэл дээр бичигдсэн дэд программыг дуудаж байна.

Си хэлэнд дэд программуудыг функц гэж нэрлэдэг. Функц нь аргумент болон локал хувьсагчтай байж болно, өөрөөр хэлбэл функцийг гүйцэтгэх явцад л байдаг хувьсагчтай. Функц нь бүхэл тоон төрлийн x ба y оролтын хоёр аргументаас хамаарах ба a, b, c орон нутгийн гурван хувьсагч, мөн бүхэл тоон төрлийн хувьсагчийг ашигладаг гэж бодъё. Функц нь бүхэл утгыг буцаана.

Дэд програм:

Үндсэн хөтөлбөр:

Жишээлбэл, програмын тодорхой цэг дээр f функцийг x = 2, y = 3 аргументуудаар дууддаг. Дуудаж буй програм нь f функцийн х ба у аргументуудын бодит утгуудыг стек рүү түлхэж өгдөг. функцын эхний аргумент нь стекийн дээд талд, хоёр дахь аргумент нь доор байна. Функцийн дуудлагын заавар биелэгдэх үед буцах хаяг нь мөн стекийн дээд хэсэгт шилждэг. f функц ажиллаж эхлэхэд стек дараах байдалтай харагдана.

Гүйцэтгэхийн өмнө f функц нь өөрийн a, b, c локал хувьсагчдад зориулж стек дээрх санах ойн хэсгийг авах ёстой.

Хэрэгжүүлсэн машины үйлдлийн багц нь үүнийг бүрдүүлдэг тушаалын систем .

Хэдийгээр олон төрлийн компьютер байдаг ч хамгийн доод түвшинд ("машин") тэдгээр нь нийтлэг зүйлтэй байдаг.

Аливаа компьютерийн командын систем нь дараах бүлэг мэдээлэл боловсруулах командуудыг агуулсан байх ёстой.

1. Мэдээллийг нэг газраас нөгөөд хуулах өгөгдөл дамжуулах (тооллого) командууд.

Процессорын регистр хоорондын солилцоо,

CPU ба RAM,

Процессор болон захын суурилуулалт.

2. Арифметик үйлдлүүд. Үндсэн арифметик үйлдлүүд нь ихэвчлэн нэмэх, хасах үйлдлүүдийг багтаадаг (сүүлийнх нь ихэвчлэн нэмэхэд ордог). Үржүүлэх, хуваах үйл ажиллагааны хувьд олон компьютерт тэдгээрийг тусгай алгоритм ашиглан гүйцэтгэдэг.

3. Компьютерт боловсруулж буй мэдээлэлд дүн шинжилгээ хийх боломжийг олгодог логик үйлдлүүд. Жишээлбэл, харьцуулах үйлдлүүд эсвэл сайн мэдэх логик үйлдлүүд БА, OR, NOT. Нэмж дурдахад тэд бие даасан кодын бит, тэдгээрийг дахин тохируулах, суулгахад дүн шинжилгээ хийдэг.

4. Хоёртын код нь зүүн, баруун тийш шилжинэ. Энэ бүлгийн командын ач холбогдлыг батлахын тулд баганыг үржүүлэх дүрмийг эргэн санахад хангалттай: дараагийн бүтээгдэхүүн бүрийг нэг оронтой зүүн тийш шилжүүлэн ийм схемд бичнэ. Зарим онцгой тохиолдлуудад үржүүлэх, хуваах үйлдлийг ерөнхийд нь ээлжээр сольж болно (баруун талд тэгийг нэмэх эсвэл хасах замаар, өөрөөр хэлбэл аравтын бутархай тоог бодитоор шилжүүлснээр та үүнийг 10 дахин нэмэгдүүлж эсвэл багасгаж болно гэдгийг санаарай).

5. Гадаад төхөөрөмжтэй солилцох мэдээлэл оруулах, гаргах командууд. Зарим компьютерт гадаад төхөөрөмжүүд нь тусгай үйлчилгээний санах ойн хаяг байдаг тул оролт гаралтыг тооллогын командуудыг ашиглан гүйцэтгэдэг.

6. Шугаман бус алгоритмуудыг хэрэгжүүлэх удирдлагын командууд. Үүнд үндсэндээ болзолт болон болзолгүй үсрэлтүүд, мөн дэд хөтөлбөрт хандах командууд (буцах замаар үсрэх) багтана. Зарим компьютерууд гогцоонуудыг зохион байгуулах тусгай тушаалуудтай байдаг боловч энэ нь шаардлагагүй: гогцоог нөхцөлт болон болзолгүй шилжилтийн нэг буюу өөр хослол болгон бууруулж болно. Ихэнхдээ ижил бүлгийн командууд нь процессорыг удирдах хэд хэдэн үйлдлүүдийг агуулдаг - "зогсоох" эсвэл NOP ("үйлдэл байхгүй"). Заримдаа тэд тусгай бүлэгт хуваагддаг.

Тушаалын системийг авч үзвэл түүний бүтээн байгуулалтад хоорондоо өрсөлдөж буй орчин үеийн хоёр чиглэлийг дурдахгүй байхын аргагүй юм: CISC (Complex Instruction Set Computer) командын бүрэн багц бүхий компьютер ба хязгаарлагдмал багц - RISC (Reduced Instruction Set Computer). Энэ хуваагдал нь компьютер ихэнх тохиолдолд командынхоо багахан хэсгийг гүйцэтгэх шаардлагатай болдог бол үлдсэн хэсэг нь хааяа ашиглагддагтай холбоотой юм. Тиймээс, хэрэв та үйлдлүүдийн багцыг хамгийн энгийн бөгөөд хамгийн богино хугацаанд хязгаарлавал нэлээд үр дүнтэй, хурдан RISC машин авах болно. Үнэн бол та програм хангамжийн "хаягдсан" тушаалуудыг хэрэгжүүлэх хэрэгцээ шаардлагаас болж хурдны төлбөрийг төлөх шаардлагатай болно, гэхдээ энэ төлбөр нь ихэвчлэн үндэслэлтэй байдаг: жишээлбэл, шинжлэх ухааны тооцоо эсвэл компьютерийн графикийн хувьд хурд нь програмчлалын асуудлаас хамаагүй чухал байдаг.