
(ОПД) Трассировка микрокоманд / Рубеж 3 (полный разбор) transcript
zerumi#4666 · @zerumi-ye6fj
Words
7,945
Runtime
1:33:47
Speaking pace
85wpm
Reading time
33min
85 words per minute, below the 160 25th percentile of 349 measured videos. That distribution comes from the 349-video hook study.
Opening (first 30 seconds)
Привет Как ваше настроение На завтрашнюю перепись настроение такое что мы хотим Получить мини Моники вы хотите получить мнемоники Да и без мнемоник не страшно такса вам демонстрацию так вот наверное вот такую нам видно доску Так ну базовый совет который Я прям
43 words, the words spoken in the first 30 seconds at 85 words per minute.
Sentence shape
| Measure | This transcript |
|---|---|
| Sentences | 1 |
| Average words per sentence | 7945.0 |
| Longest sentence | 7,945 words |
| Questions asked | 0 |
| Sentences containing a number | 1 |
Most used terms
- c47
- control6
- ff6
- control unit5
- ip5
- unit5
- 0c4
- ps4
- 4f3
- 7f3
- c4 c43
- l23
What this transcript is
Every word below is the caption track YouTube publishes for this video, pulled from the video itself and reproduced unchanged. It is not Prepublish's writing, not a summary, and not a re-transcription: it is the video's own published captions. Russian captions, generated automatically by YouTube, in the video’s original language. Source: the video on YouTube. A channel that would rather this page did not exist can ask for its removal through the contact page, and it is removed.
Transcript
Привет Как ваше настроение На завтрашнюю перепись настроение такое что мы хотим Получить мини Моники вы хотите получить мнемоники Да и без мнемоник не страшно такса вам демонстрацию так вот наверное вот такую нам видно доску Так ну базовый совет который Я прям дам перед рубежкой распечатайте бланки никто не забыл же Готова уже готова вот он Примерно вот так будет выглядеть Ну собственно говоря по поводу рубежки что от вас вообще потребуется если вот внимательно почитать задание то она выглядит примерно вот так Запишите последовательность микро команд для выполнения заданной команды до цикла прерывания То есть как только вы там дошли микро коде до того что у вас там идти год потом увидите то мы на этом останавливаемся больше ничего не пишем Заполните таблицу значениями регистров После выполнения каждой микрокоманды если происходит обращение к памяти укажите адрес памяти значение и операцию содержимое памяти в 16-тиричной системе счисления по адресу вот так вот перечислено исполняемая команда находится по такому-то адресу Она же продублирована в instruction поинтере Ох поворотка запустить дымку Давай попробуем технический шоколадки Да И вот так попробуем Вот это запущу так дам захват экрана это сейчас рекурсии вы видите нормально так вот Вот так давайте еще раз тогда перечитаем задание Запишите последовательность микро команд для выполнения команды до цикла прерывания вам надо заполнить таблицу вот эту таблицу значениями регистров после каждой микрокоманды и надо если происходит обращение к памяти указать адрес Куда идет обращение значение которое хранится в этой ячейке и Какая операция то есть либо мы содержимое регистра данных записываем в память Либо мы из памяти по адресному регистру читаем регистр данных Одно из двух надо указать что это за операция и дано содержимое памяти Вот она вот так перечислено мойка идлайн как выполнять эту рубежную работу когда я готовился к ней примерно месяц назад первое С чего вам надо начать вот заполнить вот эту табличку она не обязательно для заполнения То есть если вы ее не Заполните ничего с вами не будет но это очень желательно пишем первый адрес так по адресу 4F и спокойно внимательно все переписываем 4 ff50 и так далее переписывайте внимательно Потому что если вы что-то здесь ошибетесь то есть это ваш главный помощник в написании этой работы Если Вы допустите здесь ошибку ваша трассировка будет неправильная 8 9 8 5 D 81 А здесь далеко не все ячейки которые вам понадобятся для трассировки но вы доподлинно еще не знаете какая вам нужна поэтому и надо переписывать внимательно отсюда вам понадобится максимум 1 2 ячейки так 2 Fe 028f8 65 97 и E7 FF E7 F так и переписываем адреса 501 502 503 и так далее Я надеюсь демонстрацию сейчас хорошо видно все хорошо 509 вот здесь вот будьте внимательны 50А они 510 Многие могут ошибиться на этом моменте 5.0e Вот вы переписали всю эту табличку обычно здесь впритык строчек То есть если Ну не знаю как будет на рубежке Но вот во всех тренировочных вариантах и в методе вот вся эта все эти бланки рассчитаны Так что у вас здесь впритык ячеек Не забывайте подписать листок тоже важно и вариант тоже не забываем писать Так ну и мы можем теперь переписывать вот нам дано Начало этой табличке Вот его и начинаем переписывать 5 0 е 6 5 9 7 50 D это пока общее действие то есть что прям в любом случае понадобится делать то есть вне зависимости от того какую таблицу вам дали с метками либо без меток 7f 9 anzvc-001 так и мы сейчас будем разбирать мы разберем два варианта вот этот вариант мы сейчас разберем пробежавшись специальным интерпретатором он с метками получается вот этот Вот мы сейчас разберем вот этот интерпретатор с метками посмотрим как трассировать если вам дадут именно эту таблицу и следующий вариант разберем Когда вам дадут вот эту таблицу если в ней меток не будет собственно говоря так чуть-чуть ускорим компьютер собственно Можем начинать суть интерпретатора базовые заключается в том что у нее у него всегда Первая команда то есть любая любая команда любой исполнение начинается с первой микрокоманды первая микрокоманда имеет вот такую вот такой адрес в таблице и она гласит о том что содержимое счётчика команд мы записываем в буферный регистр и в регистратуре сам Ну собственно говоря смотрим содержимое счётчика команд мы должны переписать в буферный регистр и в регистр адресом внимательно смотрите куда переписываете тоже возможно тоже важно все остальное это микрокоманда больше ничего не делает все остальные содержимое мы перепишем и я думаю даже для того чтобы было более наглядно Я сейчас напишу я буду все ячейки которые меняются другим цветом рисовать так содержимое это буферное регистрировать пока этот момент вам понятен да так 50 я все все переписали все правильно поскольку у нас Ну больше ничего не произойдет вот нас изменились какие-то состояния там регистров и так далее То есть команда которая имеет вот такую структуру что-то делать с регистраторами она еще имеет нолик как самая старшая тетрада у неё такая микрокоманда называется операционной во-первых а во-вторых у нее всегда счетчик микро команд после исполнения увеличится на единицу Ну собственно говоря про нее больше сказать ничего вопросы [музыка] следующая микрокоманда гласит нам о том что содержимое буферного регистра попадает в валу складывается с единицы и записывается в счетчик команд Вот это прибавляется с единицей получается 50 F и содержимое записывается в счётчик команд так проверю запись да запись [музыка] другим цветом Я обещал это записывать 50 F дальше идет обращение к памяти по регистрации и результат всегда будет в регистре данных Что такое идет обращение к памяти Ну мы получается берем регистраторы которые равен 50 и смотрим в нашу ранее заполненную табличку мы не зря заполняли нас интересует вот это значение оно последнее Вот вы можете Вот наблюдать Вот она в задании и впервые нам понадобится заполнить Вот эту вот поле у нас объедет обращение к памяти по адресу 50 и оттуда читается значение которое в этой ячейке а значение там есть оно попадает в регистр данных все остальные регистры значение регистров переписываются так собственно говоря да мы переписали плюс 1 в регистр команд счетчик команд и сделали обращение к памяти и на этом все это микрокоманда больше ничего не делает третья микрокоманда содержимое регистра данных направится в регистр команд а нам не нужно указать что это именно загрузка не сохранение точно да Надо обязательно указать операцию Спасибо места не хватает внимательно взгляните задание возможно оно обновится Но если вот будет указать операцию да Вы обязательно пишите есть это было чтение 50 F загрузка нет загрузка это вот ну можно это можно и лот можно просто букву Ч написать русскую чтобы Прям вообще не было пределевых загадать типа это чтение Вот я думаю Эль точно не врать поэтому Возможно это примут Наверное это понятно То есть нет строгих критериев как надо типа эту операцию обозначать и дальше так как это микрокоманда что-то делала с регистрами мы просто пишем следующую команду Так ну для многих Кто там сдавал лабораторная по базовые ЭВМ для них это конструкция знакома это называется выборка команды дальше более веселые вещи с ними Вы столкнетесь скорее всего на рубежке впервые Ну если конечно не разбирали микрокод до этого издал не сдавали 7 лаба вот дальше идет так называемая управляющая микрокоманда и её отличие от операционной в том что здесь уже не Нолика восьмерка в самом начале стоит метка говорит что если 15 разряд регистра команд единица то мы куда-то там идем Вот это через собачку указан адрес 09 ну давайте взглянем на это поподробнее во-первых сразу гайдлайн который здесь У меня для вас есть если вы видите управляющий микрокоманду значение регистров Просто переписываете они будут никак меняться а вот адрес следующий микро команды уже более интересные вычисляется и здесь нам уже в помощь придет вторая таблица которая собственно говоря Здесь нам дана в Бланке сюда мы перепишем значение регистра команд Вот это Давайте перепишем 110 и дальше все единицы если я ошибся обязательно скажите но вроде я прав так 4 микрокоманда говорит о том что если 15 разряд регистр команд единица то мы идем по адресу 9 15 разряд регистра команд равен единице следующая микро команда значит будет по адресу 9 это всем понятно отлично сюда девятую микрокоманду 9 микрокоманда она находится здесь и она говорит тоже во-первых говорит о том что здесь какая-то проверка на управляющая Это означает что все содержимое регистров не изменились чтобы сэкономить время Я их не буду переписывать если 14 разряд регистр команд 0 то мы идем куда-то Там на адресной C 14 поэтому мы Не переходим куда-то а просто плюс один 0 А если 13 разряд равен нулю то мы опять же идем куда-то 13 разряд Нет он не равен нулю поэтому мы идем собственно говоря дальше 0 Б если 12 разряд равен единице то мы идем куда-то там опять же 12 разряд равен нулю поэтому мы пойдем Не куда-то а на на первую команду вперед на одну команду вперед содержимое регистров все время остается то же самое то есть если вы видите что перед вами там начинается с 8 то вы просто одну строчку таблицы переписываете без изменений кроме последнего значит последней колонки 0c говорит о том что если 11 разряд равен нулю регистратор команд все еще то мы опять же пойдем по какому-то адресу 11 разряд Как мы можем видеть действительно равен нулю поэтому мы нам наконец-то пригодится вот этот адрес который записан он здесь 24 он в самом конце написан и мы собственно говоря пишем адрес 24 содержимое регистр все еще не менялось Пока нет вопросов хорошо микрокоманда 24 Так нам придется чуть-чуть смотать вниз микрокоманда 24 метка гласит что это вообще operant fetch тем не менее это управляющий микрокоманда которая говорит нам что если 15 разряд регистра команд 0 то мы идем на какой-то 26 адрес 15 разряд равен единице поэтому мы идем не на 26 А на 25 плюс один все еще сохраняется и все еще у нас не меняется содержимое регистров 25 вот суть этой рубежке вот вам здесь на самой рубежке надо будет не лениться и все это прописывать то есть И причем внимательно чтобы здесь все эти значения действительно совпадали То есть это прям про управляющий микрокоманды Вот видите ее переписывайте не бойтесь никакие регистры меняться не будут 25 микрокоманда если 14 разряд единица то мы идем на какую-то на какой-то блок 4 адресом 4А 14 разряд действительно равен единице поэтому мы перейдем на 4А как здесь собственно говоря Вот и написано вот четыре содержимое регистров все еще не меняется у нас все ветвления закончились скорее всего правда я не помню 4 она по-моему они все закончились 4А Нет не закончились еще идут управляющий микрокоманды на восьмер вот восьмерка в начале если 13 разряд равен единице то мы идем на 53 Да 13 разряд равен единице мы идем на 53 адрес И как вы можете заметить вот эта команда е7f вот как ну вы скорее всего знаете ответ вот что это за команда аккумулятора у нас у аккумулятора С какой адресацией у неё здесь прям адрес закодирован 7 FF Абсолютно Да прямая абсолютно адресация то есть нам надо сохранить то что сейчас хранится в аккумуляторе в ячейку 7 FF то есть наш конечный итог что где-то вот здесь будет там 7 FF написано с вот этим вот значением аккумулятора с Брайт Но это будет потом пока что 53 микрокоманда она во-первых уже операционная То есть у нас закончились управляющие микро команды поэтому мы возьмем Вот то что вот у нас вот здесь вот было И начнем как-то с этим работать содержимое регистр данных перепишется в регистр адреса ну Давайте возьмем содержимое регистра данных Вот она есть 7 FF и перепишем регистратор только младшая 11 разрядов То бишь сюда пойдет 7 FF [музыка] и на этом все я правильно понимаю что из-за того что нам дали всего одну страничку и этот и там довольно небольшая таблица у нас будет чуть меньше команда чуть меньше программа верно У вас вам дали одностраничный бланк прикол в том что даже самая большая там микро самая большая команда для исполнения А я вам Ну сегодня вот припас еще вариант который мы разберем просто под экодеру максимум Скорее всего будет 20-25 микрокоманд в трассировке это максимум на мой взгляд вообще в этой колонке 32 по-моему Если я правильно посчитал очень большой трассировки не будет поскольку сам интерпретатор там 200 с чем-то микрокоманд но у вас и команд базовая в м очень много поэтому они там очень так плотно упакованы 20 микрокоман в среднем будет так все остальные ячейки переписываем 50 ем 7 f9a 001 поскольку была операционная микрокоманда то мы в любом случае перейдем на одну микрокоманду вперед 54 микрокоманда содержимое аккумулятора перепишется в регистр данных содержимое аккумулятора перепишется в регистр данных все остальное не изменится 001 сразу запишем плюс 1 это была операционная микрокоманда так 550f 7 F 55 микрокоманда Она говорит о том что мы содержимое регистра данных Запишем в память по адресу который у нас в адресной регистрации то есть мы берем адрес который в адресном регистре 7f И говорим что мы сохраняем значение аккумулятора А мы его переписали предварительно вот регистр данных 7 f9a Write по моему больше это когда больше эта команда микрокоманда ничего не делает все остальные значения значит просто переписываются без изменений 56 микрокоманда 56 микрокоманда говорит о том что мы отправляемся на цикл прерывания ну мы ее должны все еще записать поскольку это не начало цикла прерывания доходим до Gold int это это управляющая микрокоманда То есть она начинается с восьмерки все содержимое регистров не изменятся и поскольку это прям безусловный переход Gold int вот прям голод и написано значит безусловно переход просто пишем значит два три команды C4 И как только вы сюда записываете C4 на этом ваша трассировка заканчивается собственно говоря это вся рубежка если вам дали таблицу с метками вопросы сложно не сложно с метками супер пиво с метками супер пиво Согласен у меня тут есть ответ Давайте посмотрим 0203040907 020 24 25 4 а 53 54 55 564 Все мы вроде как все правильно Это трассировали последняя строчка 50f79а 50е 79а001 Все мы как бы Вроде как мы это правильно но тут ничего сложного собственно говоря не было можно тренировал вот у меня варианте попалась команда и мне надо было выставить на знак в получается переполнение [музыка] вообще понять какого выставлять в этой команде Я тоже проверял То есть если у тебя я понял если у тебя был вот такой вот заем и был вот такой то перенос отсутствует то есть у тебя сохранилась отрицательное число То есть у тебя вот здесь вот было там 1000 и вот здесь вот один и Керри флаг был Да наверное сложно допустим Керри флаг был и у нас вот циклический сдвиг вправо произошел таким образом что из переноса Вот это 15 разряд Вот это 14 есть единица И здесь тоже есть единица Вот это означает что у нас сохранилась отрицательное число то есть число как было отрицательным так и стало отрицательным Это означает что перенос отсутствует переполнение отсутствует Но если оно было отрицательным а перенос сделал Его положительным резко переполнение присутствует то же самое если наоборот оно было положительным и сделалось отрицательным тоже перенос переполнение существует я понял спасибо это как со сложением в обратную сторону только вот здесь наоборот заем как-то так теперь более веселая часть мы забываем про вот этот интерпретатор допустим вы пришли на рубежку клименков оказался очень злым и дал вам вот такой интерпретатор мы вспоминаем что нам во время предыдущей рубежки встречались только два типа микрокоманд с нулем в начале и с восьмёркой в начале собственно других и не бывает Давайте разберем что каждый из них означает и я рекомендовал бы начать с операционной микрокоманды которая расшифровывается следующим образом вот это вот тетрада это тетрада потому что вот это 16 год он там за собой скрывает 4 двоичных цифр всего здесь 40 разрядов это базовая теория которую можно было наверное слушать на лекции тем не менее это означает запись в память и работа с устройствами ввода-вывода Вот это две тетради означают блок записи то есть какой Ну каким куда записать ушедшее значение То есть у нас вот базовая в я ее нарисовал вот у нас есть Алум на выходе коммутатор и вот куда-то там идут значения вот эти вот две тетрадки говорят о том куда пойдет это значение причем записываются следующим образом вот если вот расшифровать Вот это а0 будет Вот такая вот восьмиразрядная запись если представить ее пронумеровать 0 1 2 3 4 5 6 7 и наложить это вот на базовую ЭВМ вот если Вы хорошо запомнили как в базовой ВМ регистры располагаются вот это там регистр данных вот этой командный регистр и так далее То вам очень легко будет запомнить что это такое потому что вот то что справа если написать Вот это 8 разрядное представление будет соответствовать тому что справа находится в базовые VM а то что слева соответствует тому что находится слева в базовое VM то есть Вот например вот Это говорит о том что вот это регистр данных Вот это говорит о том что вот это регистр команд и так далее А если разбирать конкретно первые микрокоманду которая у нас гласила о том что мы берем содержимое счётчика команд и запишем адресный регистр и в буферный регистр То есть у нас аж 2 записи здесь происходит в разные регистры вот собственно вот эти две записи вот если вот это там аккумулятор вот это как раз таки тот самый буферный регистр Вот это состояние программы А вот это тот самый адресный регистр внимательнее Будьте вот этим Вот регистром потому что в клавишный регистр нельзя записывать а из адресного регистра нельзя читать это важный момент надеюсь вам это понятно Надеюсь вы это понимать Надеюсь вы это поняли Если есть вопросы Спросите обязательно Ну раз Вопросов нет меня слышно Надеюсь да мы продолжим то есть и вкладыш на регистре нельзя записывать и завод из адресного нельзя читать поэтому когда мы заходим в запись мы обязательно Запишем в адресной регистратор блок блок чтения находится здесь мы к нему еще Вернемся дальше идет три тетрадей сложное самое сложное в операционных микро командах это коммутатор в коммутаторе единственное что интересно что прям Маст хэв запомнить это вот эту четвертую тетраду которая гласит вот так L to L X это вот как гласит вот это вот то есть если это визуализировать вот он наш коммутатор у него значение которое приходится Аллу может быть записано в прямом порядке может быть записано в инвертированном порядке и Если брать то мы получается вот это вот l2l L to han hatter и хату ха вот эти два значения поменять местами получите коротко о том как располагаются разряды вот в этой микрокоманде дальше идет вот это вот который я уже сильно исчерпал но она здесь все равно еще есть это блок правил Аллу блок правил алу тоже четырех разрядные и гласит следующее так вот это это инвертировать правый разрыв правый вход алу вот это инвертировать левый вход Аллу Вот это гласит правилам плюс 1 А вот это правило гласит ссора если 0 сумма если единица логическое умножение с этим нет вопросов Да мы наркоманы хорошая отсылка Ну и последнее это блок чтения он Аналогично абсолютно блоку записи и если его Вот расшифровывать то это будет 00100 Скажите сами Нет не из-за спешника спшник Да и зайпе счетчика команд Ну а это собственно говоря Аналогично отвечает AC Ну и так далее это операционные микрокоманды были здесь Вопросов нет мы это сейчас будем разбирать все равно я по времени укладываюсь так Да я по времени укладываюсь и быстренько пробежимся по управляющим микрокоманам здесь все намного проще во-первых 4 тетрадок которые мы уже разобрали присутствует и здесь блок чтения первые две тетради правило Аллу и немного правил коммутатора которые я вот вам рассказал вот здесь то есть вот эти правила коммутатора с прямым обратным порядком байтов он вам пригодится потому что вы будете рассматривать именно управляющий микрокоманды вот эти две тетрады в операционных которые тоже соответствуют коммутатору но не использующийся Здесь вы откроете Посмотрите методы они довольно не интуитивно учатся это единственное что здесь Наверное не интуитивно Поэтому если вам дают на трассировку какой-нибудь просто там коммутатор не используется то если Вы прям переживаете лучше в это подучить отдельно управляющий микрокоманды намного проще здесь мы начинаем с восьмёрки а потом нас идет Beats которым мы сравниваем то есть мы хотим увидеть в том что мы читаем вот мы допустим у нас какое-то значение поступило на алу посчиталось на коммутатор и отправилась в устройство управления вот то что отправилось в устройство управления мы на него накладываем какую-то битовую маску И говорим что она наверное должно быть равно единице и если оно равно единице то мы прыгнем по адресу который вот прямо после этой единицы располагается то есть мы читаем какой-то регистр в данном случае это регистр команд потому что здесь 02 это 000 читаем регистр команд правила коммутатора гласят о том что мы возьмем старшее слово вот это вот пришедшее направим его в младшая и больше ничего не сделаем направим младшее слово всегда направляться будет младшее слово в устройство управления в устройстве управления на него будет наложено битовая Маска битовая Маска вот такая и если вот этот получается бит который мы сравнили равен единице То есть у нас там вот здесь может быть нам пришло например с коммутатора Вот это все нули пришли мы на него наложили битовую маску получили что это 0 но это если что логическое и сравниваем битек если он равен вот этот битек был бы у нас единица мы бы прыгнули по адресу 09 но так как у нас там этот битек равен нулю значит Мы перешли там по адресу 05 это вот такая интуитивный способ разобрать управляющего микрокоманду если какие-то непонятки образовались Скажите обязательно я это объясню еще раз С этими знаниями двигаемся разбирать последние на сегодня вариант не забываем подписать работу и переписать память базовые в так 570 b232 и 194b так и перепишем первую строчку получается которая нам дана первая микрокоманда Если Вы прям ну решили хардкодом выучить этот микрокод то вы знаете что это содержимое счётчика команды буферной регистры в адресной регистр Но это сработает может быть первыми тремя микрокомандами Но дальше Вы не запомните что эти Циферки аж означают без непосредственно расшифровки микро кода Ну и Давайте быстренько проанализируем этот микро код собственно говоря [музыка] 00a009004 мы сразу видим что никаких операций чтения записи нет запись будет идти в какие регистры получается бр и ВБР и AR никакие более не идет запись правило коммутатора здесь 0.009 девятка это 101 и это если что если вы вспомните это хату ха и Эль ту л то есть сохраняется прямой порядок Вот это хатуэль духа 0 это получается ссора говорит о том что это просто сумма никаких плюс один никаких инверсии нет правило говорят о том что это простое сложение и мы читаем из какого регистра из счётчика команд и таким образом восстанавливаем лимонику IP в сложно вроде Понятно теперь это интерпретируем сюда скорее всего вам можно будет с обратной стороны все эти мнемоники декодировать Так содержимое счетчика команд в буферные регистр и в адресной регистр так 579 до исходная команда по адресу 579 все остальные Ну переписывать Я думаю не будем так остальные регистры остаются все те же самые я буду записывать только новые только новые вот таким цветом вторая микрокоманда 014009 420 тоже Во первых у нас вот Это говорит о том что есть какая-то операция с памятью и вот эти две получается два бита говорят о том что вот это будет чтение Вот это будет запись вот это это вот вывод будет здесь так будет кооперация чтения из памяти то есть мы возьмем содержимое адресного регистра обратимся к памяти по данному значению и всегда запись будет происходить в регистр данных как думаете почему именно память потому что подключена только к этому регистру дальше здесь идет блок записи мы куда будем записывать получается в это у нас называется счетчик команд записываем счетчик команд правило коммутатора стандартные 009 это вы видите прямой порядок правило Аллу уже какие-то более прикольные они говорят о том что 00 Нет кто-нибудь еще помнит что это правило а ну вот это инверсия правого разряда вот эта инверсия левого Да это плюс 1 А вот это было бы ссора правило Аллу Короче говоря о том что надо прибавить единицу еще дополнительно и читать мы будем из получается это буферный регистр восстанавливаем мнемонику буферный резистор плюс один направляется записываться в instruction Pointer параллельно с этим идет обращение к памяти сразу наверное вопрос предотвращая вот если у вас есть обращение к памяти скорее всего здесь запись и чтение Там какой любое изменение Короче адрес надо регистрировать не будет вам не надо будет гадать Ну типа какой адресный регистр брать здесь скорее всего что-то другое будет происходить Потому что интерпретатор его делали так чтобы не было таких неопределенностей Это я сотру И так сдвигаемся дальше нас была получается содержимое буферного регистра прибавляется единица направляется в счетчик команд это 5-7а остальное не меняется и шло обращение к памяти по адресу 579 а 579 6bfc с операцией чтения третья микрокоманда Но если вы помните это содержимое регистра данных Направить в команд регистр команд но мы сейчас дополнительно это прочтем никаких операций чтения записи нет запись будет идти в 0010 по нулям то есть запись будет идти в регистр команд как раз таки это обычный прямой порядок байт 0.009 любимый знакомый правило обычная сумма а чтение будет идти из дата регистра это понятно Да шикарно содержимое регистра данных Направить в регистр команд 6Б 4 микрокоманда 4 микрокоманда она более интересная потому что она управляющая такого мы еще не видели видим восьмерку сразу Что делаем все переписываем строчка никак не изменится регистры никак не изменится смотрим сравнение должно идти с единицей если сравнение выполнится успешно прыжок будет на адрес 0,9 jumpt 09 это написано здесь битовая маска То есть то что нам придет от коммутатора в Control Unit а в Control Unit всегда придут младшие 8 разрядов то есть старше 8 16 разрядное слово у нас приходит только младший разряд и мы проверяем только седьмой разряд вот этого вот добра то есть сюда пришел 8 разрядов мы проверяем седьмой это была питовая маска правило коммутатора особое уже не 9 как было мы раньше то есть прямой порядок а что-то очень интересное А это то есть мы что-то что нам сюда пришло и залу взяли и его старший разряд сделали в младшей и больше мы ничего не наоборот и до старший направили в младший и он пошел обычная сумма а читать мы будем из командного регистра и того У нас есть регистр команд мы направили его валу сложили там на справа ничего нет поэтому у нас просто операция сложения с нулем Ну такой операции на самом деле нет но просто идет сложение дальше пройдя через коммутатор а старший байт то есть старшие 8 разрядов направились в младший То есть у нас там командный регистр содержал себе младшую старшая 8 бит и младшая 8 бит старшая 8 бит направились в младше и отправились в Control Unit в Control Unity на Вот Эти старшие 8 бит наложилось Вот такая битовая маска и Ну получается мы проверяем седьмой вот этот разряд то что нам пришло но поскольку это мы знаем что до этого что это было старшее слово то это не седьмой разряд а 15 и нам его надо сравнить с единицей и если это сравнение было успешным то мы прыгнем на адрес 9 и того расшифровываем не Монику если командный регистр в скобочках 15 разряд равен единице есть непонятки есть вопросы сложно Ну да то есть вот понять что сравнение с единицей там у нас из командного регистра Там прям прямо в и прямо в коммутатор только старшее слово направится и так далее и там на это накладывается какая-то битовая маска и сравнение Ну мы собственно и получили мнемонику нам понадобится Вот теперь вот эта таблица то есть по сути все то что за вас было сделано в интерпретаторе с метками мы сейчас будем делать то же самое только самостоятельно то есть нам все это придется сейчас декодировать самостоятельно это главная сложность рубежке если меток нет так команда У нас 6 fbc это 011 0 б это 1011 F Все единицы c1100 вроде так Это команда вычитания если что саб-бы это автодикрементная адресация Саб IP минус Ну какой-то доп код FC минус вот так сложная команда Здесь много трассировать потому что режим адресации Не самый приятный там то было абсолютно адресация неважно и мы получается смотрим на 15 разряд он не равен единице поэтому мы не идем не на 09 А на 05 перешли на 05 очень схожая микрокоманда я ее прям даже не буду стирать ничего я вот рядом и здесь оставлю также читается из командного регистра также мы направляем старшее слово в Control Unit ничего никак его не меняя валу ни с чем не складывая проверка будет с единицей прыжок будет выполнен по адресу 0c битовая маска которую мы накладываем это 4 0 0 это 010.00 то есть мы накладываем вот такую битовую маску вот если вот это был 15 разряд Вот это 14 и таким образом расшифровывая уже вот эту мнемонику если регистр команд 14 бит единица то мы go to 0c ну эти микрокоманды схожи То есть можно заметить сходство всем Ясно да смотрим 14 бит действительно равен единице поэтому мы идем на 0 с так микрокоманда 0c [музыка] так по времени за время истекает Ну ладно не страшно кому уже там идти там уже сейчас 16:00 в принципе тут осталось монотонная скучная работа если там вам куда-то спешить то в целом Можете уже наверное идти тем не менее кто остается мы продолжаем здесь то же самое чтение из регистра команд то же самое то есть можно заметить сходство с тем что было чтение 02 из регистр команд принимаю сумма вау ну не понимаю Сумма по сумма валу без каких-либо инверсии прочего мы старший байт записываем в младший за это отвечает Вот это четверка если бы было кстати здесь единица то было бы эль-туэль то есть здесь по хорошему либо единица либо 4 может встретиться потому что ну либо вот из старшего направляем либо просто прямой порядок потому что только это слово в Контру Юнит направляется питовая маска 000 10 которая будет наложена на то что нам пришло вот отсюда переход будет по адресу 24 если в случае успешного успешной проверки проверка делается с нулем то есть надо чтобы вот это вот в сумме там в логическом умножении с тем что нам пришло дало 0 если даст 0 то мы прыгаем по адресу 24 Итого Ну вспоминая в том числе что у нас было до этого если регистр команд это получается вот здесь это третий разряд Но поскольку у нас вот такое правило действует хатуэль это не третий а равен нулю поэтому мы идем не на 0 С а на 0 CD это операционная микрокоманда [музыка] внимательно читаем операции чтения записи нет запись будет идти куда в буферный регистр правильно правило коммутатора интересная здесь появляется какая-то единичка если внимательно присмотреться Ну это можно открыть методу и понять но и лучше Вот это запомнить Вот это самое первое отвечает за расширение знака и 001 и вот это отвечает за то что у нас L2 то есть мы в коммутатор направили только младшее слово то есть из алу там дальше только младшее слово а остальное возьмется 7 разряд и расширится знак до остального третью лабу все помнят недавно рубежку писали расширение знака Аллу такая же такой же ноль он здесь традиционный на самом деле вы его часто будете видеть говорит о том что вы просто складываем и читать Мы будем вот здесь вот не путайтесь вот здесь вот два нуля здесь 02 это вот эта командный регистр А вот это буферный регистр Ну потому что банально там разные тетрадных цифр 2 стоят и таким образом мы сайган extending командного регистра с нуля по 7 разряда направляем в буферный регистр сложно наверное самому немного трудно содержимое командного регистра после расширения знак вот так как мы здесь видим F очень намекает на то что здесь будет FC все остальное не меняется Идем дальше тем временем является управляющий микрокомандой все также читается командный регистр все также мы старше его слово направляем да старший байт направляем в младший прыжок будет по адресу один C сравнение с единицей битовая маска вот такая и таким образом поскольку это второй разряд битовой маски Но поскольку действует правило хатуэль это у нас получается Если десятый разряд регистр команд потому что регистр команд Вот это если 10 бит командного регистра единица то мы один с 10 К сожалению равен нулю поэтому мы так далеко не 0f но Лев операционный микрокоманда в целом Вы когда делаете рубежку вы не задумываетесь там по смыслу там а что должно быть при исполнении команды с автодекрементной адресацией вы просто следуете вот этому Вот интерпретатору который вам дан будет на рубежке чтение запись отсутствует мы записываем получается в регистр адреса это регистр адресом Да мы уже рассматриваем операционную микрокоманду не путайте их потому что если вы начнете битовые маски и прочее смотреть в операционные микро команде это сразу вас что-то пойдет не так коммутатор здесь 33 тетради 009 говорит о том что это прямой порядок и вы это наверное еще помните прямой порядок здесь Ну а лук говорит Просто сумма и 24 это чтение из регистров и здесь читается сразу из двух регистров кто скажет Из каких регистров читается в этой микрокоманде из [музыка] прессника а нет я я случайно написал еще один ноль из буферного регистра отлично и правило между ними сумма наконец у нас сумма двух регистров То есть у нас с одной стороны с IP пошло значение с другой стороны из буферного регистра пошло значение валу у них как действовала правило 0 сумма так и будет действовать плюс из этого всего взяли их прямой порядок а результат записали в регистраторе сам расшифровываем BR + IP VR сложно нормально самое сложное сейчас будет сложить Я не хочу утруждать и себя никого Я хочу открыть калькулятор так нам надо получается в 16 речной ffc плюс счетчик команд был 57А 576 Вот это перенос он не учитывается так себя сверить 576 здесь так до 576 двигаемся дальше 10 микрокоманда 10 микрокоманда говорит о том что мы просто читаем из памяти Вот видите очень простая микрокоманда 01 все по нулям это чтение то есть обращение к памяти в дата регистра здесь происходит обращение к памяти по адресу 576 идет чтение 0 5 7b read И вот оно это 057b двигаемся на 11 микрокоманду 11 микрокоманда снова какая-то проверка [музыка] сразу видим проверка с единицей прыжок будет произведен на адрес 14 битовая маска 00.0010 а правила коммутатора 4 это хатуэль Нет не до хатуэль 010 правило Аллу говорят о том что это простая сумма и чтение из командного регистра быстренько воспроизводим если это получается первый это если командный регистр один плюс 8 если 9 бит командного регистра единица гол ту 14 Ну в целом если вот наверное вас уже какое-никакое понимание вот этой вот конструкции появляется Да нет совсем меня как-то не слышно под утихли все так продолжаем Ну просто заполняем таблицу если девятый бит командного регистра единица смотрим 9 бит командного регистра единица то мы идем на напоминаю это была управляющий так тоже управляющая микро команда [музыка] быстренько смотрим сравнение с единицей прыжок если сравнение удачное на 19 адрес битовая маска Мы берем вообще самый младший получается разряд правило коммутатора не изменились это хату L и чтение все еще идет из регистра команд если содержимое регистра команд 8 8 до 8 получается равен единице Чему равен 8 единица идем на 19 операционная микрокоманда [музыка] небольшая себя проверить тогда 19 никаких операций чтения записи не присутствует запись будет идти в регистр данных что интересно Скорее всего будет какое-то сохранение правила коммутатора стандартная прямой порядок L2 [музыка] Это говорит о том что надо инвертировать левый разряд То есть у нас левый разряд инвертируется интересно микрокоманда хорошо и регистр данных из него будет чтение таким образом к у нас получается левый вход Аллу с которого пришел 0 инвертируется то есть инверсия нуля складывается потому что вот это ссора все еще 0 это складывается с датой регистрации из этого всего прямой порядок сохраняется А запись будет идти в регистр данных Ну вроде вот так это да и вычитаем единицу из Data register Как видно из этой микрокоманды и записываем туда же Давайте вычтем 057а так вроде бы 057 ада пока идем правильно один а микрокоманда 1А снова открываем интерпретатор смотрим О это кому-нибудь напоминает это микрокоманда что-то вот у нас была такая же только в десятом номером но здесь вместо 102 [музыка] если 01 и так далее нули это чтение то 0 2 0 и так далее Ноль это запись происходит обращение к ячейке памяти с адресом здесь 576 потому что адресный регистр Никаким образом не менялся С тех пор я надеюсь вы будете все это переписывать потому что здесь просто для экономии времени этого не делаем Вот для этого вот этот вариант частично был происходит обращение по адресу 576 записывается туда содержимое регистра данных то есть 057а запись остальное не меняется и двигаемся на 1Б микрокоманда 1Б управляйка [музыка] сравнение с нулем прыжок в случае успешной успешного сравнения на 24 адрес битовая маска 001.00 правило коммутатора что важно и Просто сумма и читается вот это вот штука 0 0 нет 010.00 какому регистру Это соответствует чтение ребята какому регистру соответствует Вот это чтение то есть из какого региста мы прочитаем 40 СПС правильно СПС битовая маска Вот такая и раз л ту Эль то есть вот у нас есть PS и все что вот в этом PS в начале первые 8 бит вот мы их и в Control Unit переместим если PS это получается 3 4 5 6 если 6 разряд 6 если PS 4 разряд равен нулю Go to24 да именно так и именно так и реализованы безусловные переходы в базовые ЭВМ битовая маска 10 читается из программ стейта 40 сравнение с нулем если PS4 Go to24 безусловно переход от Ровно так и выглядит вот это все понятно конструкция еще кому-нибудь шикарно безусловно переход 24 адрес содержимое регистров осталось прежним 8 0 2 6 8 и так далее так управляющая микрокоманда сравнение с нулем прыжок на 26 адрес битовая маска 10 и так далее а мы берем хату L и читаем из регистр команд если командный регистр важно Так как хату Эль то у нас здесь не 7 разряд а 7 плюс 8 если 15 разряд командного реки Стар равен нулю если бы здесь Было не 4 А1 То бишь L2 то тогда эта битовая бумажка бы ну вот мы бы вот седьмой бит проверяется в этой битвой маске мы бы сюда 7 биты написали бы но у нас действует хатуэль поэтому не 7 а 15 это важно понимать смотрим 15 разряд он равен нулю условия выполняется 26 говорит о том что надо я с 27 вместе сразу возьму потому что там понятно уже что будет плюс 1 26 и 27 Мы видим что в конечном итоге произойдет чтение чтение из памяти а перед этим произойдет ничего не из чтения записи ничего не происходит запись идет в регистр адресом прямой с прямым порядком содержимое регистра данных записывается в адресный регистр и происходит обращение к памяти этот момент ясен всем Да отлично пишем сюда 27 А здесь у нас менялся получается регистр адреса сюда записалась 5-7а 5-7а и здесь произошло обращение к памяти не здесь а чуть ниже строчкой 57А и в 5-7 а хранится Вот это 37 с верю самого себя до 37 я но здесь L вот в ответах L пишут и с поэтому наверное все таки писать не РВ а или с наверное так правильно не ем так 28 28 микрокоманда это управляющая микрокоманда [музыка] мы сейчас рассмотрим сравнение с единицей прыжок в случае успешного про сравнения на трице битовая маска проверяется самый старший бит который пришел из коммутатора идет хату Эль То есть самый старший байт из командного регистра За что отвечает вот это вот последняя дверь тетради 02 и таким образом быстренько расшифровываем если командный регистр 15 15 единица go to 3C Правильно ли это расшифровал вроде бы правильно Да гол тут рецепт нас 15 разряд не равен нулю поэтому мы не на трице идем А на 29 просто плюс один так почти аналогичная проверка даже вот здесь я рассмотрю скорее сравнение с единицей в случае успешного сравнения прыгаем на адрес 30 битовая маска вот здесь вот не 80 а 40 это значит вот Единственное чем отличается мы на сдвинули вправо всю эту битовую маску то же самое то же самое хату Эль для командного регистра если регистр команд А точнее его 14 разряд равен единице то мы 30 вот эти вот операционного управляющие микрокоманда вам понятно мы их еще достаточно рассмотрим Я думаю концу разбора у вас более хорошее понимание еще сложно но мы уже близки к завершению так 14 разряд равен единице Значит мы действительно прыгнем по адресу 30 да мы прыгнем на 330 там дальше Просто 29 А поэтому это не странный переход ни в коем случае напоминаю видите управляющий микрокоманду Просто переписывайте всю строчку никакие содержимое никаких регистрах меняться Не будут если видите восьмерку [музыка] 30 микрокоманда [музыка] сравнение с единицей прыжок на 37 битовая маска 0010 и в это уже знакомая до более конструкция для командного регистра причем из них вот вот это вот оно Ало относится нам интересно 4.02 Не забывайте если командный регистр а точнее его 13 разряд равен единице гол ту 37 13 разряд равен единице go to 37 вот 37 [музыка] сравнение с единицей прыжок на адрес 3 а битовая маска еще сдвинулась вправо Ну это такая ну может быть уже даже знакомая конструкция то есть логически видно что сдвигается постоянно вправо вот эта проверка но так только вот в этом блоке команд То есть это закономерность чтобы Вы чуть-чуть могли проверить себя Если так поймаете видите все хорошо и здесь стандартно хату Эль для comman register если 12 разряд регистр команд равен единице гол тут Риа 12 разряд 0 поэтому мы идем не на 3 А куда на следующую на 38 на 38 правильно так вот [музыка] операционная микрокоманда нет обращение к памяти ввода вывода запись произойдет в вот сюда Это куда получается куда будет запись кто скажет четвертый в аккумулятор я услышал правильно Вот это дата регистр и так далее дата регистра это stackpointer а это разные если мы говорим про запись то это адресная регистрация А это аккумулятор правило коммутатора e09 все понял о чем речь внимательно на это посмотреть 110 101 Вот это правило коммутатора Мы сейчас их отдельно рассмотрим правило для алу 5 тоже не менее интересно 01 01 это правило а чтение произойдет из двух регистров из аккумулятора и из регистры данных во-первых мы видим сумму то есть Это говорит о том что это сумма во-вторых мы видим плюс один То есть ardr плюс 1 в третьих мы инвертируем правый разряд это правило Аллу валу будет вычислено Вот такое выражение Потом оно попадет в коммутатор в коммутаторе вот такие правила действуют во-первых Вот это уже вам знакомый прямой порядок а вот эти три последние старшая бита они отвечают за выставление признаков результата Ну и в нашем случае мы видим что они все ну говорит о том что абсолютно все флаги будут выставлены Они все будут как-то изменены то есть выставлены по результатам операции результат запишется в аккумулятор и того расшифровываем собираем все воедино А с плюс инверсия регистра данных плюс единица направляется в аккумулятор восстановкой флагов N zv C всем понятно это сложно это сложно дай Бог внимание попадутся Ну вот это вот разобрать сейчас еще один вариантик если посидеть вы порешаете потом как-нибудь после отдыха это полегче будет уже Я просто уже так на скеле небольшом тем более ценником помогал с этим решатам точнее тренажером неважно мы получается возьмем то что у нас в регистре данных Кстати я забыл это сюда записать У нас вот здесь вот в регистре данных после того как произошло чтение это значение будет инвертировано и сложно с аккумулятором У нас вот такой аккумулятор прибавлено ко всему этому Еще вдобавок единица и записано в аккумулятор Ну давайте лучше возьмем и посчитаем на калькуляторе опять же Ох здесь дом код нельзя посчитать не могу сельский калькулятор грусть значит не посчитать нам это на калькуляторе три ноль семьи инверсия равна 0.01100 считаем инверсию 1100 111100001 это будет C проверьте я могу ошибаться с цешкой здесь 81 вроде бы cf81 пожалуйста Не забывайте проверять cf81 аккумулятор складывается с 8012 и дополнительно с единицей Вот это уже можно посчитать CF 81 плюс 8012 плюс 1 14f94 это перенос Ну если посмотреть внимательно то мы Ну во-первых у нас Керри равен единице Z равен нулю N равно 0 потому что положительное число получилось вот переполнением веселее мы взяли отрицательное число Ну отрицательно изначально Вот это 10001001 сложили его с отрицательным отрицательная минус отрицательная по хорошему должно получиться отрицательное число я прав ребят а у нас получилось положительное похоже на переполнение да да переполнение И того переписываем результат операции во-первых n0z0 V1 Керри 1 переписываете строго вот как у вас вот здесь в таблице написано потому что тоже влияет и здесь идет на 39 команду и аккумулятор тоже обновился у него здесь значение 494 4F 94 Да и 39 микрокоманда Ура очень похоже на то что она последняя сейчас отдельно ее рассмотрим так это я Ладно оставлю Так вот сравнение с нулем прыжок в случае успешного на C4 C4 если что начало цикла прерывания идет чтение programstate битовая маска 10 это у нас читается получается четвертый разряд с el2 если programstate 4 разряд равен нулю go to C4 Если вы еще помните прошлую трассировку которую мы делали с метками это очень Заветная команда PS4 всегда равен нулю а гол тут C4 это начало цикла прерывания пишите сюда C4 переписывайте все регистры которые были до этого Ну давайте собственно говоря просто вот для этого ради и перепишем что у нас в IP 57А последнее что я вот здесь нашел содержимое регистра команд 6 bfc содержимое регистрации 57А содержимое регистра данных 33 07 буферный регистр ffc аккумулятор 4F 9.4 знаки 0011 Давайте проверим быстренько 5-7a6 fbc 57А 370 effc 4 f9 401 трассировка правильно поздравляю это вся Рубежная работа Ну да это проще чем ассемблер на мой взгляд вопросы какие Ну Мы закончили собственно время вопросов если конечно такие имеются там как ее делать то есть какие еще может быть как это что делать как строчку какую-то мы заполнили и так далее чуть-чуть погромче да да на рубеже может быть любая команда сейчас я рассмотрел две адресные команды и я думаю что будут именно адресная команда причем адресные какие то есть от двух до е с косвенной адресацией то есть либо 8 либо а либо б Скорее всего будет Вот такая косвенная адресация прямой абсолютно скорее всего не будет Ну вы видели Какая здесь очень простая таблица тем более вам на переписи ти То есть это на перепись скорее всего что-то сложное дадут рассчитывал бы я на что-то такое на самом деле бывает еще команды ветвление тоже интересный там паттер но он простой Возможно да ветвление просто и более сложно какие-нибудь 6080 740 и прочее вот эти вот команды весело отложить потому что там правила коммутаторы веселые вот у вас правила коммутатора вот так выглядят три тетрады вот эти отвечают за признаки результата вот эти отвечают за порядок слов а вот эти очень веселые отвечают за смещение Вот и поизучайте без адресная команда вас скорее всего большинству дадут адресную команду Ну и наверное у меня какой-то такой прогноз но там есть табличка вот это вот глобальный рубежный контроль здесь разные пробники есть рекомендую вот сегодня ознакомиться с ней здесь прям самые разные варианты есть вот я собственно решил две задачки отсюда Ну и собственно говоря еще по поводу рубежки то есть основа основ расписаны вот здесь я все это все Что Сейчас я проговорил оно все в текстовом варианте расписано Тут где здесь прям вот решен еще один вариант тоже прям пошагово Ну и собственно говоря все материалы есть в логове Я в закреплённом сообщении еще месяц назад оставлял все это если больше вопросов нет Мы так затянули на полчаса получается да на полчаса вот вопросы какие-нибудь остались тогда не буду больше вас задерживать счастливой подготовки к рубежной работе Удачи всем завтра на переписи вот всего замечательно
The words are the caption track's own and nothing is reworded or re-transcribed. Paragraph breaks are placed between sentences so the text reads as prose.
Use this transcript
Three free tools that work on the material around a video like this one. No signup, no login.
Hook Analyzer
Paste the first 30 seconds of your own draft for a hook score and rewrites.
Policy Pre-Flight
Check your draft against YouTube's advertiser-friendly guidelines before you record it.
Channel Skill Generator
Read this channel's public videos and transcripts, and download a writing brief for it.