Përmbajtje:

Kodoni dhe testoni një kompjuter në gjuhën e makinerisë: 6 hapa
Kodoni dhe testoni një kompjuter në gjuhën e makinerisë: 6 hapa

Video: Kodoni dhe testoni një kompjuter në gjuhën e makinerisë: 6 hapa

Video: Kodoni dhe testoni një kompjuter në gjuhën e makinerisë: 6 hapa
Video: Computational Thinking - Computer Science for Business Leaders 2016 2024, Nëntor
Anonim
Image
Image

Në këtë Instructable, unë do t'ju tregoj se si të kodoni dhe provoni një program kompjuterik në gjuhën e makinës. Gjuha e makinerisë është gjuha amtare e kompjuterëve. Për shkak se është i përbërë nga vargje 1s dhe 0s, nuk kuptohet lehtë nga njerëzit. Për të punuar rreth kësaj, ne kodojmë programet së pari në një gjuhë të nivelit të lartë si C ++ ose Java, pastaj përdorim programe kompjuterike speciale për t'i përkthyer ato në kompjuterët 1s dhe 0s që kuptojnë. Mësimi i kodimit në një gjuhë të nivelit të lartë është sigurisht një gjë pa mend, por një hyrje e shkurtër në gjuhën e makinerisë mund të japë një pasqyrë të vlefshme se si funksionojnë kompjuterët dhe të rrisë vlerësimin e kësaj teknologjie shumë të rëndësishme.

Për të koduar dhe testuar një program të gjuhës së makinerisë, ne kemi nevojë për qasje në një kompjuter jo-frills, gjuha e makinës e të cilit kuptohet lehtë. Kompjuterët personalë janë shumë kompleksë për t'u marrë parasysh. Zgjidhja është të përdorni Logisim, një imitues logjik, që funksionon në një kompjuter personal. Me Logisim ne mund të simulojmë një kompjuter që plotëson nevojat tona. Videoja e mësipërme ju jep një ide se çfarë mund të arrijmë me Logisim.

Për hartimin e kompjuterit, unë përshtata një nga libri im elektronik Kindle Build Your Own Computer - From Scratch. Fillova me kompjuterin BYOC të përshkruar atje dhe e shkurtova atë në bazë të ndryshme BYOC-I (I për Instructable) që do të përdorim në këtë Instructable.

Gjuha e makinës e BYOC-I është e thjeshtë dhe e lehtë për t’u kuptuar. Ju nuk do të keni nevojë për ndonjë njohuri të veçantë të kompjuterëve ose programimit. E gjitha që kërkohet është një mendje kureshtare dhe dëshirë për të mësuar

Leximi më tej

Ju mund të pyesni veten pse ne përdorim "makinë" për të përshkruar një kompjuter kur nuk është një pajisje mekanike. Arsyeja është historike; pajisjet e para llogaritëse ishin mekanike të përbëra nga ingranazhe dhe rrota. Lirika e Allan Sherman, "Gjithçka ishte duke u përplasur …" ishte vetëm një ose dy shekuj. Lexoni më shumë rreth llogaritjes së hershme këtu.

Hapi 1: Lista e Pjesëve

Hierarkia dhe kodet e gjuhës së makinerisë
Hierarkia dhe kodet e gjuhës së makinerisë

Lista e pjesëve është e shkurtër. Kërkohen vetëm këto dy artikuj, të dy pa shkarkim falas:

  1. "Logisim-win-2.7.1.exe"-Logisim është një imitues logjik popullor dhe i lehtë për t’u përdorur. Shkarkoni skedarin e ekzekutueshëm Logisim nga këtu, pastaj krijoni një shkurtim të shkurtër në një vend të përshtatshëm si desktopi juaj. Klikoni dy herë në ikonën Logisim për ta nisur atë. Shënim: Logisim përdor Paketën Java Runtime të vendosur këtu. Mund t'ju kërkohet ta shkarkoni.
  2. BYOC-I-Full.cir "-Shkarkoni skedarin e qarkut Logisim më poshtë.

Nisni Logisim pastaj klikoni "File-Open" dhe ngarkoni skedarin BYOC-I-Full.cir. Imazhi i mësipërm tregon mjedisin e punës Logisim. BYOC-I përfaqësohet nga blloku i nën-qarkut. Të lidhura nga jashtë janë dy hyrje, Reset dhe Run, dhe ekrane heksadecimal për regjistrat dhe memorien e programit të BYOC-I.

Memoria e programit të BYOC-I është e ngarkuar paraprakisht me një program të thjeshtë që numëron nga 1 në 5 në regjistrin A. Për të ekzekutuar (Ekzekutuar) programin, ndiqni këto hapa.

Hapi 1 - Klikoni në Poke Tool. Kursori duhet të ndryshojë në "gishtin" e shpimit. Hapi 2 - Hidhni hyrjen Reset dy herë, një herë duke e ndryshuar atë në "1" dhe përsëri për ta ndryshuar përsëri në "0". Kjo rivendos BYOC -I për të filluar programin në adresën 0. Hapi 3 - Zgjidheni hyrjen Run një herë për ta ndryshuar atë në "1". Regjistri A duhet të tregojë numërimin që ndryshon nga 1 në 5 dhe pastaj përsëritet. Hapi 4 - Nëse programi nuk ekzekutohet, shtypni kontrollin -K dhe duhet të fillojë.

Nëse doni të eksploroni aftësitë e Logisim, klikoni lidhjen Ndihmë në Shiritin e Menusë. Nga atje, ju mund të eksploroni Logisim "Tutorial", "User Guide" dhe "Library Reference". Një hyrje e shkëlqyer video gjendet këtu.

Hapi 2: Hierarkia dhe kodet e gjuhës së makinerisë

Hierarkia dhe kodet e gjuhës së makinerisë
Hierarkia dhe kodet e gjuhës së makinerisë

Kompjuteri BYOC-I kryen detyra bazuar në programet e shkruara në gjuhën e makinerisë. Programet BYOC-I, nga ana tjetër, përbëhen nga udhëzime të ekzekutuara në një sekuencë të përcaktuar mirë. Çdo udhëzim është bërë nga kode me gjatësi fikse që përfaqësojnë përbërës të ndryshëm operacionalë të BYOC-I. Së fundi, këto kode përbëhen nga vargje 1s dhe 0s që përbëjnë gjuhën e makinës që BYOC-I ekzekuton në të vërtetë.

Si shpjegim, ne do të fillojmë me kodet dhe do të shkojmë deri në nivelin e programit. Pastaj ne do të kodojmë një program të thjeshtë, do ta ngarkojmë në kujtesën e BYOC-I dhe do ta ekzekutojmë.

Kodet përbëhen nga një numër fiks i shifrave binare (1 dhe 0) ose bit, shkurt. Për shembull, tabela më poshtë tregon të gjitha kodet e mundshme (gjithsej 16) për një kod 4 bit të gjerë. Kodi është treguar heksadecimal (baza 16) dhe ekuivalenti dhjetor. Hexadecimal përdoret për t'iu referuar vlerave binare pasi është më kompakte se binare dhe më e lehtë për t'u konvertuar nga binare sesa dhjetore. Parashtesa "0x" ju lejon të dini numrin që vijon është heksadecimal ose "gjashtëkëndësh" shkurt.

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 0x000C 121101 0x000C 121101 0x000C 121101 0x000 C

Gjerësia e një kodi përcakton sa artikuj mund të përfaqësohen. Siç u vu re, kodi i gjerë 4-bit i mësipërm mund të përfaqësojë deri në 16 artikuj (0 deri në 15); domethënë, 2 herë 2 të marra katër herë ose fuqia 2 deri në 4 është e barabartë me 16. Në përgjithësi, numri i artikujve të paraqitur është 2 i ngritur në fuqinë e nëntë. Këtu është një listë e shkurtër e kapaciteteve të kodit n-bit.

n - Numri i artikujve 1 22 43 84 165 326 647 1288 256

Gjerësia e kodit kompjuterik BYOC-I zgjidhet për të akomoduar numrin e artikujve që do të përfaqësohen nga kodi. Për shembull, ka katër lloje udhëzimesh, kështu që një kod i gjerë 2-bit është i përshtatshëm. Këtu janë kodet BYOC-I me një shpjegim të shkurtër të secilit.

Kodi i Tipit të Udhëzimit (tt) Ekzistojnë katër lloje udhëzimesh: (1) MVI - Zhvendosni një vlerë konstante 8 -bit të menjëhershme në një regjistër memorie. Regjistri i kujtesës është një pajisje që mban të dhënat që do të përdoren për llogaritjen, (2) MOV - Zhvendosni të dhënat nga një regjistër në tjetrin, (3) RRC - Kryeni një llogaritje regjistër -në -regjistër dhe (4) JMP - Shko në një udhëzim tjetër në vend që të vazhdoni në udhëzimin tjetër. Kodet e Tipit të Udhëzimit BYOC-I të miratuar janë si më poshtë:

00 MVI01 MOV10 RRC11 JMP

Kodi i Regjistrimit (dd dhe ss) BYOC-I ka katër regjistra 8-bit të aftë për të ruajtur vlerat nga 0 në 255. Një kod 2-bit është i mjaftueshëm për të përcaktuar katër regjistrat:

00 F regjistri01 E regjistruesi10 D regjistri11 Një regjistër

Kodi i llogaritjes (ccc) BYOC-I mbështet katër operacione aritmetike/logjike. Për të lejuar zgjerimin në të ardhmen në tetë llogaritjet, përdoret një kod 3-bit:

000 ADD, shtoni dy vlera 8-bit në regjistrat e caktuar dhe ruani rezultatin në një nga regjistrat 001 SUB, zbritni dy vlera 8-bit në regjistrat e caktuar dhe ruani rezultatin në një nga regjistrat 010-011 Rezervuar për përdorim në të ardhmen100 DHE, logjikisht DHE dy vlera 8-bit në regjistrat e caktuar dhe ruani rezultatin në një nga regjistrat101 OSE, logjikisht OSE dy vlera 8-bit në regjistrat e caktuar dhe ruani rezultatin në një nga regjistrat110 deri 111, Rezervuar për përdorim në të ardhmen

Kodi i kërcimit (j) Një kod 1-bit që tregon nëse kërcimi është i pakushtëzuar (j = 1) apo i kushtëzuar nga një rezultat llogaritjeje jo zero (j = 0).

Të dhënat/Kodi i adresës (v… v)/(a… a) Të dhënat 8-bit mund të përfshihen në udhëzime të caktuara që përfaqësojnë vlera nga 00000000 deri në 11111111 ose 0 deri në 255 dhjetore. Këto të dhëna janë 8-bit të gjera për ruajtje në regjistrat 8-bit të BYOC-I. Me aritmetikën dhjetore, ne nuk tregojmë zero kryesore. Me aritmetikën kompjuterike, ne tregojmë zerot kryesorë, por ato nuk ndikojnë në vlerën. 00000101 është numerikisht i njëjtë me një numër dhjetor 101 ose 5.

Referencat e sugjeruara

Shënim binar - https://learn.sparkfun.com/tutorials/binaryShënim heksadecimal -

Leximi më tej

Ideja e përdorimit të kodeve për të drejtuar një proces kthehet shumë larg. Një shembull interesant është Jacquard Loom. Tezgjahu i automatizuar kontrollohej nga një zinxhir kartash druri në të cilat shpoheshin vrima që përfaqësonin kodet për fije me ngjyra të ndryshme për gërshetim. Unë pashë të parin tim në Skoci ku u përdor për të bërë tartanë shumëngjyrësh. Lexoni më shumë rreth Jacquard Looms këtu.

Hapi 3: Anatomia e Udhëzimeve BYOC-I

Anatomia e Udhëzimeve BYOC-I
Anatomia e Udhëzimeve BYOC-I

Duke pasur parasysh kodet e BYOC-I, ne kalojmë në nivelin tjetër, udhëzimet. Për të krijuar një udhëzim për BYOC-I, ne i vendosim kodet së bashku në rendin e specifikuar dhe në vende të veçanta brenda udhëzimit. Jo të gjithë kodet shfaqen në të gjitha udhëzimet, por, kur shfaqen, ato zënë një vendndodhje të caktuar.

Lloji i udhëzimit MVI kërkon më shumë bit, 12 në tërësi. Duke e bërë fjalën udhëzuese 12 bit në gjatësi, ne i përshtatim të gjitha udhëzimet. Biteve të papërdorura (të ashtuquajturat "mos u kujdes") u jepet vlera 0. Këtu është Seti i Udhëzimeve BYOC-I.

  1. Lëvizni të menjëhershëm (MVI) - 00 dd vvvvvvvVFunksioni: Zhvendosni një vlerë të të dhënave 8 -bit V = vvvvvvvv në regjistrin e destinacionit dd. Pas ekzekutimit, regjistri dd do të ketë vlerën vvvvvvvv. Shkurtesa: MVI R, V ku R është A, D, E, ose F. Shembull: 00 10 00000101 - MVI D, 5 - Zhvendosni vlerën 5 në regjistrin D.
  2. Zhvendosni Regjistrin në Regjistër (MOV) - 01 dd ss 000000Funksioni: Zhvendosni të dhënat nga regjistri burimor ss në regjistrin e desinacionit dd. Pas ekzekutimit, të dy regjistrat kanë të njëjtën vlerë si regjistri burimor. Shkurtesa: MOV Rd, Rs ku Rd është regjistri i destinacionit A, D, E, ose F dhe Rs është regjistri burimor A, D, E, ose F. Shembull: 01 11 01 000000 - MOV A, E - Zhvendos vlerën në regjistrin E për të regjistruar A.
  3. Regjistrohuni për të Regjistruar Llogaritjen (RRC) - 10 dd ss ccc 000Funksioni: Kryeni llogaritjen e caktuar ccc duke përdorur regjistrin burimor ss dhe regjistrin e destinacionit dd pastaj ruani rezultatin në regjistrin e destinacionit. Shkurtesat: ADD Rd, Rs (ccc = 000 Rd + Rs të ruajtura në Rd); NUBN Rd, Rs (ccc = 001 Rd - Rs të ruajtura në Rd); DHE Rd, Rs (ccc = 100 Rd AND Rs të ruajtura në Rd); OR Rd, Rs (ccc = 101 Rd OR Rs të ruajtura në Rd). Shembull: 10 00 11 001 000 - NUBN F, A - Zbritni vlerën në regjistrin A nga regjistri F me rezultatin në regjistrin F
  4. Shko te Udhëzimet e Ndryshme (JMP) - 11 j 0 aaaaaaaFunksioni: Ndrysho ekzekutimin në një udhëzim tjetër të vendosur në adresën aaaa aaaa (a) Pa kushte (j = 1) -11 1 0 aaaaaaaa Shkurtim: JMP L ku L është adresa aaaa aaaaShembull: 11 1 0 00001000 - JMP 8 - Ndryshoni ekzekutimin në adresën 8. (b) Me kusht (j = 0) kur llogaritja e mëparshme rezultoi në një rezultat jo zero - 11 0 0 aaaaaaaa Shkurtesa: JNZ L ku L është adresa aaaa aaaa. Shembull: 11 0 0 00000100 JNZ 4 Nëse llogaritja e fundit dha një vlerë jo-zero, ndryshoni ekzekutimin në adresën 4.

Bitet e fjalëve udhëzuese numërohen nga e majta (biti më i rëndësishëm MSB) në të djathtë (biti më pak i rëndësishëm LSB) nga 11 në 0. Rendi fiks dhe vendndodhja e kodeve janë si më poshtë:

Bit-Kodi11-10 Lloji i Udhëzimit9-8 Regjistri i Destinacionit7-6 Regjistri i Burimeve5-3 Llogaritja: 000-shtoni; 001 - zbres; 100 - logjike DHE; 101 - logjike OR7-0 Vlera konstante v… v dhe a… a (0 deri 255)

Seti i udhëzimeve është përmbledhur në figurën e mësipërme. Vini re pamjen e strukturuar dhe të rregullt të kodeve në secilin udhëzim. Rezultati është një dizajn më i thjeshtë për BYOC-I dhe i bën udhëzimet më të lehta për t'u kuptuar nga njerëzit.

Hapi 4: Kodimi i një udhëzimi kompjuterik

Kodimi i një udhëzimi kompjuterik
Kodimi i një udhëzimi kompjuterik

Para se të kaloni në nivelin e programit, le të ndërtojmë disa udhëzime shembull duke përdorur Setin e Udhëzimeve BYOC-I më sipër.

1. Zhvendosni vlerën 1 në regjistrin A. Regjistrat BYOC-I mund të ruajnë vlerat nga 0 në 255. Në këtë rast, regjistri A do të ketë vlerën 1 (00000001 binar) pas ekzekutimit të udhëzimit.

Shkurtesa: MVI A, 1Kodet e kërkuara: Lloji MVI - 00; Regjistri i Destinacionit A - 11; Vlera - 00000001 Fjala udhëzuese: 00 11 00000001

2. Zhvendosni përmbajtjen e regjistrit A në regjistrin D. Pas ekzekutimit, të dy regjistrat do të kenë vlerën fillimisht në regjistrin A.

Shkurtesa: MOV D, A (Mos harroni, destinacioni është i pari dhe burimi i dytë në listë) Kodet e kërkuara: Lloji MOV - 01; Regjistri i Destinacionit D - 10; Regjistri i burimit A - 11Fjalë udhëzuese: 01 10 11 000000

3. Shtoni përmbajtjen e regjistrit D në regjistrin A dhe ruani në regjistrin A. Pas ekzekutimit, vlera e regjistrit A do të jetë shuma e vlerës origjinale të regjistrit A dhe regjistrit D.

Shkurtesa: ADD A, D (Rezultati ruhet në regjistrin e destinacionit) Kodet e kërkuara: Lloji RRC - 10; Regjistri i Destinacionit A - 11; Regjistri i Burimeve D - 10; Llogaritja Shto - 000 Fjala udhëzuese: 10 11 10 000 000 (ccc është 000 e parë - shto)

4. Kërceni në zero për në adresë 3. Nëse rezultati i llogaritjes së fundit nuk ishte zero, ekzekutimi do të ndryshojë në udhëzimin në adresën e dhënë. Nëse është zero, ekzekutimi rifillon me udhëzimin vijues.

Shkurtesa: JNZ 3Kodet e kërkuara: Lloji JMP - 11; Lloji i Kërcimit - 0; Adresa - 00000003 Fjala udhëzuese: 11 0 0 00000003 (Lloji i kërcimit është i pari 0)

5. Shko pa kushte në adresën 0. Pas ekzekutimit, ekzekutimi ndryshon në udhëzim në adresën e dhënë.

Shkurtesa: JMP 0Kodi i kërkuar: Lloji JMP - 11; Lloji i Kërcimit - 1; Adresa - 00000000Fjalë udhëzuese; 11 1 0 00000000

Ndërsa kodimi i makinerisë është disi i lodhshëm, mund ta shihni që nuk është e pamundur e vështirë. Nëse do të kodonit vërtet me makinë, do të përdorni një program kompjuterik të quajtur assembler për të përkthyer nga shkurtesa (e cila quhet kodi i montimit) në kodin e makinerisë.

Hapi 5: Anatomia e një programi kompjuterik

Anatomia e një programi kompjuterik
Anatomia e një programi kompjuterik

Një program kompjuterik është një listë udhëzimesh që kompjuteri ekzekuton duke filluar në fillim të listës duke vazhduar poshtë listës deri në fund. Udhëzimet si JNZ dhe JMP mund të ndryshojnë se cili udhëzim ekzekutohet më pas. Çdo udhëzim në listë zë një adresë të vetme në kujtesën e kompjuterit duke filluar nga 0. Memoria BYOC-I mund të mbajë një listë prej 256 udhëzimesh, më shumë se të mjaftueshme për qëllimet tona.

Programet kompjuterike janë krijuar për të kryer një detyrë të caktuar. Për programin tonë, ne do të zgjedhim një detyrë të thjeshtë, duke numëruar nga 1 në 5. Natyrisht, nuk ka udhëzim "numërimi", kështu që hapi i parë është ta ndash detyrën në hapa që mund të trajtohen nga BYOC-I's grup udhëzimesh i kufizuar.

Hapi 1 Lëvizni 1 për t'u regjistruar Hapi 2 Zhvendosni regjistrin A për të regjistruar DShapi 3 Shtoni regjistrin D për regjistrimin A dhe ruani rezultatin në regjistër ASHAPI 4 Lëvizni 5 për të regjistruar EStep 5 Zbritni regjistrin A nga regjistri E dhe ruani rezultatin në regjistrin Hapi 6 Nëse rezultati i zbritjes nuk ishte zero, kthehuni te Hapi 4 dhe vazhdoni numërimin Hapi 7 Nëse rezultati i zbritjes ishte zero, kthehuni prapa dhe filloni nga e para

Hapi tjetër është përkthimi i këtyre hapave në udhëzimet e BYOC-I. Programet BYOC-I fillojnë në adresën 0 dhe numrat rresht. Adresat e synuara të kërcimit shtohen të fundit pasi të jenë vendosur të gjitha udhëzimet..

Adresa: Udhëzim - Shkurtim; Përshkrimi 0: 00 11 00000001 - MVI A, 1; Lëvizni 1 për të regjistruar A1: 01 10 11 000000 - MOV D, A; Zhvendosni regjistrin A për të regjistruar D2: 10 11 10 000 000 - SHTO A, D; Shto regjistrin D për regjistrimin A dhe ruaj rezultatin në regjistrin A3: 00 01 00 00000101 - MVI E, 5; Zhvendos regjistrin 5 E4: 10 01 11 001 000 - NUBN E, A; Zbrit regjistrin A nga regjistri E dhe ruaj rezultoni në regjistrin E5: 11 0 0 00000010 - JNZ 2; Nëse rezultati i zbritjes nuk ishte zero, kthehuni në adresën 3 dhe vazhdoni numërimin 6: 11 1 0 00000000 - JMP 0; Nëse rezultati i zbritjes ishte zero, kthehuni dhe filloni nga e para

Para transferimit të programit në memorje, kodi binar i udhëzimit duhet të ndryshohet në heksadecimal për t'u përdorur me Logisim Hex Editor. Së pari, ndani udhëzimin në tre grupe me nga 4 bit secila. Pastaj përktheni grupet në heksadecimal duke përdorur tabelën në Hapin 2. Vetëm tre shifrat e fundit hexadecimal (me shkronja të zeza më poshtë) do të përdoren.

Adresa - Udhëzim Binary - Instruction Binary Split - Udhëzim (Hex) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x01054 100111001000 1001 1100 1000 - 0x09C85 110000000100 1100 0000 0010 - 0x0C026 111000000010 1110 0000 0000 - 0x0E00

Timeshtë koha për ta transferuar programin në kujtesën e BYOC-I për testim.

Hapi 6: Transferimi i Programit në Kujtim dhe Testim

Transferimi i Programit në Kujtim dhe Testim
Transferimi i Programit në Kujtim dhe Testim
Transferimi i Programit në Kujtim dhe Testim
Transferimi i Programit në Kujtim dhe Testim

Duke parë qarkun "Logisim" kryesor, blloku i treguar BYOC-I është simboli i qarkut kompjuterik aktual të etiketuar "BYOC-I" në panelin Explorer. Për të futur një program në kujtesën BYOC-I:

  1. Klikoni me të djathtën mbi bllokun BYOC-I (i quajtur "nën-qark") dhe zgjidhni (rri pezull mbi dhe klikim majtas) "Shiko BYOC-I".
  2. Qarku BYOC-I do të shfaqet në Zonën e Punës. Klikoni me të djathtën në simbolin "Program Memory" dhe zgjidhni "Edit Contents..".
  3. Duke përdorur Redaktorin Logisim Hex, futni kodin heksadecimal (vetëm të theksuar) siç tregohet më sipër.

Tani jeni gati për të ekzekutuar programin. Kthehuni në qarkun kryesor duke klikuar dy herë "BYOC-I" në panelin Explorer. Hyrjet Run dhe Reset duhet të jenë "0" për të filluar. Duke përdorur Poke Tool, së pari ndryshoni Reset në "1" dhe pastaj kthehuni në "0". Kjo e bën adresën fillestare 0x0000 dhe përgatit qarkun BYOC-I për ekzekutim. Tani futni hyrjen Run në "1" dhe programi do të ekzekutohet. (Shënim: Duhet të prekni një herë Control-K për të filluar orën Logisim. Kjo është një veçori që ju lejon të ndaloni orën Logisim dhe të kaloni nëpër një program duke trokitur vazhdimisht në Control-T. Provojeni dikur!)

Ora Logisim është e rregullueshme për një gamë të gjerë frekuencash. Si i shkarkuar është 8 Hz (8 cikle për sekondë). Mënyra se si është krijuar kompjuteri BYOC-I, secilit udhëzim i duhen katër cikle të orës për tu përfunduar. Pra, për të llogaritur shpejtësinë BYOC-I, ndani frekuencën e orës me 4. Në 8 Hz, shpejtësia e saj është 2 udhëzime për sekondë. Mund ta ndryshoni orën duke klikuar "Simuloni" në shiritin e veglave dhe duke zgjedhur "Frekuenca e shënimit". Gama e mundshme është 0.25 Hz në 4100 Hz. Shpejtësia e ngadaltë në 8 Hz u zgjodh në mënyrë që të mund të shikoni numërimin në regjistrin A.

Shpejtësia maksimale e simulimit BYOC-I (instructions 1000 udhëzime në sekondë) është shumë e ngadaltë në krahasim me kompjuterët modernë. Versioni harduerik i kompjuterit BYOC i përshkruar në librin tim ekzekuton më shumë se 12 milion udhëzime në sekondë!

Shpresoj se ky Instructable ka çmitizuar programimin e gjuhës së makinerisë dhe ju ka dhënë pasqyrë se si funksionojnë kompjuterët në nivelin e tyre më themelor. Për të arritur mirëkuptimin tuaj, përpiquni të kodoni dy programet më poshtë.

  1. Shkruani një program që fillon në 5 dhe numëron deri në 0. (ANS. Count5to0.txt më poshtë)
  2. Duke filluar nga 2, numëroni me 3 derisa numri të tejkalojë 7. Ju mund të bëni një aritmetikë të vogël mendore, kontrolloni për 8 duke e ditur se do të ulet atje dhe pastaj të rinisni. Shkruani programin tuaj në një mënyrë më të përgjithshme që vërtet provon nëse numërimi "tejkalon" një numër specifik. Këshillë: Eksploroni se çfarë ndodh kur një zbritje jep një vlerë negative, të themi 8 - 9 = -1 për shembull. Pastaj eksperimentoni me logjikën AND për të provuar nëse MSB në një numër 8-bit është "1". (ANS. ExceedsCount.txt)

Mund të mendoni për probleme të tjera sfiduese për kompjuterin BYOC-I? Duke pasur parasysh kufizimet e tij, çfarë mund të bëjë më shumë? Ndani përvojat tuaja me mua në [email protected]. Nëse jeni të interesuar në kodimin e mikroprocesorëve, shikoni faqen time në internet www.whippleway.com. Aty mbaj kodimin e makinerisë në përpunuesit modernë si seria ATMEL Mega e përdorur në Arduinos.

Recommended: