Talaan ng mga Nilalaman:
- Hakbang 1: Listahan ng Mga Bahagi
- Hakbang 2: Hierarchy at Mga Code sa Wika ng Machine
- Hakbang 3: Anatomy ng Mga Tagubilin sa BYOC-I
- Hakbang 4: Pag-coding ng isang Tagubilin sa Computer
- Hakbang 5: Anatomy ng isang Program sa Computer
- Hakbang 6: Paglilipat ng Programa sa Memorya at Pagsubok
Video: Code at Subukan ang isang Computer sa Wika ng Makina: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Sa Instructable na ito, ipapakita ko sa iyo kung paano mag-code at subukan ang isang computer program sa wika ng makina. Ang wika ng makina ay ang katutubong wika ng mga computer. Dahil ito ay binubuo ng mga string ng 1s at 0, hindi ito madaling maunawaan ng mga tao. Upang magtrabaho sa paligid nito, nag-code muna kami ng mga programa sa isang mataas na antas ng wika tulad ng C ++ o Java pagkatapos ay gumagamit ng mga espesyal na programa sa computer upang isalin ang mga ito sa mga 1 at 0 na naiintindihan ng mga computer. Ang pag-aaral na mag-code sa isang mataas na antas na wika ay tiyak na walang kaguluhan ngunit ang isang maikling pagpapakilala sa wika ng makina ay maaaring magbigay ng mahalagang pananaw sa kung paano gumagana ang mga computer at dagdagan ang pagpapahalaga sa napakahalagang teknolohiyang ito.
Upang mai-code at subukan ang isang programa sa wika ng makina, kailangan namin ng pag-access sa isang walang-frills na computer na ang wika ng makina ay madaling maunawaan. Ang mga personal na computer ay masyadong kumplikado upang isaalang-alang pa. Ang solusyon ay ang paggamit ng Logisim, isang simulator ng lohika, na tumatakbo sa isang personal na computer. Sa Logisim maaari naming gayahin ang isang computer na nakakatugon sa aming mga pangangailangan. Nagbibigay sa iyo ang video sa itaas ng ilang ideya kung ano ang maaari nating magawa sa Logisim.
Para sa disenyo ng computer, inangkop ko ang isa mula sa aking Kindle e-book na Bumuo ng Iyong Sariling Computer - Mula sa Scratch. Nagsimula ako sa computer ng BYOC na inilarawan doon at pinutol ito sa iba't ibang pangunahing BYOC-I (I for Instructable) na gagamitin namin sa Instructable na ito.
Ang wika ng makina ng BYOC-I ay simple at madaling maunawaan. Hindi mo kakailanganin ang anumang espesyal na kaalaman sa mga computer o programa. Ang kailangan lang ay isang mapag-usisa isip at pagnanais na malaman
Karagdagang Pagbasa
Maaari kang magtaka kung bakit gumagamit kami ng "machine" upang ilarawan ang isang computer kung hindi ito isang aparato na mekanikal. Makasaysayan ang dahilan; ang unang mga aparato sa computing ay mekanikal na binubuo ng mga gears at gulong. Ang liriko ni Allan Sherman, "Lahat ng ito ay nag-clickety-clack …" ay isang siglo o dalawa lamang ang natapos. Magbasa nang higit pa tungkol sa maagang pag-compute dito.
Hakbang 1: Listahan ng Mga Bahagi
Maikli ang listahan ng mga bahagi. Ang dalawang item na ito lamang ang kinakailangan, parehong mai-download nang libre:
- "Logisim-win-2.7.1.exe" - Ang Logisim ay isang tanyag at madaling gamitin na simulator ng lohika. I-download ang Logisim na maipapatupad na file mula dito pagkatapos ay lumikha ng isang maikling hiwa sa isang maginhawang lugar tulad ng iyong desktop. I-double click ang icon ng Logisim upang ilunsad ito. Tandaan: Gumagamit ang Logisim ng Java Runtime Package na matatagpuan dito. Maaaring hilingin sa iyo na i-download ito.
- BYOC-I-Full.cir "- I-download ang Logisim circuit file sa ibaba.
Ilunsad ang Logisim pagkatapos ay i-click ang "File-Open" at i-load ang BYOC-I-Full.cir file. Ipinapakita ng imahe sa itaas ang Logisim na kapaligiran sa pagtatrabaho. Ang BYOC-I ay kinakatawan ng subcircuit block. Nakakonekta sa panlabas ay dalawang mga input, I-reset at Patakbuhin, at hexadecimal na ipinapakita para sa mga rehistro ng BYOC-I at memorya ng programa.
Ang memorya ng programa ng BYOC-I ay paunang na-load sa isang simpleng programa na binibilang mula 1 hanggang 5 sa A register. Upang maipatupad (Patakbuhin) ang programa, sundin ang mga hakbang na ito.
Hakbang 1 - Mag-click sa Poke Tool. Ang cursor ay dapat na baguhin sa poking "daliri". Hakbang 2 - I-dock ang I-reset ang input nang dalawang beses, sa sandaling palitan ito ng "1" at muli upang baguhin ito pabalik sa "0". Ire-reset nito ang BYOC-I upang simulan ang programa sa address 0. Step 3 - I -oke ang input ng Run nang isang beses upang baguhin ito sa "1". Dapat ipakita ng rehistro ng A ang bilang na nagbabago mula 1 hanggang 5 pagkatapos ay paulit-ulit. Hakbang 4 - Kung hindi isagawa ang programa, pindutin ang control-K at dapat itong magsimula.
Kung nais mong tuklasin ang mga kakayahan ng Logisim, i-click ang link ng Tulong sa Menu Bar. Mula doon, maaari mong tuklasin ang Logisim "Tutorial", "User Guide", at "Library Reference". Ang isang mahusay na pagpapakilala sa video ay matatagpuan dito.
Hakbang 2: Hierarchy at Mga Code sa Wika ng Machine
Gumagawa ang computer ng BYOC-I ng mga gawain batay sa mga program na nakasulat sa wika ng makina. Ang mga programa ng BYOC-I naman ay binubuo ng mga tagubiling naisagawa sa isang mahusay na tinukoy na pagkakasunud-sunod. Ang bawat tagubilin ay ginawa ng mga nakapirming haba ng mga code na kumakatawan sa iba't ibang mga bahagi ng pagpapatakbo ng BYOC-I. Sa wakas, ang mga code na ito ay binubuo ng mga string ng 1s at 0 na bumubuo sa wika ng makina na talagang isinasagawa ng BYOC-I.
Sa pamamagitan ng paliwanag, magsisimula kami sa mga code at gagawa hanggang sa antas ng programa. Pagkatapos ay mai-code namin ang isang simpleng programa, i-load ito sa memorya ng BYOC-I, at isagawa ito.
Ang mga code ay binubuo ng isang nakapirming bilang ng mga binary (1 at 0) na mga digit o piraso, para sa maikli. Halimbawa, ipinapakita ng talahanayan sa ibaba ang lahat ng mga posibleng code (16 sa lahat) para sa isang code na 4 na bit ang lapad. Ipinapakita kasama ang code ay ang hexadecimal (base 16) at katumbas ng decimal. Ginamit ang hexadecimal sa pagtukoy sa mga halagang binary dahil mas compact ito kaysa sa binary at mas madaling mag-convert mula sa binary kaysa sa decimal. Ipinapaalam sa iyo ng "0x" na prefiks na ang sumusunod na numero ay hexadecimal o "hex" para sa maikling salita.
Binary - Hexadecimal - Decimal0000 0x0000 00001 0x0001 10010 0x0002 20011 0x0003 30100 0x0004 40101 0x0005 50111 0x0007 71000 0x0008 81001 0x0009 91010 0x000A 101011 0x000B 111100 0x000C 121101 0x000D 1311 151 0x000D 131110
Tinutukoy ng lapad ng isang code kung gaano karaming mga item ang maaaring kinatawan. Tulad ng nabanggit, ang 4-bit malawak na code sa itaas ay maaaring kumatawan ng hanggang sa 16 na mga item (0 hanggang 15); iyon ay, 2 beses 2 kinuha ng apat na beses o 2 hanggang ika-4 na lakas ay katumbas ng 16. Sa pangkalahatan, ang bilang ng mga kinakatawang item ay 2 naitaas sa ika-n na lakas. Narito ang isang maikling listahan ng mga n-bit na capacities ng code.
n - Bilang ng mga Item1 22 43 84 165 326 647 1288 256
Ang mga lapad ng computer code ng BYOC-I ay pinili upang mapaunlakan ang bilang ng mga item na kinakatawan ng code. Halimbawa, mayroong apat na Mga Uri ng Pagtuturo, kaya angkop ang isang 2-bit na malawak na code. Narito ang mga BYOC-I code na may isang maikling paliwanag sa bawat isa.
Code ng Uri ng Pagtuturo (tt) Mayroong apat na uri ng mga tagubilin: (1) MVI - Ilipat ang isang agarang 8-bit na pare-pareho na halaga sa isang memorya ng memorya. Ang memorya ng rehistro ay isang aparato na nagtataglay ng data na gagamitin para sa isang pagkalkula, (2) MOV - Ilipat ang data mula sa isang rehistro patungo sa isa pa, (3) RRC - Magsagawa ng isang pagkalkula ng rehistro, upang (4) JMP - Tumalon sa ibang pagtuturo sa halip na magpatuloy sa susunod na tagubilin. Ang mga BYOC-I Instruction Type Code na pinagtibay ay ang mga sumusunod:
00 MVI01 MOV10 RRC11 JMP
Code ng Rehistro (dd at ss) Ang BYOC-I ay mayroong apat na 8-bit na rehistro na may kakayahang itago ang mga halaga mula 0 hanggang 255. Ang isang 2-bit na code ay sapat upang italaga ang apat na rehistro:
00 F rehistro01 E rehistro10 D rehistro11 Isang rehistro
Calculation Code (ccc) Sinusuportahan ng BYOC-I ang apat na pagpapatakbo ng arithmetic / lohika. Upang pahintulutan ang pagpapalawak sa hinaharap sa walong mga kalkulasyon, isang 3-bit na code ang ginagamit:
000 ADD, magdagdag ng dalawang halagang 8-bit sa mga itinalagang rehistro at iimbak ang resulta sa isa sa mga rehistro 001 SUB, ibawas ang dalawang halagang 8-bit sa mga itinalagang rehistro at iimbak ang resulta sa isa sa mga rehistro 010 - 011 Nakareserba para sa hinaharap na paggamit100 AT, lohikal AT dalawang 8-bit na halaga sa itinalagang mga rehistro at iimbak ang resulta sa isa sa mga rehistro101 O, lohikal O dalawang 8-bit na halaga sa itinalagang mga rehistro at iimbak ang resulta sa isa sa mga rehistro110 hanggang 111, Nakareserba para magamit sa hinaharap
Jump Code (j) Isang 1-bit code na nagpapahiwatig kung ang pagtalon ay walang pasubali (j = 1) o nakakondisyon sa isang hindi zero na resulta ng pagkalkula (j = 0).
Data / Address Code (v… v) / (a… a) Maaaring maisama ang 8-bit na data sa ilang mga tagubilin na kumakatawan sa mga halaga mula 00000000 hanggang 11111111 o 0 hanggang 255 decimal. Ang data na ito ay may lapad na 8-bit para sa pag-iimbak ng 8-bit na rehistro ng BYOC-I. Sa decimal arithmetic, hindi kami nagpapakita ng mga nangungunang zero. Sa pamamagitan ng computer arithmetic, ipinapakita namin ang mga nangungunang zero ngunit hindi sila nakakaapekto sa halaga. Ang 00000101 ay ayon sa bilang na pareho ng 101 o 5 decimal.
Mungkahing Sanggunian
Binary Notation - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -
Karagdagang Pagbasa
Ang ideya ng paggamit ng mga code upang humimok ng isang proseso ay napakalayo. Ang isang kamangha-manghang halimbawa ay ang Jacquard Loom. Ang automated loom ay kinokontrol ng isang kadena ng mga kahoy na kard kung saan ang mga butas ay drill na kumakatawan sa mga code para sa iba't ibang kulay na sinulid para sa paghabi. Nakita ko ang una ko sa Scotland kung saan ginagamit ito upang makagawa ng mga makukulay na tartan. Magbasa nang higit pa tungkol sa Jacquard Looms dito.
Hakbang 3: Anatomy ng Mga Tagubilin sa BYOC-I
Dahil sa mga code ng BYOC-I, umakyat kami sa susunod na antas, mga tagubilin. Upang lumikha ng isang tagubilin para sa BYOC-I, pinagsasama namin ang mga code sa tinukoy na pagkakasunud-sunod at sa mga tukoy na lokasyon sa loob ng pagtuturo. Hindi lahat ng mga code ay lilitaw sa lahat ng mga tagubilin ngunit, kapag nangyari ito, sumasakop sila ng isang tukoy na lokasyon.
Ang uri ng tagubilin ng MVI ay nangangailangan ng pinakamaraming piraso, 12 sa lahat. Sa pamamagitan ng paggawa ng salitang tagubilin na 12 piraso ang haba, tinatanggap namin ang lahat ng mga tagubilin. Ang mga hindi nagamit (tinawag na "walang pakialam") na mga bit ay binibigyan ng halaga 0. Narito ang BYOC-I Instruction Set.
- Ilipat ang Agad (MVI) - 00 dd vvvvvvvvFunction: Ilipat ang isang 8-bit na halaga ng data V = vvvvvvvv sa patutunguhang rehistro dd. Pagkatapos ng pagpapatupad, magrehistro dd ay magkakaroon ng halaga vvvvvvvv. Pagpapaikli: MVI R, V kung saan ang R ay A, D, E, o F. Halimbawa: 00 10 00000101 - MVI D, 5 - Ilipat ang halagang 5 sa rehistro ng D.
- Ilipat ang Rehistro upang Magrehistro (MOV) - 01 dd ss 000000Function: Ilipat ang data mula sa pinagmulan ng rehistro ss patungo sa desisyong rehistro dd. Pagkatapos ng pagpapatupad, ang parehong mga pagrehistro ay may parehong halaga sa pinagmulan ng rehistro. Pagpapaikli: MOV Rd, Rs kung saan ang Rd ay ang patutunguhang rehistro A, D, E, o F at Rs ang pinagmulan ng rehistro A, D, E, o F. Halimbawa: 01 11 01 000000 - MOV A, E - Ilipat ang halaga sa rehistro E upang magparehistro ng A.
- Magrehistro upang Magrehistro Pagkalkula (RRC) - 10 dd ss ccc 000Function: Magsagawa ng itinalagang pagkalkula ccc gamit ang source register ss at patutunguhan na rehistro dd pagkatapos iimbak ang resulta sa patutunguhan na rehistro. Mga daglat: ADD Rd, Rs (ccc = 000 Rd + Rs na nakaimbak sa Rd); SUB Rd, Rs (ccc = 001 Rd - Rs na nakaimbak sa Rd); AT Rd, Rs (ccc = 100 Rd AND Rs na nakaimbak sa Rd); O Rd, Rs (ccc = 101 Rd O Rs na nakaimbak sa Rd). Halimbawa: 10 00 11 001 000 - SUB F, A - Ibawas ang halaga sa A register mula sa F register kasama ang resulta sa F register.
- Tumalon sa Iba't ibang Tagubilin (JMP) - 11 j 0 aaaaaaaaFunction: Baguhin ang pagpapatupad sa isang iba't ibang mga tagubilin na matatagpuan sa address aaaa aaaa (a) Walang Kundisyon (j = 1) -11 1 0 aaaaaaaaAng daglat: JMP L kung saan ang L ay address aaaa aaaaHalimbawa: 11 1 0 00001000 - JMP 8 - Baguhin ang pagpapatupad sa address na 8. (b) Kasunduan (j = 0) nang ang dating pagkalkula ay nagresulta sa isang hindi zero na resulta - 11 0 0 aaaaaaaaAng pagpapaikli: JNZ L kung saan ang L ay address aaaa aaaa. Halimbawa: 11 0 0 00000100 JNZ 4 Kung ang huling pagkalkula ay nagbunga ng isang hindi zero na halaga, baguhin ang pagpapatupad sa address 4.
Ang mga piraso ng tagubilin sa salita ay may bilang na kaliwa (pinaka makabuluhang bit MSB) hanggang kanan (hindi bababa sa makabuluhang bit LSB) mula 11 hanggang 0. Ang nakapirming pagkakasunud-sunod at mga lokasyon ng mga code ay ang mga sumusunod:
Mga Bits - Code11-10 Uri ng Tagubilin9-8 Rehistro ng Patutunguhan7-6 Pinagmulan ng Rehistro5-3 Pagkalkula: 000 - idagdag; 001 - ibawas; 100 - lohikal AT; 101 - lohikal na OR7-0 Patuloy na halaga v… v at isang… a (0 hanggang 255)
Ang hanay ng pagtuturo ay naibubuod sa larawan sa itaas. Tandaan ang nakabalangkas at maayos na hitsura ng mga code sa bawat tagubilin. Ang resulta ay isang mas simpleng disenyo para sa BYOC-I at ginagawang mas madali ang mga tagubilin para maunawaan ng tao.
Hakbang 4: Pag-coding ng isang Tagubilin sa Computer
Bago lumipat sa antas ng programa, bumuo tayo ng ilang mga halimbawa ng tagubilin gamit ang BYOC-I Instruction Set sa itaas.
1. Ilipat ang halagang 1 upang magparehistro A. Ang mga rehistro ng BYOC-I ay maaaring mag-imbak ng mga halaga mula 0 hanggang 255. Sa kasong ito, ang rehistro A ay magkakaroon ng halagang 1 (00000001 binary) pagkatapos ng pagpapatupad ng tagubilin.
Pagpapaikli: MVI A, 1Codes Kinakailangan: Type MVI - 00; Patala ng Patutunguhan A - 11; Halaga - 00000001Pahiwatig ng Panuto: 00 11 00000001
2. Ilipat ang mga nilalaman ng rehistro A upang magparehistro D. Pagkatapos ng pagpapatupad, ang parehong mga rehistro ay magkakaroon ng halaga na orihinal sa rehistro A.
Pagpapaikli: MOV D, A (Tandaan, ang patutunguhan ay una at mapagkukunan pangalawa sa listahan) Kinakailangan ang Mga Code: I-type ang MOV - 01; Patala ng Patutunguhan D - 10; Pinagrehistro ng Pinagmulan A - 11Pahiwatig ng Panuto: 01 10 11 000000
3. Magdagdag ng mga nilalaman ng rehistro D upang irehistro ang A at iimbak sa rehistro A. Pagkatapos ng pagpapatupad, ang halaga ng rehistro A ay ang kabuuan ng orihinal na halaga ng rehistro A at magparehistro D.
Pagpapaikli: ADD A, D (Resulta ay nakaimbak sa patutunguhan magparehistro) Kinakailangan ng Mga Code: Type RRC - 10; Patala ng Patutunguhan A - 11; Pinagrehistro ng Pinagmulan D - 10; Pagkuha ng Pagkalkula - 000Pagturo ng Salita: 10 11 10 000 000 (ang ccc ay unang 000 - idagdag)
4. Tumalon sa hindi zero upang tugunan ang 3. Kung ang resulta ng huling pagkalkula ay hindi zero, ang pagpapatupad ay magbabago sa tagubilin sa ibinigay na address. Kung zero, ipagpatuloy ang pagpapatupad sa sumusunod na tagubilin.
Pagpapaikli: JNZ 3Codes Kinakailangan: Type JMP - 11; Uri ng Tumalon - 0; Address - 00000003Infuction Word: 11 0 0 00000003 (Ang jump type ay unang 0)
5. Tumalon nang walang pasubali upang tugunan ang 0. Pagkatapos ng pagpapatupad, ang mga pagpapatupad ay nagbabago sa tagubilin sa ibinigay na address.
Pagpapaikli: JMP 0Code Kinakailangan: Type JMP - 11; Uri ng Tumalon - 1; Address - 00000000Inpormasyon sa Salita; 11 1 0 00000000
Habang ang machine coding ay medyo nakakapagod, makikita mo na hindi ito imposibleng mahirap. Kung ikaw ay tunay na coding ng machine, gagamit ka ng isang program sa computer na tinatawag na isang assembler upang isalin mula sa pagdadaglat (na kung tawagin ay code ng pagpupulong) sa machine code.
Hakbang 5: Anatomy ng isang Program sa Computer
Ang isang programa sa computer ay isang listahan ng mga tagubilin na isinasagawa ng computer na nagsisimula sa simula ng listahan na nagpapatuloy sa listahan hanggang sa wakas. Ang mga tagubilin tulad ng JNZ at JMP ay maaaring magbago kung aling tagubilin ang isinasagawa sa susunod. Ang bawat tagubilin sa listahan ay sumasakop ng isang solong address sa memorya ng computer na nagsisimula sa 0. Ang memorya ng BYOC-I ay maaaring magkaroon ng isang listahan ng 256 na mga tagubilin, higit sa sapat para sa aming mga layunin.
Ang mga programa sa computer ay idinisenyo upang maisagawa ang isang naibigay na gawain. Para sa aming programa, pipili kami ng isang simpleng gawain, magbibilang ng 1 hanggang 5. Malinaw na walang instruksiyon na "bilangin", kaya ang unang hakbang ay upang sirain ang gawain sa mga hakbang na maaaring hawakan ng BYOC-I limitadong hanay ng pagtuturo.
Hakbang 1 Ilipat 1 upang magparehistro AStep 2 Ilipat ang rehistro A upang magparehistro DStep 3 Magdagdag ng rehistro D upang magparehistro A at iimbak ang resulta sa pagrehistro AStep 4 Ilipat 5 upang magparehistro EStep 5 Ibawas ang rehistro ng A mula sa pagrehistro ng E at iimbak ang resulta sa pagrehistro EStep 6 Kung ang resulta ng pagbabawas ay hindi zero, bumalik sa Hakbang 4 at magpatuloy sa pagbibilang Hakbang 7 Kung ang resulta ng pagbawas ay zero, bumalik at magsimula muli
Ang susunod na hakbang ay isalin ang mga hakbang na ito sa mga tagubilin sa BYOC-I. Ang mga programa ng BYOC-I ay nagsisimula sa address 0 at bilang nang magkakasunod. Ang mga target na target sa pag-target ay naidagdag huling matapos ang lahat ng mga tagubilin ay nasa lugar na..
Address: Tagubilin - pagpapaikli; Paglalarawan0: 00 11 00000001 - MVI A, 1; Ilipat ang 1 upang magparehistro A1: 01 10 11 000000 - MOV D, A; Ilipat ang rehistro A upang magparehistro D2: 10 11 10 000 000 - ADD A, D; Magdagdag ng rehistro D upang irehistro ang A at iimbak ang resulta sa pagrehistro ng A3: 00 01 00 00000101 - MVI E, 5; Ilipat ang 5 rehistro E4: 10 01 11 001 000 - SUB E, A; Ibawas ang rehistro ng A mula sa pagrehistro sa E at iimbak ang nagresulta sa pagrehistro ng E5: 11 0 0 00000010 - JNZ 2; Kung ang resulta ng pagbawas ay hindi zero, bumalik sa address 3 at magpatuloy sa pagbibilang6: 11 1 0 00000000 - JMP 0; Kung ang resulta ng pagbabawas ay zero, bumalik at magsimula muli
Bago ilipat ang memorya sa memorya, ang code ng pagtuturo ng binary ay dapat mapalitan sa hexadecimal upang magamit sa Logisim Hex Editor. Una, hatiin ang tagubilin sa tatlong mga grupo ng 4 na piraso bawat isa. Pagkatapos isalin ang mga pangkat sa hexadecimal gamit ang talahanayan sa Hakbang 2. Tanging ang huling tatlong hexadecimal na numero (sa naka-bold sa ibaba) ang gagamitin.
Address - Instruction Binary - Instruction Binary Split - Instruction (Hex) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101,110,000,000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x01054 100,111,001,000 1001 1100 1000 - 0x09C85 110,000,000,100 1100 0000 0010 - 0x0C026 111000000010 1110 0000 0000 - 0x0E00
Panahon na upang ilipat ang programa sa memorya ng BYOC-I para sa pagsubok.
Hakbang 6: Paglilipat ng Programa sa Memorya at Pagsubok
Sa pagtingin sa Logisim "pangunahing" circuit, ang BYOC-I block na ipinakita ay ang simbolo para sa aktwal na computer circuit na may label na "BYOC-I" sa Explorer Pane. Upang magpasok ng isang programa sa memorya ng BYOC-I:
- Mag-right click sa block ng BYOC-I (tinatawag na "subcircuit") at piliin (magpalipat-lipat sa kaliwa at pag-click) "Tingnan ang BYOC-I".
- Ang circuit ng BYOC-I ay lilitaw sa Work Area. Mag-right click sa simbolong "Memory ng Program" at piliin ang "I-edit ang Mga Nilalaman..".
- Gamit ang Logisim Hex Editor, ipasok ang hexadecimal code (naka-bold lamang) tulad ng ipinakita sa itaas.
Handa ka na ngayong ipatupad ang programa. Bumalik sa pangunahing circuit sa pamamagitan ng pag-double click sa "BYOC-I" sa Explorer Pane. Ang mga input ng Run at Reset ay dapat na "0" upang magsimula. Gamit ang Poke Tool, baguhin muna ang I-reset sa "1" pagkatapos ay bumalik sa "0". Ginagawa nitong panimulang address na 0x0000 at inihahanda ang circuit ng BYOC-I para sa pagpapatupad. Ngayon sundutin ang Run input sa "1" at ipapatupad ang programa. (Tandaan: Pangunahing kailangan mong i-tap ang Control-K nang isang beses upang simulan ang Logisim na orasan. Ito ay isang tampok na nagbibigay-daan sa iyo upang ihinto ang Logisim na orasan at hakbangin ang isang programa sa pamamagitan ng pag-tap sa Control-T nang paulit-ulit. Subukan ito minsan!)
Ang Logisim na orasan ay naayos para sa isang malawak na hanay ng mga frequency. Tulad ng na-download na ito ay 8 Hz (8 cycle bawat segundo). Ang paraan ng pagdisenyo ng computer ng BYOC-I, ang bawat tagubilin ay tumatagal ng apat na mga cycle ng orasan upang makumpleto. Kaya, upang makalkula ang bilis ng BYOC-I, hatiin ang dalas ng orasan ng 4. Sa 8 Hz, ang bilis nito ay 2 mga tagubilin bawat segundo. Maaari mong baguhin ang orasan sa pamamagitan ng pag-click sa "Simulate" sa tool bar at piliin ang "Frequency ng Frequency". Ang posibleng saklaw ay 0.25 Hz hanggang 4100 Hz. Ang mabagal na bilis sa 8 Hz ay napili upang mapanood mo ang bilang sa A register.
Ang maximum na bilis ng simula ng BYOC-I (~ 1000 mga tagubilin bawat segundo) ay napakabagal kumpara sa mga modernong computer. Ang bersyon ng hardware ng BYOC computer na inilarawan sa aking libro ay nagpapatupad ng higit sa 12 milyong mga tagubilin bawat segundo!
Inaasahan kong ang Instructable na ito ay nagpakilala sa pagprogram ng wika ng makina at binigyan ka ng pananaw sa kung paano gumagana ang mga computer sa kanilang pinaka pangunahing antas. Upang makuha ang iyong pag-unawa, subukang i-code ang dalawang mga programa sa ibaba.
- Sumulat ng isang programa na nagsisimula sa 5 at binibilang hanggang 0. (ANS. Count5to0.txt sa ibaba)
- Simula sa 2, bilangin ng 3 hanggang lumagpas ang numero 7. Maaari kang gumawa ng kaunting mental arithmetic, suriin para sa 8 na nalalaman na ito ay darating pagkatapos ay muling simulan. Isulat ang iyong programa sa isang mas pangkalahatang paraan na talagang sumusubok kung ang bilang ay "lumampas" sa isang tukoy na numero. Pahiwatig: Galugarin kung ano ang nangyayari kapag ang isang nagbawas ay nagbubunga ng isang negatibong halaga, sabihin ang 8 - 9 = -1 halimbawa. Pagkatapos mag-eksperimento sa lohikal AT upang masubukan kung ang MSB sa isang 8-bit na numero ay "1". (ANS. Lumagpas sa Bilang.txt)
Maaari ba kayong mag-isip ng iba pang mga mapaghamong problema para sa computer ng BYOC-I? Dahil sa mga limitasyon nito, ano pa ang magagawa nito? Ibahagi ang iyong mga karanasan sa akin sa [email protected]. Kung interesado ka sa pag-coding ng mga microprocessor, tingnan ang aking website na www.whippleway.com. Dala ko ang pag-coding ng makina sa mga modernong processor tulad ng serye ng ATMEL Mega na ginagamit sa Arduinos.
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Subukan Mo Ang Bilis ng Internet Gamit ang isang Raspberry Pi + Ubidots: 9 Hakbang
Subukan Mo Ang Bilis ng Internet Gamit ang isang Raspberry Pi + Ubidots: Ang Raspberry Pi ay naging isang malawakang ginagamit na aparato hindi lamang para sa prototyping at mga hangaring pang-edukasyon, kundi pati na rin para sa mga proyektong pang-industriya na produksyon sa loob ng mga negosyo. Bukod sa laki ng Pi, mababang gastos, at ganap na pagpapatakbo ng Linux OS, maaari din itong makipag-ugnay wi
Ang Puso ng isang Makina (Isang Laser Micro-Projector): 8 Mga Hakbang (na may Mga Larawan)
The Heart of a Machine (Isang Laser Micro-Projector): Ang Instructable na ito ay ang spiritual na kahalili sa isang naunang eksperimento kung saan nagtayo ako ng isang dual-axis mirror laser pagpipiloto pagpupulong mula sa 3D na naka-print na mga bahagi at solenoids. Sa oras na ito nais kong pumunta maliit at ako ay pinalad na makahanap ng ilang baliw sa komersyo
Subukan ang isang Bi-polar Transistor (wala sa Circuit): 3 Mga Hakbang
Subukan ang isang Bi-polar Transistor (wala sa Circuit): Bumuo ka ng isang proyekto ng transistor at mahusay itong gumana, ngunit ngayon tumigil na ito sa paggana. Napagpasyahan mong ang transistor ay maaaring may sira. Ngunit, hindi ka sigurado kung paano mo ito susubukan. Ang Instructable na ito ay para sa pagsubok ng isang transistor matapos itong alisin mula sa
Gumamit ng SSH at XMing upang Maipakita ang Mga Programang X Mula sa isang Linux Computer sa isang Windows Computer: 6 Hakbang
Gumamit ng SSH at XMing upang Maipakita ang Mga Programang X Mula sa isang Linux Computer sa isang Windows Computer: Kung gumagamit ka ng Linux sa trabaho, at Windows sa bahay, o kabaligtaran, maaaring kailanganin mong mag-log in sa computer sa ibang lokasyon mo , at magpatakbo ng mga programa. Kaya, maaari kang mag-install ng isang X Server, at paganahin ang SSH Tunneling sa iyong SSH Client, at isa