Опубликовано очередное ДЗ, слайды к лекции и материалы к ней. Поскольку тема достаточно сложная, я настоятельно рекомендую прочитать нужные разделы книги Таненбаума (указаны, как обычно, во вступлении к ДЗ).
Тема сложная, а ДЗ совершенно простое вышло) Единственный, кажется, раз, когда без чтения Танненбаума, только со слайдами, с первой попытки вышло 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 соответственно.
Предлагаю высказать замечания по времени проведения, если таковые есть. Если замечаний не поступит, прошу считать это время окончательным и передать через старост всем студентам.
Спасибо, @Zudwa! Всё кроме ИЛИ совпадает с IEEE:
Кстати, как говорит английская Википедия, ANSI теперь тоже IEEE.
Опубликовано ДЗ и слайды.
Не открылось 13-е ДЗ, Артём Михайлович. Исправьте, пожалуйста)
И ещё… Очень хочется, чтобы Вы пояснили девятое задание из прошлого теста. Про то, куда можно вставить UMUL - как его формулировку, так и правильный ответ. Мне совершенно не понятно, например, почему ISUB в строчках 3 и 5 заменить на UMUL нельзя. Наверное, я что-то неправильно понял.
Вроде есть 13-е, проверил под студентом.
У меня написано, что закончено 15-го мая 2016-го года
Действительно, исправил, спасибо. Остальное сейчас отвечу…
В задаче приведён код, эквивалентный такому коду на C:
i = 2 * (7 - (n - j))
Соответственно, тут одно место, где можно использовать умножение. Как вы предлагаете (n - j)
заменять умножением? (Там сказано именно заменять.)
Прошу прощения… Я вообще не думал о результате операций, а думал только о формальном присутствии должного количества операндов на стеке… Наверное, надо делать эти тесты не ночью.
Всё ОК, хорошо, что вы дополнительно разбираетесь после появления ответов, надеюсь, так делаете не вы один
Там как-то и не сказано про результат) Мда. Что-то я загнул не в ту сторону
То есть шетсую строчку надо было заменить на
BIPUSH 2
UMUL
BIPUSH 0
А седьмую на
POP
BIPUSH 2
UMUL
Так?
По идее просто DUP
+ IADD
(6 и 7) меняется на BIPUSH 2
+ UMUL
. И то и другое удваивает вершину стека.
А, так я думал, что заменять только одну строчку надо… Понятно
Ну там написано:
запишите номера строк приведённого листинга с инструкциями, которые можно заменить на вызов инструкции UMUL
Здесь важно отметить, что номера строк во множественном числе, а UMUL в единственном. Если бы каждую надо было менять на UMUL, то, наверное, было бы множественное число в обоих случаях.
Я постарался сформулировать более чётко и добавил вам 0.75 балла по этому вопросу за стремление разобраться.