1-NAR - NAR 1

1-NAR yoki shunchaki NAR (Serb Nastavni Rachunar, uz. Ta'lim kompyuterlari) matematikasi fakulteti tomonidan yaratilgan kompyuterning nazariy modeli edi Belgrad universiteti professor Nedeljko Parezanovich (Serb tilida: Nedejko Parezanoviћ). U uchun ishlatilgan Assambleya tili va Kompyuter arxitekturasi kurslar.

Texnik xususiyatlari

1-NAR protsessor 5- ga egabit manzil avtobusi (32 bayt va 8-bitli manzil) ma'lumotlar avtobusi. Mashina ko'rsatmalar uchta baytdan iborat edi eng muhim bitlar belgilash opkod va 5 eng kam bitlar parametr - xotira manzili. Bitta 8-bit akkumulyator registri mavjud edi va yo'q edi bayroqlar yoki bayroq registrlari. Faqat mutlaq manzillar rejimi mavjud edi va boshqalarga erishildi o'z-o'zini o'zgartiradigan kod.

Bu faqat nazariy kompyuter bo'lsa ham, quyidagi fizik xususiyatlar berilgan:

  • Xotira aylanishi: 1 miks
  • Arifmetik operatsiya (SABF) tsikli: 0,9 ms (900ns)
  • Boshqarish paneli quvvatni yoqish va o'chirishni, xotira ma'lumotlarini kiritish va o'qishni, ko'rsatmalar hisoblagichini kiritishni va dasturni bajarish rejimini yoki boshqaruv paneli rejimini tanlashni osonlashtiradi.

Ko'rsatmani kodlash va sozlash

  • SABF (001aaaaa, sr. Saberi u Fiksnom zarezu, uz. Add Fixed point) manzil parametri bilan belgilangan xotira joylashuvining tarkibini yuklaydi, uni akkumulyatorning joriy qiymatiga qo'shadi va natijani akkumulyatorga saqlaydi.
  • PZAF (010xxxxx, sr. Promeni Znak Akumulatora u Fiksnom zarezu, uz. Akkumulyator belgisini sobit nuqtada o'zgartiring) Akkumulyatorda sobit nuqta (masalan, tamsayı) qiymatini inkor etadi
  • AUM (011aaaaa, sr. Akumulyator U Memoriju, uz. Akkumulyator Into Memory) akkumulyator tarkibini manzil parametri bilan belgilangan xotira joyiga saqlaydi
  • MUA (100aaaaa, sr. Memoriya U Akumulyator, uz. Xotira akkumulyatorga) manzil parametri bilan belgilangan xotira joylashuvi tarkibini akkumulyatorga yuklaydi
  • NES (101aaaaa, sr. Negativni Skok, uz. Salbiy o'tish) bajaradi a shartli sakrash akkumulyatorning joriy qiymati salbiy bo'lsa, parametr bilan ko'rsatilgan manzilga
  • ZAR (110xxxxx, sr. Zaustavi Rachunar, uz. Kompyuterni to'xtatish) keyingi qayta ishlashni to'xtatadi.

Yana ikkita ko'rsatma ko'rsatilmagan, lekin odatda simulyatorlarda bo'lgan va 000aaaaa va 111aaaaa ko'rsatma kodlarini olgan:

  • BES (sr. Bo'lingzuslovni Skok, uz. Shartsiz sakrash) bajaradi shartsiz sakrash parametr bilan ko'rsatilgan manzilga
  • NUS (sr. Yo'qla-Skok, uz. Zero Jump) bajaradi shartli sakrash akkumulyatorning joriy qiymati nol bo'lsa, parametr bilan ko'rsatilgan manzilga

Namunaviy dasturlar

8-bitli tamsayılar to'plamini yig'uvchi namunaviy dastur:

00:     0         ; kirish: 0 yoki qiymat 22, chiqish: natija01..21: 0,0,0...  ; kirish: qiymatlar 1..2122:     MUA  0    ; Dasturning boshlanishi; Akkumulyatorni 0 manzilidan yuklang23:     SABF 1    ; Akkumulyatorga 1-manzildan qiymat qo'shing24:     AUM  0    ; Akkumulyatorni 0 manzili bo'yicha saqlang25:     MUA  23   ; 23-manzil bo'yicha yuk ko'rsatmasi (SABF)26:     SABF 31   ; Akkumulyatorga 31 (+1) manzilidan qiymat qo'shing27:     AUM  23   ; Akkumulyatorni 23-manzilga saqlang (SABF yo'riqnomasini o'zgartiradi)28:     SABF 30   ; Akkumulyatorga 30-manzildan qiymat qo'shing29:     NES  22   ; Agar akkumulyator qiymati salbiy bo'lsa, yana 22 ga o'ting30:     ZAR  10   ; Kompyuterni to'xtating. Argument bu baytni - (SABF 22) = -54 qiymatiga ega qiladi.31:     1         ; Har bir takrorlashda manzilga qo'shiladigan qiymat

Yuqoridagi dastur 22 manzildan bajarilgan bo'lsa, 22 ta 8 bitli qiymatlarni qo'shadi:

  • 1-21 qiymatlari 1-21 joylarda saqlanadi
  • Qiymat 22 doimiy 0 o'rniga 0 joyida saqlanadi va natijasi bilan almashtiriladi

NAR 1 dasturlari odatda o'zini o'zi o'zgartiradi. Boshqa arxitekturalardan farqli o'laroq, bu "hiyla" emas. Xotirani registr orqali hal qilib bo'lmaydiganligi sababli, xotira ma'lumotlarini dinamik ravishda boshqarishning yagona usuli bu xotirani boshqarish ko'rsatmalarini o'zgartirishdir. Yuqoridagi misolda xotirani tejash uchun odatiy hiyla-nayrang ham mavjud - ko'rsatma (30-manzilda) boshqa ko'rsatma (28-manzilda) tomonidan ma'lumotlar sifatida qayta ishlatiladi.

Agar akkumulyatorning dastlabki qiymatini boshqaruv panelidan boshqarish mumkin bo'lsa, unda 23-qiymat saqlanishi mumkin. Yuqoridagi dastur biroz ozgina o'zgartirilishi kerak - 23-manzildagi SABF 1 ko'rsatmasi SABF 0 ga o'zgartirilishi kerak va dastur 22 dan emas, balki ushbu manzildan (23) bajarilishi kerak.

Boshqa hiyla-nayranglarga quyidagi misolda ko'rsatilgandek, ko'rsatma o'zgartirilgandan so'ng belgini o'zgartirishdan foydalanish kiradi:

00..21: 0,0,0...  ; kirish qiymatlari 22 dan 1 gacha22:     0         ; kirish: 0 yoki qiymat 23, chiqish: natija23:     MUA  21   ; dasturning boshlanishi; Yuklash (keyingi) qiymati24:     SABF 22   ; Akkumulyatorga 22-sonli summani qo'shing25:     AUM  22   ; Yangi subtotalni 22 gacha saqlang26:     MUA  23   ; 23-sonli yo'riqnomani akkumulyatorga yuklang27:     SABF 31   ; Kamaytirish bo'yicha ko'rsatma 1 ga binoan28:     AUM  23   ; Yo'riqnomani yangilang29:     NES  23   ; Ko'rsatma hali ham salbiy bo'lsa, takrorlang30:     ZAR       ; Aks holda, kompyuterni to'xtating31:     -1        ; Doimiy 27-da o'qitish uchun kerak

Bu erda 23-manzilda "MUA 21" ko'rsatmasi 10010101 ikkilik qiymatiga ega, ya'ni imzolangan tamsayı kabi qaralganda -107 o'nlik ikkitasini to'ldiruvchi. 26, 27 va 28-manzillar bo'yicha ko'rsatmalar har bir takrorlashda ushbu qiymatni 1 ga kamaytiradi. Bu manzilni ko'rsatadigan 5 ta eng muhim bitni o'zgartiradi va ushbu ko'rsatma MUA 0 (10000000 ikkilik = -128 kasr, salbiy) bo'lmaguncha ko'rsatmani ko'rsatadigan uchta bitga tegmaydi. Bir marta kamaytirilgandan so'ng u 01111111 (+127 o'nlik) ga aylanadi, bu endi manfiy bo'lmaydi va 29-da sakrash-if-negative buyrug'ining o'tishiga olib keladi va "kompyuterni 30" da to'xtatadi.

Yuqoridagi kabi, ushbu dastur 22 dan 24 gacha qiymatlarni qo'shishi mumkin, bu 22 manzilni kirish va chiqish uchun ishlatilishi yoki akkumulyatorning boshlang'ich qiymatini kirish sifatida ishlatishi mumkin (bundan keyin dastur 24 va 23-sonli ko'rsatma MUA 22 bo'lishi kerak).

Agar ma'lum bir dastur noma'lum opcodega duch kelsa yoki "111aaaaa" opcode bilan qo'shimcha shartsiz o'tish buyrug'ini bajaradigan bo'lsa, kompyuterni to'xtatib qo'ysa, bunday xatti-harakatlar quyidagi tarzda ishlatilishi mumkin:

00..22: 0,0,0...  ; kirish qiymatlari 23 dan 1 gacha23:     0         ; kirish: 0 yoki qiymat 24, chiqish: natija24:     MUA  22   ; dasturning boshlanishi; Yuklash (keyingi) qiymati25:     SABF 23   ; Akkumulyatorga 23 da subtotal qo'shing26:     AUM  23   ; Yangi jami summani 23 ga saqlang27:     MUA  24   ; 24-sonli yo'riqnomani akkumulyatorga yuklang28:     SABF 31   ; Kamaytirish bo'yicha ko'rsatma 1 ga binoan29:     AUM  24   ; Yo'riqnomani yangilang30:     NES  24   ; Ko'rsatma hali ham salbiy bo'lsa, takrorlang31:     -1        ; BES 31 yoki yaroqsiz ko'rsatma va 28 da ko'rsatma uchun doimiy

Yuqorida, 31-manzilda topilgan "-1" qiymati yoki kompyuterning to'xtashiga olib keladigan noto'g'ri ko'rsatma yoki bir xil manzilga shartsiz sakrash (BES 31) sifatida qaralishi mumkin, natijada natijaga (boshqaruv uni ko'rsatish uchun paneldan foydalanish mumkin).

Va nihoyat, agar kompyuter xotira tugashiga qadar (31-manzil, 0-manzilga qaytib ketmasa), dastur bajarilishini to'xtatishi to'g'risida qaror qabul qilinganligiga qarab, yuqoridagi dastur ehtiyojni bartaraf etish orqali yana bitta qiymat olish uchun qayta tuzilishi mumkin. "kompyuterni to'xtatish" ko'rsatmasi quyidagicha:

00..22: 0,0,0...  ; kirish qiymatlari 23 dan 1 gacha23:     0         ; kirish: 0 yoki qiymat 24, chiqish: natija24:     -1        ; Doimiy ravishda 29 yoshda ko'rsatma kerak25:     MUA  22   ; dasturning boshlanishi; Yuklash (keyingi) qiymati26:     SABF 23   ; Akkumulyatorga 23-da subtotal qo'shing27:     AUM  23   ; Yangi jami summani 23 ga saqlang28:     MUA  25   ; 25-sonli yo'riqnomani akkumulyatorga yuklang29:     SABF 24   ; Kamaytirish bo'yicha ko'rsatma 1 ga binoan30:     AUM  25   ; Yo'riqnomani yangilang31:     NES  25   ; Ko'rsatma hali ham salbiy bo'lsa, takrorlang; ------------- xotira tugashi

Arzimas narsalar

  • "Nar" so'zi ma'nosini anglatadi Kompyuter modelini o'qitish
  • Ko'pgina NAR 1 simulyatorlari yaratilgan. Ulardan biriga "Shliva" (uz. olxo'ri ) meva o'sishi bilan Serbiya, "nar" esa yo'q.
  • Tez-tez beriladigan vazifalardan biri, iloji boricha ko'proq raqamlarni qo'shadigan dasturni yaratish edi, bu raqamlar dastur bilan birga 32 baytli xotirada saqlanadi.
  • Ba'zi yig'ilish tili protokollari NAR1 khilil kodidan olingan

Shuningdek qarang

Prof.dr Nedeljko Parezanovich (serb tilida)