Мазмұны:

Компьютерді машиналық тілде кодтау және тексеру: 6 қадам
Компьютерді машиналық тілде кодтау және тексеру: 6 қадам

Бейне: Компьютерді машиналық тілде кодтау және тексеру: 6 қадам

Бейне: Компьютерді машиналық тілде кодтау және тексеру: 6 қадам
Бейне: Жігітім дұрыстап тықпаса не істеу керек? 2024, Қараша
Anonim
Image
Image

Бұл нұсқаулықта мен сізге компьютерлік бағдарламаны машина тілінде қалай кодтауды және тестілеуді көрсетемін. Машина тілі - компьютерлердің ана тілі. Ол 1 мен 0 сандарынан тұратындықтан, оны адамдар оңай түсінбейді. Бұл мәселені шешу үшін біз алдымен бағдарламаларды C ++ немесе Java сияқты жоғары деңгейдегі тілде кодтаймыз, содан кейін оларды компьютерлер түсінетін 1 -ші және 0 -ші сандарға аудару үшін арнайы компьютерлік бағдарламаларды қолданамыз. Жоғары деңгейлі тілде кодтауды үйрену-бұл сөзсіз, бірақ машина тіліне қысқаша кіріспе компьютердің қалай жұмыс істейтіні туралы құнды түсінік береді және бұл өте маңызды технологияны бағалауды арттырады.

Машина тілінің бағдарламасын кодтау және тестілеу үшін бізге машина тілі оңай түсінікті компьютерге қол жеткізу қажет. Дербес компьютерлер тіпті қарастыруға тым күрделі. Шешім - дербес компьютерде жұмыс істейтін логикалық тренажер Logisim. Logisim көмегімен біз өз қажеттіліктерімізге сәйкес келетін компьютерді модельдей аламыз. Жоғарыдағы бейне сізге Logisim көмегімен не істеуге болатынын түсінуге мүмкіндік береді.

Компьютер дизайны үшін мен Kindle электронды кітабымның біреуін өз компьютерімді құрдым - Scratch -тен бейімдедім. Мен сол жерде сипатталған BYOC компьютерінен бастадым және оны осы нұсқаулықта қолданылатын әр түрлі негізгі BYOC-I (I Instructable үшін) қысқарттым.

BYOC-I машиналық тілі қарапайым және түсінуге оңай. Сізге компьютер немесе бағдарламалау туралы арнайы білім қажет емес. Барлығы - ізденімпаздық пен білімге деген құштарлық

Қосымша оқу

Неліктен біз механикалық құрылғы болмаса да, компьютерді сипаттау үшін «машинаны» қолданамыз деп ойлайтын шығарсыз. Оның себебі тарихи; алғашқы есептеу құрылғылары тісті дөңгелектер мен дөңгелектерден тұратын механикалық болды. Аллан Шерманның «Бұл барлық тісті дөңгелектер болды …» лирикасы бір-екі ғасырға ғана созылды. Ерте есептеу туралы толығырақ мына жерден оқыңыз.

1 -қадам: бөлшектер тізімі

Машина тілдерінің иерархиясы мен кодтары
Машина тілдерінің иерархиясы мен кодтары

Бөлшектер тізімі қысқа. Тек осы екі элемент қажет, екеуін де тегін жүктеуге болады:

  1. «Logisim-win-2.7.1.exe»-Logisim-танымал және қолдануға оңай логикалық тренажер. Logisim орындалатын файлын осы жерден жүктеп алыңыз, содан кейін жұмыс үстеліңіз сияқты ыңғайлы жерде қысқа жол жасаңыз. Оны іске қосу үшін Logisim белгішесін екі рет нұқыңыз. Ескерту: Logisim мұнда орналасқан Java Runtime пакетін пайдаланады. Сізден жүктеу сұралуы мүмкін.
  2. BYOC-I-Full.cir »-Төмендегі Logisim схемалық файлын жүктеңіз.

Logisim іске қосыңыз, содан кейін «Файлды ашу» түймесін басып, BYOC-I-Full.cir файлын жүктеңіз. Жоғарыдағы суретте Logisim жұмыс ортасы көрсетілген. BYOC-I қосалқы схемамен ұсынылған. Сырттай қосылады-Reset and Run және BYOC-I регистрлері мен бағдарлама жадысының он алтылық дисплейлері.

BYOC-I бағдарламалық жады А регистрінде 1-ден 5-ке дейін есептелетін қарапайым бағдарламамен алдын ала жүктеледі. Бағдарламаны орындау (іске қосу) үшін мына қадамдарды орындаңыз.

1 -қадам - Poke құралын басыңыз. Курсор «саусаққа» ауысуы керек. 2 -қадам - Reset кірісін екі рет басыңыз, бір рет оны «1» -ге өзгертіңіз, содан кейін оны «0» -ге өзгертіңіз. Бұл BYOC -I бағдарламасын 0 адресі бойынша іске қосуды қалпына келтіреді. 3 -қадам - «1» -ге өзгерту үшін Run кірісін бір рет басыңыз. Регистр 1 -ден 5 -ке дейін өзгеретін санды көрсетуі керек, содан кейін қайталанады. 4 -қадам - Егер бағдарлама орындалмаса, control -K пернесін басыңыз және ол басталуы керек.

Егер сіз Logisim мүмкіндіктерін зерттегіңіз келсе, Мәзір жолағындағы Анықтама сілтемесін басыңыз. Ол жерден сіз Logisim «Оқулық», «Пайдаланушы нұсқаулығы» және «Кітапхана анықтамасын» зерттей аласыз. Бұл жерде тамаша бейне кіріспе бар.

2 -қадам: Машина тілінің иерархиясы мен кодтары

Машина тілдерінің иерархиясы мен кодтары
Машина тілдерінің иерархиясы мен кодтары

BYOC-I компьютері машиналық тілде жазылған бағдарламалар негізінде тапсырмаларды орындайды. BYOC-I бағдарламалары, өз кезегінде, анықталған реттілікпен орындалатын нұсқаулардан тұрады. Әрбір нұсқаулық BYOC-I әр түрлі операциялық компоненттерін білдіретін бекітілген ұзындық кодтарынан жасалған. Ақырында, бұл кодтар BYOC-I іс жүзінде орындайтын машина тілін құрайтын 1 және 0 сандарынан тұрады.

Түсіндіру үшін біз кодтардан бастаймыз және бағдарлама деңгейіне дейін жұмыс жасаймыз. Содан кейін біз қарапайым бағдарламаны кодтаймыз, оны BYOC-I жадына жүктейміз және оны орындаймыз.

Кодтар қысқаша екілік (1 және 0) цифрлардан немесе биттерден тұрады. Мысалы, төмендегі кестеде ені 4 бит код үшін барлық мүмкін болатын кодтар (барлығы 16) көрсетілген. Код он алтылық (16 базалық) және ондық эквивалентте көрсетілген. Он алтылық екілік мәндерге сілтеме жасау үшін қолданылады, себебі ол екілікке қарағанда ықшам және ондық жүйеге қарағанда екілік санау жүйесінен түрлендіру оңай. «0x» префиксі келесі санның он алтылық немесе қысқаша «он алтылық» екенін білуге мүмкіндік береді.

Екілік - Он алтылық - Ондық 0000 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

Код ені қанша элементті ұсынуға болатынын анықтайды. Жоғарыда көрсетілгендей, биттік 4 биттік код 16 элементті (0-ден 15-ке дейін) көрсете алады; яғни 2 рет 2 рет 4 рет немесе 2 -ден 4 -ке дейінгі күш 16 -ға тең. Жалпы алғанда, ұсынылатын элементтердің саны 2 -ші деңгейге көтеріледі. Мұнда n-биттік код мүмкіндіктерінің қысқаша тізімі берілген.

n - Элементтер саны1 22 43 84 165 326 647 1288 256

BYOC-I компьютерлік кодының ені кодпен ұсынылатын элементтердің санын орналастыру үшін таңдалады. Мысалы, нұсқаулықтың төрт түрі бар, сондықтан 2-биттік кең код қолайлы. Мұнда әрқайсысына қысқаша түсініктеме берілген BYOC-I кодтары.

Нұсқау түрі коды (tt) Төрт нұсқаулық түрі бар: (1) MVI - 8 -разрядты тұрақты мәнді жад регистріне жылжытыңыз. Жад регистрі - бұл есептеу үшін қолданылатын деректерді сақтайтын құрылғы, (2) MOV - деректерді бір регистрден екіншісіне ауыстыру, (3) RRC - регистрге тіркеу есебін орындау және (4) JMP - секіру келесі нұсқаулықты жалғастырудың орнына басқа нұсқаулыққа. Қабылданған BYOC-I нұсқаулық кодтары келесідей:

00 MVI01 MOV10 RRC11 JMP

Тіркеу коды (dd және ss) BYOC-I-де 0-ден 255-ке дейінгі мәндерді сақтауға қабілетті 8 биттік төрт регистр бар. Төрт регистрді белгілеу үшін 2-разрядты код жеткілікті:

00 F регистр01 E регистр10 D регистр11 A регистр

Есептеу коды (ccc) BYOC-I төрт арифметикалық/логикалық әрекеттерді қолдайды. Болашақта сегіз есептеуге дейін кеңейту үшін 3 биттік код қолданылады:

000 ADD, тағайындалған регистрлерге екі 8 биттік мәнді қосыңыз және нәтижені 001 SUB регистрлерінің бірінде сақтаңыз, тағайындалған регистрлерде екі 8 биттік мәнді шегеріңіз және нәтижені 010-011 регистрлерінің бірінде сақтаңыз Болашақта пайдалану үшін сақталған100 ЖӘНЕ логикалық ЖӘНЕ екі 8-разрядты тағайындалған регистрлерде сақтаңыз және нәтижені регистрлердің бірінде сақтаңыз101 НЕМЕСЕ логикалық НЕМЕСЕ екі 8-биттік мәндерді белгіленген регистрлерде сақтаңыз және нәтижені 110-дан 111-ге дейінгі регистрлердің бірінде сақтаңыз, болашақта пайдалану үшін сақталған

Секіру коды (j) Секірудің шартсыз екенін (j = 1) немесе нөлдік емес есептеу нәтижесімен (j = 0) көрсететін 1 биттік код.

Деректер/мекен-жай коды (v… v)/(a… a) 8-биттік деректер 00000000-ден 11111111-ге дейінгі мәндерді немесе 0-ден 255-ке дейінгі ондықтарды білдіретін белгілі бір нұсқауларға енгізілуі мүмкін. Бұл деректер BYOC-I-дің 8-биттік регистрлерінде сақтау үшін ені 8 биттік. Ондық арифметикада біз жетекші нөлдерді көрсетпейміз. Компьютерлік арифметикамен біз жетекші нөлдерді көрсетеміз, бірақ олар мәнге әсер етпейді. 00000101 сандық түрде бірдей 101 немесе 5 ондық.

Ұсынылған әдебиеттер

Екілік белгі - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -

Қосымша оқу

Процесті басқару үшін кодтарды қолдану идеясы ұзақ уақытқа созылады. Бір қызықты мысал - бұл Jacquard Loom. Автоматтандырылған тоқыма станогы ағаш карточкалар тізбегімен басқарылды, онда әр түрлі түсті жіптердің кодтарын білдіретін тесіктер бұрғыланды. Мен алғаш рет Шотландияда көрдім, онда ол түрлі -түсті тартандар жасауға арналған. Jacquard Looms туралы толығырақ мына жерден оқыңыз.

3-қадам: BYOC-I нұсқауларының анатомиясы

BYOC-I нұсқауларының анатомиясы
BYOC-I нұсқауларының анатомиясы

BYOC-I кодтарын ескере отырып, біз келесі деңгейге, нұсқауларға көтерілеміз. BYOC-I бойынша нұсқаулық құру үшін біз кодтарды нұсқаулықта белгіленген тәртіпте және белгілі бір орындарда бірге орналастырамыз. Барлық кодтар барлық нұсқаулықтарда көрсетілмейді, бірақ олар болған кезде олар белгілі бір орынды алады.

MVI нұсқаулық түрі ең көп бит талап етеді, барлығы 12. Ұзындығы 12 биттік нұсқаулық сөзді жасай отырып, біз барлық нұсқауларды орындаймыз. Пайдаланылмаған («бәрібір» деп аталады) биттерге 0 мәні беріледі. Міне, BYOC-I нұсқаулықтар жинағы.

  1. Жылдам жылжыту (MVI) - 00 dd vvvvvvvvФункция: 8 -разрядты деректер мәнін V = vvvvvvvv тағайындау регистріне жылжыту dd. Орындағаннан кейін dd register vvvvvvvv мәніне ие болады. Қысқартылуы: MVI R, V, мұнда R - A, D, E немесе F. Мысал: 00 10 00000101 - MVI D, 5 - 5 мәнін D регистріне жылжытыңыз.
  2. Тіркеуді тіркеуге жылжыту (MOV) - 01 dd ss 000000Функция: деректерді бастапқы регистрден ss анықтамалық регистрге ауыстыру dd. Орындағаннан кейін екі регистр де бастапқы регистрмен бірдей мәнге ие болады. Қысқарған сөз: MOV Rd, Rs, мұнда Rd - тағайындалған регистр A, D, E, немесе F және Rs - A, D, E немесе F бастапқы регистрі Мысал: 01 11 01 000000 - MOV A, E - Мәнді жылжытыңыз. E регистрінде А тіркеу үшін.
  3. Есептеуді тіркеу үшін тіркелу (RRC) - 10 кк ss ccc 000 Функция: ss регистрі ss және тағайындалған регистр dd көмегімен тағайындалған есептік жазбаны орындаңыз, содан кейін нәтижені тағайындалған тізімде сақтаңыз. Қысқартулар: ADD Rd, Rs (ccc = 000 Rd + Rs сақталған Rd); SUB Rd, Rs (ccc = 001 Rd - Rd сақталған Rs); AND Rd, Rs (ccc = 100 Rd AND Rs Rd -де сақталады); НЕМЕСЕ Rd, Rs (ccc = 101 Rd OR Rs Rd -де сақталады). Мысал: 10 00 11 001 000 - SUB F, A - F регистріндегі нәтижемен F регистрінен A регистріндегі мәнді алып тастаңыз.
  4. Әр түрлі нұсқауларға өту (JMP) - 11 j 0 aaaaaaaaФункция: Орындауды aaaa aaaa (a) мекенжайында орналасқан басқа нұсқаулыққа өзгертіңіз (j = 1) -11 1 0 aaaaaaaa Қысқарған сөз: JMP L, мұнда L - аааа аааа Мысал: 11 1 0 00001000 - JMP 8 - Орындауды 8 мекенжайына өзгерту 0 00000100 JNZ 4 Егер соңғы есептеу нөлдік емес мәнді берсе, орындалуды 4 мекенжайға өзгертіңіз.

Нұсқаудың бит биттері 11 -ден 0 -ге дейін солға (ең маңызды бит MSB) оңға қарай (ең аз бит LSB) нөмірленеді. Кодтардың бекітілген тәртібі мен орналасуы келесідей:

Биттер-Код11-10 Нұсқау түрі9-8 Бару регистрі7-6 Бастапқы регистр5-3 Есептеу: 000-қосу; 001 - азайту; 100 - логикалық ЖӘНЕ; 101 - логикалық OR7-0 v… v және a… a тұрақты мәні (0 -ден 255 -ке дейін)

Нұсқаулықтар жиынтығы жоғарыдағы суретте жинақталған. Әр нұсқаулықтағы кодтардың құрылымдық және реттелген түріне назар аударыңыз. Нәтиже BYOC-I үшін қарапайым дизайн болып табылады және бұл нұсқауларды адамдарға түсінуді жеңілдетеді.

4 -қадам: компьютерлік нұсқаулықты кодтау

Компьютерлік нұсқаулықты кодтау
Компьютерлік нұсқаулықты кодтау

Бағдарлама деңгейіне өтпес бұрын, жоғарыдағы BYOC-I нұсқаулықтар жиынтығын қолдана отырып, кейбір нұсқаулықтарды құрастырайық.

1. 1 мәнін А тіркеу үшін жылжытыңыз. BYOC-I регистрлері 0-ден 255-ке дейінгі мәндерді сақтай алады. Бұл жағдайда А регистрі команданы орындағаннан кейін 1 (00000001 екілік) мәніне ие болады.

Қысқартылуы: MVI A, 1Қажет кодтар: MVI түрі - 00; Бару регистрі А - 11; Мән - 00000001 Нұсқау сөзі: 00 11 00000001

2. А регистрінің мазмұнын D тіркеу үшін жылжытыңыз. Орындағаннан кейін екі регистрдің де мәні бастапқыда А регистрінде болады.

Қысқарған сөзі: MOV D, A (Есте сақтаңыз, баратын жер тізімде бірінші, көзі екінші орында) Қажетті кодтар: MOV түрі - 01; D - 10 тағайындау регистрі; Бастапқы регистр А - 11Нұсқау сөзі: 01 10 11 000000

3. D регистрінің мазмұнын А тіркеу үшін қосыңыз және А регистрінде сақтаңыз. Орындағаннан кейін А регистрінің мәні А регистрі мен D регистрінің бастапқы мәнінің қосындысы болады.

Қысқартылуы: ADD A, D (Нәтиже тағайындалған регистрде сақталады) Қажетті кодтар: RRC түрі - 10; Бару регистрі А - 11; Дереккөздер тізілімі D - 10; Есептеу Қосу - 000 Нұсқау Word: 10 11 10 000 000 (ccc бірінші 000 - қосу)

4. Мекенжайға нөл емес секіріңіз 3. Егер соңғы есептің нәтижесі нөлге тең болмаса, орындалу берілген мекен -жай бойынша нұсқаулыққа ауысады. Егер нөл болса, орындау келесі нұсқаулықта жалғасады.

Қысқартылуы: JNZ 3Коддер қажет: JMP түрі - 11; Секіру түрі - 0; Мекен -жай - 00000003 Нұсқау сөзі: 11 0 0 00000003 (Секіру түрі бірінші 0)

5. 0 мекенжайына сөзсіз өтіңіз. Орындағаннан кейін орындау берілген мекенжай бойынша нұсқаулыққа өзгереді.

Қысқартылуы: JMP 0Код қажет: JMP түрі - 11; Секіру түрі - 1; Мекен -жайы - 00000000Нұсқау Word; 11 1 0 00000000

Машинаны кодтау біршама жалықтыратын болса да, бұл қиын емес екенін көруге болады. Егер сіз шын мәнінде машиналық кодтаумен айналысатын болсаңыз, аббревиатурадан (құрастыру коды деп аталады) машиналық кодқа аудару үшін ассемблер деп аталатын компьютерлік бағдарламаны қолданар едіңіз.

5 -қадам: компьютерлік бағдарламаның анатомиясы

Компьютерлік бағдарламаның анатомиясы
Компьютерлік бағдарламаның анатомиясы

Компьютерлік бағдарлама - бұл тізімнің соңына дейін жалғасатын тізімнің басында компьютер орындайтын нұсқаулардың тізімі. JNZ және JMP сияқты нұсқаулар келесі нұсқаулықтың орындалуын өзгерте алады. Тізімдегі әрбір нұсқаулық 0-ден басталатын компьютер жадында бір адресті алады. BYOC-I жады 256 нұсқаулықтардың тізімін сақтай алады, бұл біздің мақсатымызға жеткілікті.

Компьютерлік бағдарламалар берілген тапсырманы орындауға арналған. Біздің бағдарлама үшін біз 1-ден 5-ке дейінгі қарапайым есепті таңдаймыз. Әлбетте, «санау» нұсқаулығы жоқ, сондықтан бірінші қадам-бұл тапсырманы BYOC-I шешетін қадамдарға бөлу. нұсқаулықтар жиынтығы шектеулі.

1 -қадам Тіркелу үшін 1 -қадам AStep 2 -ті тіркеу үшін A -қадамды жылжыту 3 -ші қадамды тіркеу үшін D регистрін қосу және нәтижені регистрде сақтау AStep 4 Е -қадамды тіркеу үшін 5 -ті жылжыту Е -регистрден А регистрін алып тастау және нәтижені EStep 6 регистрінде сақтау азайту нәтижесі нөлге тең болмады, 4 -қадамға оралыңыз және санауды жалғастырыңыз 7 -қадам Егер азайту нәтижесі нөлге тең болса, кері қайтып, қайтадан бастаңыз

Келесі қадам-бұл қадамдарды BYOC-I нұсқауларына аудару. BYOC-I бағдарламалары 0 адресінен және нөмірінен басталады. Барлық нұсқаулар болғаннан кейін, мақсатты адрестер соңғы рет қосылады.

Мекен -жайы: Нұсқаулық - Қысқартылған сөз; Сипаттама0: 00 11 00000001 - MVI A, 1; A1 тіркеу үшін 1 жылжытыңыз: 01 10 11 000000 - MOV D, A; D регистрін тіркеу үшін A регистрін жылжытыңыз: 10 11 10 000 000 - ADD A, D; А тіркеу үшін D регистрін қосыңыз және нәтижені A3 регистрінде сақтаңыз: 00 01 00 00000101 - MVI E, 5; 5 регистрін жылжытыңыз E4: 10 01 11 001 000 - SUB E, A; Е регистрінен А регистрін шығарыңыз және қойманы сақтаңыз. нәтиже E5 регистріндегі нәтиже: 11 0 0 00000010 - JNZ 2; Егер азайту нәтижесі нөлге тең болмаса, 3 мекенжайға оралыңыз және санауды жалғастырыңыз

Бағдарламаны жадқа алмас бұрын, екілік командалық кодты Logisim Hex редакторында пайдалану үшін он алтылыққа өзгерту керек. Алдымен нұсқаулықты әрқайсысы 4 бит болатын үш топқа бөліңіз. Содан кейін 2 -қадамдағы кестені пайдаланып топтарды он алтылық жүйеге аударыңыз. Тек соңғы он алтылық ондық цифрлар қолданылады (төменде қалың шрифтпен).

Мекенжай - Бинарлық нұсқаулық - Нұсқаудың екілік бөлінуі - Нұсқау (Он алтылық) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 100000000000000000000000000000000000000000 111000000010 1110 0000 0000 - 0x0E00

Бағдарламаны тестілеу үшін BYOC-I жадына берудің уақыты келді.

6 -қадам: Бағдарламаны жадқа көшіру және тестілеу

Бағдарламаны жадқа көшіру және тестілеу
Бағдарламаны жадқа көшіру және тестілеу
Бағдарламаны жадқа көшіру және тестілеу
Бағдарламаны жадқа көшіру және тестілеу

Logisim «негізгі» схемасына қарап, көрсетілген BYOC-I блогы Explorer панелінде «BYOC-I» деп белгіленген нақты компьютерлік схеманың символы болып табылады. Бағдарламаны BYOC-I жадына енгізу үшін:

  1. BYOC-I блогын тінтуірдің оң жақ түймешігімен нұқыңыз («қосалқы схема» деп аталады) және «тышқанның үстіне апарыңыз», «BYOC-I қарау» таңдаңыз.
  2. Жұмыс аймағында BYOC-I схемасы пайда болады. «Бағдарлама жады» белгісін тінтуірдің оң жақ түймесімен нұқыңыз және «Мазмұнды өңдеу..» таңдаңыз.
  3. Logisim он алтылық редакторын қолдана отырып, жоғарыда көрсетілгендей он алтылық кодты енгізіңіз (тек қалың).

Сіз енді бағдарламаны орындауға дайынсыз. Explorer тақтасындағы «BYOC-I» түймесін екі рет басу арқылы негізгі схемаға оралыңыз. Іске қосу және қалпына келтіру кірістері «0» болуы керек. Poke Tool көмегімен алдымен Reset параметрін «1» -ге, содан кейін «0» -ге қайтарыңыз. Бұл 0x0000 бастапқы адресін жасайды және BYOC-I схемасын орындауға дайындайды. Енді Run енгізуін «1» етіп қойыңыз, сонда бағдарлама орындалады. (Ескерту: Logisim сағатын іске қосу үшін Control-K түймесін бір рет басу қажет. Бұл-Logisim сағатын тоқтатуға және Control-T түймесін қайта-қайта басу арқылы бағдарламаны шолуға мүмкіндік беретін мүмкіндік. Бірде көріңіз!)

Logisim сағаты жиіліктердің кең диапазоны үшін реттеледі. Жүктелген кезде ол 8 Гц (секундына 8 цикл). BYOC-I компьютерінің құрастыру әдісі бойынша әр нұсқаулық төрт сағаттық циклды алады. Сонымен, BYOC-I жылдамдығын есептеу үшін сағат жиілігін 4-ке бөліңіз. 8 Гц-те оның жылдамдығы секундына 2 нұсқаулық. Құралдар тақтасындағы «Модельдеу» түймесін басып, «Кен жиілігін» таңдау арқылы сағатты өзгертуге болады. Мүмкін диапазон 0,25 Гц - 4100 Гц. Баяу жылдамдық 8 Гц таңдалды, осылайша сіз А регистрінде санауды көре аласыз.

BYOC-I модельдеудің максималды жылдамдығы (секундына ~ 1000 нұсқаулық) қазіргі компьютерлермен салыстырғанда өте баяу. Менің кітабымда сипатталған BYOC компьютерінің аппараттық нұсқасы секундына 12 миллионнан астам нұсқауларды орындайды!

Бұл нұсқаулықта машиналық тілді бағдарламалау жүйесі жойылды деп үміттенемін және сізге компьютерлердің негізгі деңгейде қалай жұмыс істейтіні туралы түсінік береді. Түсінікті болу үшін төмендегі екі бағдарламаны кодтауға тырысыңыз.

  1. 5 -тен басталып, 0 -ге дейін есептелетін бағдарлама жазыңыз. (ANS. Count5to0.txt төменде)
  2. 2 -ден бастап, саны 7 -ден асқанша 3 -ке санаңыз. Сіз кішкене ментальды арифметиканы жасай аласыз, ол жерге түсетінін біліп 8 -ді тексеріп, қайта бастаңыз. Бағдарламаңызды белгілі бір саннан «асып кететінін» тексеретін жалпы түрде жазыңыз. Нұсқау: азайту теріс мән бергенде не болатынын зерттеңіз, мысалы 8 - 9 = -1 деп айтыңыз. Содан кейін 8 разрядты сандағы МСБ «1» екенін тексеру үшін логикалық ЖӘНЕ эксперимент жасаңыз. (ANS. ExceedCount.txt)

Сіз BYOC-I компьютерінің басқа да күрделі мәселелерін ойлай аласыз ба? Оның шектеулерін ескере отырып, ол тағы не істей алады? Менімен [email protected] электрондық поштасы бойынша өз тәжірибеңізбен бөлісіңіз. Егер сіз микропроцессорларды кодтауға қызығушылық танытсаңыз, менің www.whippleway.com веб -сайтымды қараңыз. Онда мен машиналық кодтауды Arduinos -та қолданылатын ATMEL Mega сериялары сияқты заманауи процессорларға жеткіземін.

Ұсынылған: