Turinys:

Koduokite ir išbandykite kompiuterį mašinos kalba: 6 žingsniai
Koduokite ir išbandykite kompiuterį mašinos kalba: 6 žingsniai
Anonim
Image
Image

Šioje instrukcijoje parodysiu, kaip koduoti ir išbandyti kompiuterinę programą mašinos kalba. Mašinų kalba yra gimtoji kompiuterių kalba. Kadangi jis sudarytas iš 1 ir 0 sekų, tai žmonėms nesunku suprasti. Norėdami tai išspręsti, pirmiausia koduojame programas aukšto lygio kalba, pvz., „C ++“ar „Java“, o paskui naudojame specialias kompiuterines programas, kad išverstume jas į 1 ir 0 skaičių, kuriuos kompiuteriai supranta. Išmokti koduoti aukšto lygio kalba tikrai nesudėtinga, tačiau trumpas įvadas į mašinų kalbą gali suteikti vertingos informacijos apie tai, kaip veikia kompiuteriai, ir padidinti šios labai svarbios technologijos supratimą.

Norėdami koduoti ir išbandyti mašinos kalbos programą, mums reikia prieigos prie nesudėtingo kompiuterio, kurio mašininė kalba yra lengvai suprantama. Asmeniniai kompiuteriai yra pernelyg sudėtingi, kad net svarstytume. Sprendimas yra naudoti loginį simuliatorių „Logisim“, kuris veikia asmeniniame kompiuteryje. Naudodami „Logisim“galime imituoti mūsų poreikius atitinkantį kompiuterį. Aukščiau pateiktame vaizdo įraše pateikiama idėja, ką galime pasiekti naudodami „Logisim“.

Kompiuterio dizainui pritaikiau vieną iš savo „Kindle“el. Knygos „Sukurkite savo kompiuterį - nuo nulio“. Pradėjau nuo ten aprašyto BYOC kompiuterio ir sutrumpinau jį iki skirtingo pagrindinio BYOC-I (I for Instructable), kurį naudosime šioje instrukcijoje.

BYOC-I mašinų kalba yra paprasta ir lengvai suprantama. Jums nereikės jokių specialių kompiuterių ar programavimo žinių. Viskas, ko reikia, yra smalsus protas ir noras mokytis

Papildoma literatūra

Jums gali kilti klausimas, kodėl kompiuteriui apibūdinti naudojame „mašiną“, kai jis nėra mechaninis įrenginys. Priežastis yra istorinė; pirmieji skaičiavimo įrenginiai buvo mechaniniai, sudaryti iš krumpliaračių ir ratų. Alano Shermano lyrika „Viskas buvo pavaržyta, kaip spragtelėjo …“buvo tik po šimtmečio ar dviejų. Daugiau apie ankstyvą kompiuterį skaitykite čia.

1 žingsnis: dalių sąrašas

Mašinos kalbos hierarchija ir kodai
Mašinos kalbos hierarchija ir kodai

Dalių sąrašas yra trumpas. Reikalingi tik šie du elementai, abu galima nemokamai atsisiųsti:

  1. „Logisim-win-2.7.1.exe“-„Logisim“yra populiarus ir lengvai naudojamas loginis simuliatorius. Atsisiųskite „Logisim“vykdomąjį failą iš čia, tada sukurkite nuorodą patogioje vietoje, pvz., Darbalaukyje. Dukart spustelėkite „Logisim“piktogramą, kad ją paleistumėte. Pastaba: „Logisim“naudoja čia esantį „Java Runtime“paketą. Jūsų gali būti paprašyta atsisiųsti.
  2. BYOC-I-Full.cir “-Atsisiųskite žemiau esantį„ Logisim “grandinės failą.

Paleiskite „Logisim“, tada spustelėkite „Atidaryti failą“ir įkelkite failą BYOC-I-Full.cir. Aukščiau esančiame paveikslėlyje parodyta „Logisim“darbo aplinka. BYOC-I vaizduojamas grandinės blokas. Išoriškai prijungti du įėjimai-„Reset“ir „Run“-šešioliktainiai BYOC-I registrų ir programos atminties rodiniai.

BYOC-I programos atmintyje yra iš anksto įkelta paprasta programa, kuri A registre suskaičiuojama nuo 1 iki 5. Norėdami vykdyti (paleisti) programą, atlikite šiuos veiksmus.

