Mundarija:

Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: 6 qadam
Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: 6 qadam

Video: Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: 6 qadam

Video: Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: 6 qadam
Video: Ko'zingiz nuri qanchalik darajada o'tkirligini aniqlashni xohlaysizmi? 2024, Noyabr
Anonim
Image
Image

Bu yo'riqnomada men sizga kompyuter dasturini mashina tilida qanday kodlash va sinovdan o'tkazishni ko'rsataman. Mashina tili - kompyuterlarning ona tili. 1 va 0 sonli satrlardan tashkil topganligi uchun uni odamlar oson tushunmaydi. Bu muammoni hal qilish uchun biz dasturlarni birinchi navbatda C ++ yoki Java kabi yuqori darajali tilda kodlaymiz, keyin ularni kompyuterlar tushunadigan 1s va 0 sonlarga tarjima qilish uchun maxsus kompyuter dasturlaridan foydalanamiz. Yuqori darajadagi tilda kodlashni o'rganish, albatta, hech qanday qiyinchilik tug'dirmaydi, lekin mashina tiliga qisqacha kirish kompyuterlar qanday ishlashi haqida qimmatli ma'lumot beradi va bu juda muhim texnologiyani qadrlashni oshiradi.

Mashina tili dasturini kodlash va sinovdan o'tkazish uchun bizga mashina tili oson tushuniladigan, hech qanday muammosiz ishlaydigan kompyuter kerak. Shaxsiy kompyuterlar o'ylab ko'rishga juda murakkab. Yechim - shaxsiy kompyuterda ishlaydigan Logisim mantiq simulyatoridan foydalanish. Logisim yordamida biz o'z ehtiyojlarimizga javob beradigan kompyuterni simulyatsiya qilishimiz mumkin. Yuqoridagi video sizga Logisim bilan nima qilishimiz mumkinligi haqida tasavvur beradi.

Kompyuter dizayni uchun men Kindle elektron kitobimdan "O'z shaxsiy kompyuteringizni yaratish - Scratchdan" moslashtirdim. Men u erda tasvirlangan BYOC kompyuteridan boshladim va uni bu yo'riqnomada ishlatiladigan turli xil asosiy BYOC-I (I Instructable) ga qisqartirdim.

BYOC-I ning mashina tili sodda va tushunish oson. Sizga kompyuter yoki dasturlash bo'yicha maxsus bilim kerak emas. Buning uchun faqat qiziquvchan aql va o'rganish istagi kerak

Qo'shimcha o'qish

Nima uchun biz mexanik qurilma bo'lmasa, kompyuterni tasvirlash uchun "mashina" dan foydalanamiz, deb hayron bo'lishingiz mumkin. Sababi tarixiy; birinchi hisoblash moslamalari mexanik tishli va g'ildiraklardan iborat edi. Allan Shermanning "Hamma viteslar shovqin-suron edi …" lirikasi bir-ikki asrga yaqin edi. Bu erda erta hisoblash haqida ko'proq o'qing.

1 -qadam: qismlar ro'yxati

Mashina tili ierarxiyasi va kodlari
Mashina tili ierarxiyasi va kodlari

Qismlarning ro'yxati qisqa. Faqat ikkita element talab qilinadi, ikkalasini ham bepul yuklab olish mumkin:

  1. "Logisim-win-2.7.1.exe"-Logisim-mashhur va ishlatish uchun qulay bo'lgan mantiq simulyatori. Logisim bajariladigan faylini bu erdan yuklab oling, so'ngra ish stoli kabi qulay joyda qisqartma yarating. Uni ishga tushirish uchun Logisim belgisini ikki marta bosing. Eslatma: Logisim bu erda joylashgan Java Runtime paketidan foydalanadi. Sizdan uni yuklab olish talab qilinishi mumkin.
  2. BYOC-I-Full.cir "-Quyidagi Logisim elektron faylini yuklab oling.

Logisim-ni ishga tushiring, so'ng "Fayl-Ochish" -ni bosing va BYOC-I-Full.cir faylini yuklang. Yuqoridagi rasmda Logisim ish muhiti ko'rsatilgan. BYOC-I pastki davr bloki bilan ifodalanadi. BYOC-I registrlari va dastur xotirasi uchun o'n ikkita kirish, Reset and Run va o'n oltilik displeylar tashqi tomondan ulangan.

BYOC-I dastur xotirasi A registrida 1 dan 5 gacha hisoblanadigan oddiy dastur bilan oldindan yuklangan. Dasturni ishga tushirish (ishga tushirish) uchun quyidagi amallarni bajaring.

1 -qadam - Poke asbobini bosing. Kursor "barmoq" ga tegishi kerak. 2 -qadam - "Qayta tiklash" yozuvini ikki marta bosing, keyin uni "1" ga o'zgartiring va yana "0" ga qaytaring. Bu BYOC -I -ni dasturni 0 -qadamda ishga tushirishga qaytaradi. 3 -qadam - "1" ga o'zgartirish uchun Run kirishini bir marta bosing. Ro'yxatdan o'tish kitobi 1 dan 5 gacha o'zgarib, keyin takrorlanayotganini ko'rsatishi kerak 4 -qadam - Agar dastur bajarilmasa, control -K tugmachasini bosing va u ishga tushishi kerak.

Agar siz Logisim imkoniyatlarini o'rganmoqchi bo'lsangiz, Menyu satridagi Yordam havolasini bosing. U erdan siz Logisim "O'quv qo'llanmasi", "Foydalanuvchi uchun qo'llanma" va "Kutubxona ma'lumotnomasi" ni o'rganishingiz mumkin. Bu erda ajoyib video kirish mavjud.

2 -qadam: Mashina tili ierarxiyasi va kodlari

Mashina tili ierarxiyasi va kodlari
Mashina tili ierarxiyasi va kodlari

BYOC-I kompyuteri mashina tilida yozilgan dasturlar asosida vazifalarni bajaradi. BYOC-I dasturlari, o'z navbatida, aniq belgilangan ketma-ketlikda bajariladigan ko'rsatmalardan iborat. Har bir ko'rsatma BYOC-I ning turli xil operatsion komponentlarini ifodalovchi sobit uzunlikdagi kodlardan tuzilgan. Nihoyat, bu kodlar BYOC-I amalda bajaradigan mashina tilini tashkil etuvchi 1 va 0 sonli satrlardan iborat.

Tushuntirish uchun biz kodlardan boshlaymiz va dastur darajasiga ko'tarilamiz. Keyin biz oddiy dasturni kodlaymiz, uni BYOC-I xotirasiga yuklaymiz va bajaramiz.

Kodlar qisqartirilgan sonli ikkilik (1 va 0) raqamlardan yoki bitlardan iborat. Masalan, quyidagi jadval kengligi 4 bit bo'lgan kod uchun mumkin bo'lgan barcha kodlarni (hammasi 16) ko'rsatadi. Yon tomonda ko'rsatilgan kod o'n oltilik (baza 16) va kasrli ekvivalentdir. O'n oltilik ikkilik qiymatlarga murojaat qilishda ishlatiladi, chunki u ikkilikka qaraganda ixchamroq va o'nlik kasrdan ikkilikka o'tish osonroq. "0x" prefiksi sizga keyingi raqamni o'n oltilik yoki qisqacha "oltilik" ekanligini bilishga imkon beradi.

Ikkilik - o'n oltilik - o'nlik0000 0x0000 00001 0x0001 10010 0x0002 20011 0x0003 30100 0x0004 40101 0x0005 50111 0x0007 71000 0x0008 81001 0x0009 91010 0x000A 101011 0x000B 111100 0x000C 1211011 0x000C 1211011 0x000C 1211011 0x000C

Kodning kengligi qancha elementni ko'rsatish mumkinligini aniqlaydi. Ta'kidlanganidek, yuqoridagi 4 bitli keng kod 16 tagacha elementni (0 dan 15 gacha) ifodalashi mumkin; ya'ni 2 marta 2 marta 4 marta yoki 2 dan 4 gacha kuch 16 ga teng. Umuman olganda, tasvirlangan elementlar soni 2 -chi kuchga ko'tariladi. Bu erda n-bitli kod imkoniyatlarining qisqa ro'yxati.

n - Ob'ektlar soni1 22 43 84 165 326 647 1288 256

BYOC-I kompyuter kodlarining kengligi kod bilan ifodalanadigan elementlar sonini moslashtirish uchun tanlangan. Masalan, to'rtta ko'rsatma turi mavjud, shuning uchun 2 bitli keng kod mos keladi. Bu erda BYOC-I kodlari, ularning har biriga qisqacha tushuntirish berilgan.

Ko'rsatma turi kodi (tt) To'rtta ko'rsatma turi mavjud: (1) MVI - 8 bitli doimiy qiymatni xotira registriga ko'chirish. Xotira registri - bu ma'lumotlarni hisoblash uchun ishlatiladigan qurilma, (2) MOV - Ma'lumotlarni bir registrdan boshqasiga o'tkazish, (3) RRC - Ro'yxatdan o'tish kitobi hisobini bajarish va (4) JMP - O'tish keyingi yo'riqnomada davom etish o'rniga boshqa ko'rsatma. Qabul qilingan BYOC-I ko'rsatma kodlari quyidagilar:

00 MVI01 MOV10 RRC11 JMP

Ro'yxatdan o'tish kodi (dd va ss) BYOC-Ida 0 dan 255 gacha qiymatlarni saqlashga qodir bo'lgan 8 bitli to'rtta registr mavjud. To'rt registrni belgilash uchun 2 bitli kod etarli:

00 F registr01 E registr 10 D registr 11 A registr

Hisoblash kodi (ccc) BYOC-I to'rtta arifmetik/mantiqiy amallarni qo'llab-quvvatlaydi. Kelgusida sakkizta hisobgacha kengaytirish uchun 3-bitli kod ishlatiladi:

000 ADD, belgilangan registrlarga ikkita 8-bitli qiymatni qo'shing va natijani 001 SUB registrlaridan biriga saqlang, belgilangan 8 registrda ikkita 8-bitli qiymatni olib tashlang va natijani 010-011 registrlaridan birida saqlang., mantiqiy VA belgilangan registrlarda ikkita 8-bitli qiymat va natijalarni registrlardan birida saqlang101 YO'Q, mantiqan YOKI ikkita 8-bitli registrlarda saqlang va natijani registrlardan birida saqlang110 dan 111gacha, kelajakda foydalanish uchun ajratilgan.

O'tish kodi (j) O'tish shartsiz (j = 1) yoki nol bo'lmagan hisoblash natijasi (j = 0) bilan bog'liqligini ko'rsatuvchi 1-bitli kod.

Ma'lumotlar/Manzil kodi (v… v)/(a… a) 8 bitli ma'lumotlar 00000000 dan 11111111 gacha yoki 0 dan 255 kasrgacha bo'lgan qiymatlarni ifodalovchi ba'zi ko'rsatmalarga kiritilishi mumkin. Bu ma'lumotlar BYOC-I ning 8-bitli registrlarida saqlash uchun kengligi 8 bit. O'nlik arifmetikada biz etakchi nollarni ko'rsatmaymiz. Kompyuter arifmetikasi bilan biz etakchi nollarni ko'rsatamiz, lekin ular qiymatga ta'sir qilmaydi. 00000101 soni bir xil 101 yoki 5 kasr.

Tavsiya etilgan adabiyotlar

Ikkilik belgilar - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -

Qo'shimcha o'qish

Jarayonni boshqarish uchun kodlardan foydalanish g'oyasi uzoq o'tmishga borib taqaladi. Ajoyib misollardan biri - Jacquard Loom. Avtomatlashtirilgan dastgoh yog'och kartochkalar zanjiri bilan boshqarilgan bo'lib, ularda to'quv uchun har xil rangdagi iplar uchun kodlarni ifodalovchi teshiklar ochilgan. Men birinchi marta Shotlandiyada ko'rdim, u erda rang -barang tortan tayyorlash uchun ishlatilgan. Jacquard Looms haqida ko'proq o'qing.

3-qadam: BYOC-I ko'rsatmalarining anatomiyasi

BYOC-I ko'rsatmalarining anatomiyasi
BYOC-I ko'rsatmalarining anatomiyasi

BYOC-I kodlarini hisobga olgan holda, biz keyingi bosqichga, ko'rsatmalarga o'tamiz. BYOC-I uchun ko'rsatma yaratish uchun biz kodlarni belgilangan tartibda va ko'rsatmaning ma'lum joylarida joylashtiramiz. Hamma kodlar hamma yo'riqnomalarda ko'rinmaydi, lekin ular paydo bo'lganda, ular ma'lum bir joyni egallaydi.

MVI buyruq turi eng ko'p bitni talab qiladi, hammasi 12. Ko'rsatma so'zining uzunligini 12 bit qilib, biz barcha ko'rsatmalarni bajaramiz. Ishlatilmagan ("parvo qilmang" deb nomlangan) bitlarga 0 qiymati beriladi. Bu erda BYOC-I yo'riqnomasi.

  1. Zudlik bilan ko'chirish (MVI) - 00 dd vvvvvvvvFunktsiya: 8 bitli V = vvvvvvvvv ma'lumotlarning belgilangan registriga dd ko'chirish. Amalga oshirilgandan so'ng, dd Register vvvvvvvv qiymatiga ega bo'ladi. Qisqartma: MVI R, V, bu erda R - A, D, E yoki F. Masalan: 00 10 00000101 - MVI D, 5 - 5 -raqamni D registriga o'tkazing.
  2. Ro'yxatdan o'tish uchun Ro'yxatdan o'tish ko'chirish (MOV) - 01 dd ss 000000Funktsiya: Ma'lumotlar ro'yxatidan ssni ta'rif registriga o'tkazish. Amalga oshirilgandan so'ng, ikkala registr ham manba registr bilan bir xil qiymatga ega bo'ladi. Qisqartma: MOV Rd, Rs, bu erda Rd - maqsad registr A, D, E yoki F va Rs - manba registr A, D, E yoki F. Misol: 01 11 01 000000 - MOV A, E - Qiymatni siljiting. E registrida A ni ro'yxatdan o'tkazish.
  3. Hisobni ro'yxatdan o'tkazish uchun ro'yxatdan o'ting (RRC) - 10 dd ss ccc 000 Funktsiya: manba registr s va maqsad registr dd yordamida belgilangan hisob ccc ni bajaring, so'ng natijani manzil registrida saqlang. Qisqartmalar: ADD Rd, Rs (ccc = 000 Rd + R Rd); SUB Rd, Rs (ccc = 001 Rd - Rdda saqlangan Rs); VA Rd, Rs (ccc = 100 Rd Vs Rdda saqlanadi); OR Rd, Rs (ccc = 101 Rd OR Rs Rdda saqlanadi). Masalan: 10 00 11 001 000 - SUB F, A - F registridagi natija bilan A registridagi qiymatni F registridan chiqarib tashlang.
  4. Har xil ko'rsatmaga o'tish (JMP) - 11 j 0 aaaaaaaaFunktsiya: bajarilishini aaaa aaaa (a) manzilida joylashgan boshqa ko'rsatmaga o'zgartiring Shartsiz (j = 1) -11 1 0 aaaaaaaa 0 00001000 - JMP 8 - bajarishni 8 -manzilga o'zgartiring. (B) Shartli ravishda (j = 0) oldingi hisob nol bo'lmagan natijaga olib kelganida - 11 0 0 aaaaaaaa Qisqartma: JNZ L, bu erda L manzili aaaa aaaa. 0 00000100 JNZ 4 Agar oxirgi hisobda nol bo'lmagan qiymat berilgan bo'lsa, bajarishni 4-manzilga o'zgartiring.

Ko'rsatma bitlari chapdan (eng muhim bitli MSB) o'ngga (eng kam bitli LSB) 11 dan 0 gacha raqamlangan. Kodlarning qat'iy tartibi va joylashuvi quyidagicha:

Bit-Kod11-10 Ko'rsatma turi9-8 Manzil registri7-6 Manba registri5-3 Hisoblash: 000-qo'shish; 001 - ayirish; 100 - mantiqiy VA; 101 - mantiqiy OR7-0 v… v va a… a doimiy qiymati (0 dan 255 gacha)

Ko'rsatmalar to'plami yuqoridagi rasmda umumlashtirilgan. Har bir yo'riqnomada kodlarning tuzilgan va tartibli ko'rinishiga e'tibor bering. Natijada BYOC-I uchun oddiy dizayn ishlab chiqilgan va bu ko'rsatmalarni odamlarga tushunarli qilib beradi.

4 -qadam: Kompyuter bo'yicha ko'rsatmalarni kodlash

Kompyuter bo'yicha ko'rsatmalarni kodlash
Kompyuter bo'yicha ko'rsatmalarni kodlash

Dastur darajasiga o'tishdan oldin, yuqoridagi BYOC-I yo'riqnomalar to'plamidan foydalanib, ba'zi misolli ko'rsatmalarni tuzaylik.

1. 1 qiymatini A ro'yxatga o'tkazing. BYOC-I registrlari 0 dan 255 gacha bo'lgan qiymatlarni saqlashi mumkin. Bunday holda, A registr buyruq bajarilgandan keyin 1 (00000001 ikkilik) qiymatiga ega bo'ladi.

Qisqartma: MVI A, 1 Kodlar Kerakli: MVI turi - 00; Manzil registri A - 11; Qiymat - 00000001 Ko'rsatma so'zi: 00 11 00000001

2. A registrining mazmunini D registrga o'tkazing. Amalga oshirilgandan so'ng, ikkala registr ham dastlab A registridagi qiymatga ega bo'ladi.

Qisqartma: MOV D, A (Eslab qoling, manzil birinchi va ro'yxatda ikkinchi manba) Kerakli kodlar: MOV turi - 01; Manzil registri D - 10; Manba Ro'yxatdan o'tish A - 11 Ko'rsatma so'zi: 01 10 11 000000

3. D registrining tarkibini A ro'yxatga olish va A registrida saqlash uchun qo'shing. A registrining qiymati A registrining va D registrining dastlabki qiymatining yig'indisi bo'ladi.

Qisqartma: ADD A, D (Natijalar manzil registrida saqlanadi) Kodlar kerak: RRC turi - 10; Manzil registri A - 11; Manba reestri D - 10; Hisoblash qo'shish - 000 Ko'rsatma so'zi: 10 11 10 000 000 (ccc birinchi 000 - qo'shish)

4. Manzilga nol emas, sakrash 3. Agar oxirgi hisob natijasi nol bo'lmasa, bajarilish berilgan manzil bo'yicha ko'rsatmaga o'zgaradi. Agar nol bo'lsa, bajarish quyidagi yo'riqnomada davom etadi.

Qisqartma: JNZ 3Kodlar kerak: JMP turi - 11; O'tish turi - 0; Manzil - 00000003 Ko'rsatma so'zi: 11 0 0 00000003 (O'tish turi birinchi 0)

5. 0 -manzilga so'zsiz o'tish. Ijro etilgandan so'ng, ijro berilgan manzil bo'yicha ko'rsatmaga o'zgaradi.

Qisqartma: JMP 0Kod zarur: JMP turi - 11; O'tish turi - 1; Manzil - 00000000Information Word; 11 1 0 00000000

Mashinani kodlash biroz zerikarli bo'lsa -da, bu qiyin emasligini ko'rishingiz mumkin. Agar siz mashinani haqiqiy kodlash bilan shug'ullangan bo'lsangiz, siz komplektor deb ataladigan kompyuter dasturidan foydalangan holda uni qisqartirishdan (yig'ish kodi deb nomlangan) mashina kodiga o'tkazgan bo'lar edingiz.

5 -qadam: Kompyuter dasturining anatomiyasi

Kompyuter dasturi anatomiyasi
Kompyuter dasturi anatomiyasi

Kompyuter dasturi - bu ro'yxatning boshidan boshlab kompyuter bajaradigan ko'rsatmalar ro'yxati va oxirigacha davom etadi. JNZ va JMP kabi yo'riqnomalar qaysi buyruq keyingi bajarilishini o'zgartirishi mumkin. Ro'yxatdagi har bir ko'rsatma 0 dan boshlab kompyuter xotirasida bitta manzilni egallaydi. BYOC-I xotirasi 256 ta ko'rsatmalarni o'z ichiga olishi mumkin, bu bizning maqsadimiz uchun etarli.

Kompyuter dasturlari berilgan vazifani bajarishga mo'ljallangan. Bizning dasturimiz uchun biz 1 dan 5 gacha bo'lgan oddiy vazifani tanlaymiz. Shubhasiz, "hisoblash" ko'rsatmasi yo'q, shuning uchun birinchi qadam-bu vazifani BYOC-I tomonidan bajariladigan bosqichlarga ajratish. cheklangan ko'rsatmalar to'plami.

1 -qadam Ro'yxatdan o'tish uchun 1 -bosqichga o'tish 2 -bosqichga o'tish uchun D -bosqichga o'tish 3 -bosqichga o'tish uchun D -registrini qo'shish va natijani ro'yxatga olish -ga o'tkazish -Atep -4 -ni 5 -bosqichga o'tish uchun 5 -bosqichga o'tish. ayirish natijasi nol emas edi, 4 -qadamga qayting va hisoblashni davom eting 7 -qadam, agar ayirish natijasi nol bo'lsa, orqaga qayting va qaytadan boshlang

Keyingi qadam-bu qadamlarni BYOC-I ko'rsatmalariga tarjima qilish. BYOC-I dasturlari 0 manzili va ketma-ket raqamdan boshlanadi. O'tish maqsadli manzillar barcha ko'rsatmalar mavjud bo'lgandan keyin qo'shiladi.

Manzil: Ko'rsatma - Qisqartma; Ta'rif 0: 00 11 00000001 - MVI A, 1; A1 ro'yxatga olish uchun 1 -ni siljiting: 01 10 11 000000 - MOV D, A; A registrini D2: 10 11 10 000 000 - ADD A, D ga yozib oling. A ro'yxatga olish uchun D registrini qo'shing va natijani A3: 00 01 00 00000101 - MVI E, 5; 5 ta registrni E4: 10 01 11 001 000 - SUB E, A; E registridan A registrini olib tashlang va do'konni saqlang. natija E5: 11 0 0 00000010 - JNZ 2; Agar ayirish natijasi nol bo'lmasa, 3 -manzilga qayting va sanashni davom ettiring 6: 11 1 0 00000000 - JMP 0; Agar ayirish natijasi nol bo'lsa, orqaga qayting va qaytadan boshlang.

Dasturni xotiraga o'tkazishdan oldin, ikkilik ko'rsatma kodini Logisim Hex Editor bilan ishlatish uchun o'n oltilik raqamga o'zgartirish kerak. Birinchidan, ko'rsatmani har biri 4 bitli uchta guruhga bo'ling. So'ngra 2 -qadamdagi jadval yordamida guruhlarni o'n oltilik tizimga tarjima qiling. Faqat oxirgi uchta o'n oltilik raqam (quyida qalin harflar bilan) ishlatiladi.

Manzil - Binary Instruction - Instinary Binary Split - Instruction (Hex) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 01001 000000000000000000000000000000000000000000000000 111000000010 1110 0000 0000 - 0x0E00

Sinov uchun dasturni BYOC-I xotirasiga o'tkazish vaqti keldi.

6 -qadam: Dasturni xotira va testga o'tkazish

Dasturni xotiraga o'tkazish va sinovdan o'tkazish
Dasturni xotiraga o'tkazish va sinovdan o'tkazish
Dasturni xotiraga o'tkazish va sinovdan o'tkazish
Dasturni xotiraga o'tkazish va sinovdan o'tkazish

Logisim "asosiy" sxemasiga qaraganda, ko'rsatilgan BYOC-I bloki Explorer panelidagi "BYOC-I" deb nomlangan haqiqiy kompyuter sxemasining belgisidir. Dasturni BYOC-I xotirasiga kiritish uchun:

  1. BYOC-I blokini sichqonchaning o'ng tugmasi bilan bosing ("kichik davr" deb nomlanadi) va "sichqonchaning ustiga sichqonchaning o'ng tugmasi bilan bosing" -ni tanlang "BYOC-I-ni ko'rish" -ni tanlang.
  2. Ish maydonida BYOC-I sxemasi paydo bo'ladi. "Dastur xotirasi" belgisini o'ng tugmasini bosing va "Tarkibni tahrirlash" -ni tanlang.
  3. Logisim Hex Editor -dan foydalanib, yuqorida ko'rsatilganidek, o'n oltilik kodni kiriting (faqat qalin).

Endi siz dasturni bajarishga tayyormiz. Explorer oynasida "BYOC-I" ni ikki marta bosish orqali asosiy sxemaga qayting. Ishga tushirish va tiklash sozlamalari "0" bo'lishi kerak. Poke Tool -dan foydalanib, avval Reset -ni "1" ga, so'ng "0" ga qaytaring. Bu boshlang'ich manzilni 0x0000 qiladi va BYOC-I sxemasini bajarishga tayyorlaydi. Endi Run kirishini "1" ga qo'ying va dastur bajariladi. (Eslatma: Logisim soatini ishga tushirish uchun siz Control-K tugmachasini bir marta bosishingiz kerak. Bu sizga Logisim soatini to'xtatishga va Control-T tugmachasini bir necha marta bosish orqali dasturni o'zgartirishga imkon beradi.

Logisim soati keng diapazonli chastotalar uchun o'rnatiladi. Yuklab olinganidek, u 8 Gts (sekundiga 8 tsikl). BYOC-I kompyuteri qanday ishlab chiqilgan bo'lsa, har bir ko'rsatma to'rt soatlik tsikl bilan bajariladi. Shunday qilib, BYOC-I tezligini hisoblash uchun soat chastotasini 4 ga bo'linadi. 8 Gtsda uning tezligi sekundiga 2 ko'rsatma. Asboblar panelidagi "Simulyatsiya" tugmachasini bosish va "Shomil chastotasi" ni tanlash orqali soatni o'zgartirish mumkin. Mumkin bo'lgan diapazon 0,25 dan 4100 Gts gacha. 8 gigagertsli sekin tezlik tanlangan, shuning uchun siz A registridagi hisobni kuzatishingiz mumkin.

BYOC-I simulyatsiyasining maksimal tezligi (sekundiga ~ 1000 ta ko'rsatma) zamonaviy kompyuterlarga nisbatan juda sekin. Mening kitobimda tasvirlangan BYOC kompyuterining apparat versiyasi sekundiga 12 milliondan ortiq ko'rsatmalarni bajaradi!

Umid qilamanki, bu yo'riqnomada mashina tili dasturlari ajratilgan va sizga kompyuterlar eng asosiy darajada qanday ishlashi haqida tushuncha berilgan. Tushunish uchun quyidagi ikkita dasturni kodlashga harakat qiling.

  1. 5dan boshlanadigan va 0gacha sanaladigan dastur yozing. (ANS. Quyida Count5to0.txt)
  2. 2 dan boshlab, son 7 dan oshmaguncha, 3 ga hisoblang. Siz ozgina aqliy arifmetika qila olasiz, u erga tushishini bilgan holda 8 ni tekshiring, keyin qayta ishga tushiring. Dasturingizni umumiy raqam bilan yozing, bu aniq sondan "oshib ketishini" tekshiradi. Maslahat: Chiqarish manfiy qiymatga ega bo'lganda nima bo'lishini o'rganing, masalan 8 - 9 = -1. Keyin 8-bitli raqamli MSB "1" ekanligini tekshirish uchun mantiqiy VA bilan tajriba o'tkazing. (ANS. ExidentsCount.txt)

BYOC-I kompyuteri uchun boshqa murakkab muammolar haqida o'ylay olasizmi? Cheklanganligini hisobga olib, yana nima qila oladi? Men bilan tajribangizni baham ko'ring [email protected]. Agar siz mikroprotsessorlarni kodlashni xohlasangiz, www.whippleway.com veb -saytimni ko'rib chiqing. U erda men Arduinosda ishlatiladigan ATMEL Mega seriyali zamonaviy protsessorlarga mashinani kodlashni olib boraman.

Tavsiya: