CS221. Архитектура компьютера и операционные системы

Тема сложная, а ДЗ совершенно простое вышло) Единственный, кажется, раз, когда без чтения Танненбаума, только со слайдами, с первой попытки вышло 10/10.

Только вот такая неочивидность есть там, где просят указать “код команды”. Я отвечал самым очевидным образом, писал 0xYY, но код ведь можно как угодно записать: и двоичным числом, и десятичным. Мне кажется, лучше это явно указать)

существует ли запись 11 лекции?

Да, она уже давно лежит, но неправильно называлась. Я исправил. Пока не хватает только 10-2, её уже не будет, к сожалению.

Опубликовано ДЗ 12 и слайды к соответствующей лекции. Видео будет когда-то позже, наверное.

Публикую время проведения контрольной работы №2 по материалам лекций.

  • В группах 2.1, 2.2: 25 мая (среда), 8:30, ауд. 118 (ММ-1,2) и 202 соответственно.

  • В группах 2.3, 2.4: 25 мая (среда), 9:00, ауд. 118 (ММ-1,2) и 202 соответственно.

  • В группах 2.8, 2.9: 28 мая (суббота), 9:00, ауд. 118 (ММ-1,2) и 202 соответственно.

Предлагаю высказать замечания по времени проведения, если таковые есть. Если замечаний не поступит, прошу считать это время окончательным и передать через старост всем студентам.

1 лайк

Отечественные обозначения логических элементов:

ГОСТ 2.743-91.pdf + картинка

Спасибо, @Zudwa! Всё кроме ИЛИ совпадает с IEEE:

Кстати, как говорит английская Википедия, ANSI теперь тоже IEEE.

Опубликовано ДЗ и слайды.

Не открылось 13-е ДЗ, Артём Михайлович. Исправьте, пожалуйста)

И ещё… Очень хочется, чтобы Вы пояснили девятое задание из прошлого теста. Про то, куда можно вставить UMUL - как его формулировку, так и правильный ответ. Мне совершенно не понятно, например, почему ISUB в строчках 3 и 5 заменить на UMUL нельзя. Наверное, я что-то неправильно понял.

Вроде есть 13-е, проверил под студентом.

У меня написано, что закончено 15-го мая 2016-го года :frowning:

Действительно, исправил, спасибо. Остальное сейчас отвечу…

В задаче приведён код, эквивалентный такому коду на C:

i = 2 * (7 - (n - j))

Соответственно, тут одно место, где можно использовать умножение. Как вы предлагаете (n - j) заменять умножением? (Там сказано именно заменять.)

1 лайк

Прошу прощения… Я вообще не думал о результате операций, а думал только о формальном присутствии должного количества операндов на стеке… Наверное, надо делать эти тесты не ночью.

Всё ОК, хорошо, что вы дополнительно разбираетесь после появления ответов, надеюсь, так делаете не вы один :sunglasses:

Там как-то и не сказано про результат) Мда. Что-то я загнул не в ту сторону

То есть шетсую строчку надо было заменить на

BIPUSH 2
UMUL
BIPUSH 0

А седьмую на

POP
BIPUSH 2
UMUL

Так?

По идее просто DUP + IADD (6 и 7) меняется на BIPUSH 2 + UMUL. И то и другое удваивает вершину стека.

А, так я думал, что заменять только одну строчку надо… Понятно

Ну там написано:

запишите номера строк приведённого листинга с инструкциями, которые можно заменить на вызов инструкции UMUL

Здесь важно отметить, что номера строк во множественном числе, а UMUL в единственном. Если бы каждую надо было менять на UMUL, то, наверное, было бы множественное число в обоих случаях.

Я постарался сформулировать более чётко и добавил вам 0.75 балла по этому вопросу за стремление разобраться.

Да не за что же…

Спасибо, что помогли разобраться)