1 žingsnis - Spustelėkite „Poke Tool“. Žymeklis turėtų pasikeisti į stumiantį „pirštą“. 2 veiksmas - du kartus įveskite „Reset“įvestį, vieną kartą pakeisdami ją į „1“ir dar kartą, kad pakeistumėte į „0“. Tai iš naujo nustato BYOC -I, kad programa būtų paleista adresu 0. 3 žingsnis - Vieną kartą įveskite „Run“įvestį, kad pakeistumėte ją į „1“. A registre turėtų būti rodomas skaičius, kuris keičiasi nuo 1 iki 5, tada kartojasi. 4 žingsnis. Jei programa neįvykdoma, paspauskite „Control -K“ir ji turėtų prasidėti.

Jei norite ištirti „Logisim“galimybes, meniu juostoje spustelėkite nuorodą Pagalba. Iš ten galite naršyti „Logisim“mokymo programą, „Vartotojo vadovą“ir „Bibliotekos nuorodą“. Čia rasite puikų vaizdo įvadą.

2 žingsnis: mašinų kalbos hierarchija ir kodai

Mašinos kalbos hierarchija ir kodai
Mašinos kalbos hierarchija ir kodai

Kompiuteris BYOC-I atlieka užduotis pagal programas, parašytas mašinine kalba. Savo ruožtu BYOC-I programas sudaro instrukcijos, vykdomos tiksliai apibrėžta seka. Kiekviena instrukcija sudaryta iš fiksuoto ilgio kodų, vaizduojančių įvairius BYOC-I veikimo komponentus. Galiausiai šiuos kodus sudaro 1 ir 0 sekos, sudarančios mašinos kalbą, kurią faktiškai vykdo BYOC-I.

Kaip paaiškinimą, pradėsime nuo kodų ir pereisime prie programos lygio. Tada koduojame paprastą programą, įkeliame ją į BYOC-I atmintį ir vykdome.

Kodai susideda iš fiksuoto skaičiaus dvejetainių (1 ir 0) skaitmenų arba trumpai. Pavyzdžiui, žemiau esančioje lentelėje rodomi visi galimi 4 bitų pločio kodai (iš viso 16). Šalia rodomas kodas yra šešioliktainis (16 bazė) ir dešimtainis atitikmuo. Šešioliktainis naudojamas nurodant dvejetaines reikšmes, nes jis yra kompaktiškesnis nei dvejetainis ir lengviau konvertuojamas iš dvejetainių nei dešimtainis. Priešdėlis „0x“leidžia žinoti, kad sekantis skaičius yra šešioliktainis arba „šešioliktainis“.

Dvejetainis - šešioliktainis - dešimtainis 0000 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

Kodo plotis nustato, kiek elementų galima pateikti. Kaip minėta, aukščiau pateiktas 4 bitų pločio kodas gali sudaryti iki 16 elementų (nuo 0 iki 15); tai yra 2 kartus 2, paimti keturis kartus, arba 2–4 galia yra lygi 16. Apskritai reprezentuojamų elementų skaičius yra 2 pakeltas į n. Čia yra trumpas n bitų kodų pajėgumų sąrašas.

n - elementų skaičius 1 22 43 84 165 326 647 1288 256

BYOC-I kompiuterio kodo pločiai parenkami taip, kad atitiktų elementų, kuriuos turi pateikti kodas, skaičių. Pavyzdžiui, yra keturi instrukcijų tipai, todėl tinka 2 bitų pločio kodas. Čia yra BYOC-I kodai su trumpu kiekvieno paaiškinimu.

Instrukcijos tipo kodas (tt) Yra keturi nurodymų tipai: (1) MVI - nedelsiant perkelkite 8 bitų pastoviąją vertę į atminties registrą. Atminties registras yra įrenginys, kuriame saugomi skaičiavimui naudojami duomenys, (2) MOV - duomenų perkėlimas iš vieno registro į kitą, (3) RRC - skaičiavimas iš registro į registrą ir (4) JMP - peršokimas kitam nurodymui, o ne tęsti kitam nurodymui. Priimti BYOC-I instrukcijų tipo kodai yra šie:

00 MVI01 MOV10 RRC11 JMP

Registro kodas (dd ir ss) BYOC-I turi keturis 8 bitų registrus, galinčius išsaugoti reikšmes nuo 0 iki 255. Keturiems registrams pažymėti pakanka 2 bitų kodo:

00 F registras01 E registras10 D registras11 A registras

Skaičiavimo kodas (ccc) BYOC-I palaiko keturias aritmetines/logines operacijas. Kad ateityje būtų galima išplėsti iki aštuonių skaičiavimų, naudojamas 3 bitų kodas:

000 ADD, pridėkite dvi 8 bitų reikšmes tam skirtuose registruose ir išsaugokite rezultatą viename iš registrų 001 SUB, atimkite dvi 8 bitų reikšmes paskirtuose registruose ir išsaugokite rezultatą viename iš registrų 010-011 Rezervuota tolimesniam naudojimui100 IR, logiškai IR dvi 8 bitų reikšmes tam skirtuose registruose ir išsaugokite rezultatą viename iš registrų101 ARBA, logiškai ARBA dvi 8 bitų reikšmes paskirtuose registruose ir išsaugokite rezultatą viename iš registrų

Šuolio kodas (j) 1 bitų kodas, nurodantis, ar šuolis yra besąlygiškas (j = 1), ar sąlygotas ne nulinio skaičiavimo rezultato (j = 0).

Duomenys/adreso kodas (v… v)/(a… a) 8 bitų duomenys gali būti įtraukti į tam tikras instrukcijas, reiškiančias reikšmes nuo 00000000 iki 11111111 arba nuo 0 iki 255 dešimtųjų. Šie duomenys yra 8 bitų pločio, kad juos būtų galima saugoti BYOC-I 8 bitų registruose. Naudodami dešimtainę aritmetiką, nerodome nulių. Naudodami kompiuterinę aritmetiką rodome nulius, tačiau jie neturi įtakos vertei. 00000101 skaičius yra tas pats 101 arba 5 dešimtainis.

Siūlomos nuorodos

Dvejetainis žymėjimas - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -

Papildoma literatūra

Idėja naudoti kodus procesui valdyti yra labai sena. Įspūdingas pavyzdys yra žakardo audinys. Automatizuotas stakles valdė medinių kortelių grandinė, kurioje buvo išgręžtos skylės, vaizduojančios skirtingų spalvų audimo siūlų kodus. Pirmąjį mačiau Škotijoje, kur iš jo buvo gaminami spalvingi tartanai. Daugiau apie Jacquard Looms skaitykite čia.

3 žingsnis: BYOC-I instrukcijų anatomija

BYOC-I instrukcijų anatomija
BYOC-I instrukcijų anatomija

Atsižvelgdami į BYOC-I kodus, pereiname į kitą lygį, instrukcijas. Norėdami sukurti BYOC-I nurodymą, mes sudedame kodus nustatyta tvarka ir tam tikrose instrukcijos vietose. Ne visi kodai rodomi visose instrukcijose, tačiau kai jie pasirodo, jie užima tam tikrą vietą.

MVI instrukcijų tipui reikia daugiausiai bitų, iš viso 12. Sudarydami 12 žodžių instrukcijos žodį, sutinkame su visomis instrukcijomis. Nepanaudotų (taip vadinamų „nerūpi“) bitų vertė yra 0. Čia yra BYOC-I instrukcijų rinkinys.

  1. Perkelti nedelsiant (MVI) - 00 dd vvvvvvvv Funkcija: Perkelkite 8 bitų duomenų reikšmę V = vvvvvvvv į paskirties registrą dd. Po vykdymo registras dd turės reikšmę vvvvvvvv. Santrumpa: MVI R, V, kur R yra A, D, E arba F. Pavyzdys: 00 10 00000101 - MVI D, 5 - Perkelkite reikšmę 5 į D registrą.
  2. Perkelti registrą į registrą (MOV) - 01 dd ss 000000 Funkcija: Perkelti duomenis iš šaltinio registro ss į paskirties registrą dd. Po vykdymo abu registrai turi tokią pačią vertę kaip ir šaltinio registras. Santrumpa: MOV Rd, Rs, kur Rd yra paskirties registras A, D, E arba F, o Rs yra šaltinio registras A, D, E arba F. Pavyzdys: 01 11 01 000000 - MOV A, E - perkelkite vertę registrui E registruoti A.
  3. Funkcija: Atlikite nurodytą skaičiavimą ccc naudodami šaltinio registrą ss ir paskirties registrą dd, tada išsaugodami rezultatą paskirties registre. Santrumpos: ADD Rd, Rs (ccc = 000 Rd + Rs, saugomų Rd); SUB Rd, Rs (ccc = 001 Rd - Rs, saugomi Rd); IR Rd, Rs (ccc = 100 Rd IR Rs, saugomi Rd); ARBA Rd, Rs (ccc = 101 Rd OR Rs, saugomi Rd). Pavyzdys: 10 00 11 001 000 - F PAKALBA, A - atimkite A registro vertę iš F registro ir gaukite F registre.
  4. Funkcija: Pakeisti vykdymą į kitą nurodymą, esantį adresu aaaa aaaa (a) Besąlygiškai (j = 1) -11 1 0 aaaaaaaa Santrumpa: JMP L, kur L yra adresas aaaa aaaaPavyzdys: 11 1 0 00001000 - JMP 8 - Pakeisti vykdymą į adresą 8. b) Sąlyginai (j = 0), kai ankstesnio skaičiavimo rezultatas buvo ne lygus nuliui - 11 0 0 aaaaaaaa Santrumpa: JNZ L, kur L yra adresas aaaa aaaa. Pavyzdys: 11 0 0 00000100 JNZ 4 Jei paskutinis skaičiavimas davė ne nulinę reikšmę, pakeiskite vykdymą į 4 adresą.

Instrukcijų žodžių bitai sunumeruoti iš kairės (reikšmingiausias bitas MSB) į dešinę (mažiausiai reikšmingas bitas LSB) nuo 11 iki 0. Fiksuota kodų tvarka ir vieta yra tokia:

Bitai-Kodas11-10 Instrukcijos tipas9-8 Paskirties registras7-6 Šaltinių registras5-3 Skaičiavimas: 000-pridėti; 001 - atimti; 100 - logiška IR; 101 - logiška OR7-0 Pastovi vertė v… v ir a… a (nuo 0 iki 255)

Instrukcijų rinkinys apibendrintas aukščiau esančiame paveikslėlyje. Atkreipkite dėmesį į struktūrizuotą ir tvarkingą kodų išvaizdą kiekvienoje instrukcijoje. Rezultatas yra paprastesnis „BYOC-I“dizainas ir palengvina instrukcijų supratimą žmonėms.

4 žingsnis: kompiuterio instrukcijos kodavimas

Kompiuterio instrukcijos kodavimas
Kompiuterio instrukcijos kodavimas

Prieš pereidami prie programos lygio, sukonstruokime keletą pavyzdžių, naudodami aukščiau pateiktą BYOC-I instrukcijų rinkinį.

1. Perkelkite reikšmę 1 į registrą A. BYOC-I registrai gali saugoti reikšmes nuo 0 iki 255. Tokiu atveju įvykdžius nurodymą, registro A vertė bus 1 (00000001 dvejetainė).

Santrumpa: MVI A, 1 Būtini kodai: tipas MVI - 00; Paskirties registras A - 11; Vertė - 00000001Instrukcijos žodis: 00 11 00000001

2. Perkelkite registro A turinį į registrą D. Po įvykdymo abu registrai turės vertę, kuri iš pradžių buvo A registre.

Santrumpa: MOV D, A (Atminkite, kad sąrašo tikslas yra pirmas, o šaltinis - antras) Reikalingi kodai: tipas MOV - 01; Paskirties registras D - 10; Šaltinio registras A - 11Instrukcijos žodis: 01 10 11 000000

3. Į registrą A įtraukite D registro turinį ir išsaugokite A registre. Po įvykdymo registro A vertė bus A registro ir D registro pradinės vertės suma.

Santrumpa: ADD A, D (Rezultatas saugomas paskirties registre) Reikalingi kodai: Tipas RRC - 10; Paskirties registras A - 11; Šaltinių registras D - 10; Skaičiavimo papildymas - 000 Instrukcijos žodis: 10 11 10 000 000 (ccc yra pirmas 000 - pridėkite)

4. Pereikite prie nulio į adresą 3. Jei paskutinio skaičiavimo rezultatas nebuvo lygus nuliui, vykdymas pasikeis į nurodytą adresą. Jei nulis, vykdymas atnaujinamas pagal toliau pateiktą instrukciją.

Santrumpa: JNZ 3 Būtini kodai: tipas JMP - 11; Šuolio tipas - 0; Adresas - 00000003 Instrukcijos žodis: 11 0 0 00000003 (šuolio tipas yra pirmas 0)

5. Peršokti besąlygiškai į adresą 0. Po vykdymo įvykdymas pakeičia nurodymą nurodytu adresu.

Santrumpa: JMP 0 Būtinas kodas: tipas JMP - 11; Šuolio tipas - 1; Adresas - 00000000Instrukcijos žodis; 11 1 0 00000000

Nors mašininis kodavimas yra šiek tiek varginantis, galite pastebėti, kad tai nėra neįtikėtinai sunku. Jei mašininis kodavimas būtų tikras, kompiuterinę programą, vadinamą surinkėju, išverstumėte iš santrumpos (vadinamos surinkimo kodu) į mašinos kodą.

5 žingsnis: Kompiuterio programos anatomija

Kompiuterio programos anatomija
Kompiuterio programos anatomija

Kompiuterio programa yra instrukcijų, kurias kompiuteris vykdo nuo sąrašo pradžios, sąrašas tęsiasi žemyn iki galo. Tokios instrukcijos kaip JNZ ir JMP gali pakeisti, kuri instrukcija bus vykdoma toliau. Kiekviena sąrašo instrukcija užima vieną adresą kompiuterio atmintyje, pradedant nuo 0. BYOC-I atmintyje gali būti 256 instrukcijų sąrašas, daugiau nei pakankamai mūsų tikslams.

Kompiuterinės programos yra skirtos tam tikrai užduočiai atlikti. Savo programai mes pasirinksime paprastą užduotį, skaičiuodami nuo 1 iki 5. Akivaizdu, kad nėra „skaičiavimo“instrukcijos, todėl pirmas žingsnis yra suskaidyti užduotį į veiksmus, kuriuos gali atlikti BYOC-I labai ribotas instrukcijų rinkinys.

1 veiksmas Perkelkite 1 ir užregistruokite AStep 2 Perkelkite registrą A į registraciją DS 3 žingsnis Pridėkite registrą D į registrą A ir išsaugokite rezultatą registre AStep 4 Perkelkite 5 į registrą EStep 5 Atimkite registrą A iš registro E ir išsaugokite rezultatą registre ESte 6 Jei atimties rezultatas nebuvo nulis, grįžkite prie 4 veiksmo ir toliau skaičiuokite 7 žingsnis Jei atimties rezultatas buvo nulis, grįžkite ir pradėkite iš naujo

Kitas žingsnis yra šiuos veiksmus išversti į BYOC-I instrukcijas. BYOC-I programos prasideda adresu 0 ir numeruojamos iš eilės. Šuolio tikslo adresai pridedami paskutiniai, kai yra visos instrukcijos.

Adresas: Instrukcija - Santrumpa; Aprašymas; Įtraukite registrą D į A registrą ir išsaugokite rezultatą registre A3: 00 01 00 00000101 - MVI E, 5; Perkelkite 5 registrą E4: 10 01 11 001 000 - SUB E, A; Atimkite registrą A iš registro E ir išsaugokite rezultatas E5 registre: 11 0 0 00000010 - JNZ 2; Jei atimties rezultatas nebuvo lygus nuliui, grįžkite į 3 adresą ir tęskite skaičiavimą

Prieš perkeldami programą į atmintį, dvejetainis instrukcijų kodas turi būti pakeistas į šešioliktainį, kad būtų naudojamas su „Logisim Hex Editor“. Pirmiausia padalinkite instrukciją į tris grupes po 4 bitus. Tada išverskite grupes į šešioliktainius, naudodami 2 veiksmo lentelę. Bus naudojami tik paskutiniai trys šešioliktainiai skaitmenys (paryškinti žemiau).

Adresas - instrukcija dvejetainė - instrukcija dvejetainis padalijimas - instrukcija (šešiakampis) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x0105000000100 111000000010 1110 0000 0000 - 0x0E00

Atėjo laikas perkelti programą į BYOC-I atmintį bandymams.

6 veiksmas: programos perkėlimas į atmintį ir testavimas

Programos perkėlimas į atmintį ir testavimas
Programos perkėlimas į atmintį ir testavimas
Programos perkėlimas į atmintį ir testavimas
Programos perkėlimas į atmintį ir testavimas

Žvelgiant į „Logisim“pagrindinę grandinę, parodytas BYOC-I blokas yra tikrosios kompiuterio grandinės, pažymėtos „BYOC-I“, naršyklės srityje simbolis. Norėdami įvesti programą į BYOC-I atmintį:

  1. Dešiniuoju pelės mygtuku spustelėkite BYOC-I bloką (vadinamą „grandine“) ir pasirinkite (užveskite pelės žymeklį virš ir kairįjį pelės klavišą) „View BYOC-I“.
  2. Darbo zonoje pasirodys BYOC-I grandinė. Dešiniuoju pelės mygtuku spustelėkite „Programos atminties“simbolį ir pasirinkite „Redaguoti turinį..“.
  3. Naudodami „Logisim Hex Editor“įveskite šešioliktainį kodą (tik paryškintą), kaip parodyta aukščiau.

Dabar esate pasiruošę vykdyti programą. Grįžkite į pagrindinę grandinę dukart spustelėdami „BYOC-I“naršyklės srityje. Norėdami pradėti, įvesties ir paleidimo įvestys turi būti „0“. Naudodami „Poke Tool“, pirmiausia pakeiskite „Reset“į „1“, tada vėl į „0“. Pradinis adresas tampa 0x0000 ir BYOC-I grandinė paruošiama vykdyti. Dabar nustatykite „Run“įvestį į „1“ir programa bus vykdoma. (Pastaba: norint paleisti „Logisim“laikrodį, vieną kartą reikia bakstelėti „Control-K“. Tai funkcija, leidžianti sustabdyti „Logisim“laikrodį ir pereiti prie programos, kelis kartus palietus „Control-T“. Pabandykite kada nors!)

„Logisim“laikrodis yra nustatytas įvairiems dažniams. Atsisiunčiant jis yra 8 Hz (8 ciklai per sekundę). Kaip sukurtas kompiuteris BYOC-I, kiekvienai instrukcijai atlikti reikia keturių laikrodžio ciklų. Taigi, norėdami apskaičiuoti BYOC-I greitį, padalinkite laikrodžio dažnį iš 4. Esant 8 Hz, jo greitis yra 2 nurodymai per sekundę. Laikrodį galite pakeisti įrankių juostoje spustelėję „Simuliuoti“ir pasirinkę „Tikėjimo dažnis“. Galimas diapazonas yra nuo 0,25 Hz iki 4100 Hz. Buvo pasirinktas lėtas 8 Hz dažnis, kad galėtumėte stebėti skaičių A registre.

Maksimalus BYOC-I modeliavimo greitis (~ 1000 instrukcijų per sekundę) yra labai lėtas, palyginti su šiuolaikiniais kompiuteriais. Mano knygoje aprašyta BYOC kompiuterio aparatinė versija vykdo daugiau nei 12 milijonų nurodymų per sekundę!

Tikiuosi, kad šis „Instructable“atskleidė mašinų kalbos programavimą ir suteikė jums supratimą apie tai, kaip kompiuteriai veikia paprasčiausiu lygiu. Norėdami sustiprinti savo supratimą, pabandykite koduoti dvi toliau pateiktas programas.

  1. Parašykite programą, kuri prasideda nuo 5 ir skaičiuojama iki 0. (ANS. Count5to0.txt žemiau)
  2. Pradėdami nuo 2, skaičiuokite 3, kol skaičius viršys 7. Galite šiek tiek atlikti minties aritmetiką, patikrinti, ar 8, žinodami, kad ten nusileis, ir tada vėl pradėti. Parašykite savo programą bendresniu būdu, kuris tikrai patikrina, ar skaičius „viršija“konkretų skaičių. Patarimas: ištirkite, kas atsitinka, kai atimant gaunama neigiama vertė, tarkime, pavyzdžiui, 8 - 9 = -1. Tada eksperimentuokite su loginiu IR ir patikrinkite, ar 8 bitų skaičiaus MSB yra „1“. (ANS. ExceedsCount.txt)

Ar galite galvoti apie kitas sudėtingas BYOC-I kompiuterio problemas? Atsižvelgiant į jo apribojimus, ką dar galima padaryti? Pasidalinkite savo patirtimi su manimi adresu [email protected]. Jei jus domina mikroprocesorių kodavimas, apsilankykite mano svetainėje www.whippleway.com. Ten aš nešioju mašinų kodavimą į šiuolaikinius procesorius, tokius kaip „ATMEL Mega“serija, naudojama „Arduinos“.

Rekomenduojamas: