asm@cs.msu.ru
СтатистикаАрхитектура ЭВМ и язык ассемблера http://asmcourse.cs.msu.ru/
- Последний пост
- 2 июн.
- Последнее чтение
- ещё не заходили
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 15 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Результаты за 2026 год
Шаповалова Елизавета Аркадьевна - просьба подойти в 248 прямо сейчас
ℹ Раздача зачеток будет в аудитории 248, ориентировочно в 14:00. Время может подвинуться как в одну, так и в другую сторону, следите за объявлениями.
ℹ️ Рассадка по аудиториям на экзамене 101 - МЗ №1 102 - МЗ №2 103 - МЗ №3 104 - МЗ №4 105 - 574 106 - 248 107 - 758 Кому не хватит мест - МЗ №0 Рассадка по местам в порядке четности: четные логины на четные компьютеры и наоборот. Экзамен пишем в виртуалке prac.alt, как это было на коллоквиуме Еще раз напоминаю, как до нее добраться. Загружаем компьютер, выбираем local boot, вводим личный логин и пароль, после чего в списке виртуалок выбираем prac.alt
Слайды консультации
ℹ️ Комиссия по практикуму будет завтра, 28 мая. Место и время проведения - МЗ №2, с 13:00 до 15:00.
ℹ️ Консультация будет 28 мая, четверг, 10:30, аудитория П-5. Экзамен - 2 июня, вторник, 9:00.
Слайды 23 лекции
ℹ️ Уже завтра, в понедельник, на Факультете начинает работу ГАК, а у нас остается еще одна законная пара. Аудиторию П-5 забирают как раз под ГАК, а нас на прощальную встречу перемещают в П-8, где мы встретимся, как и всегда, в 8:45.
Слайды 22 лекции
🎉 Good news, everyone! Со среды возвращаемся к проведению нормальных лекций. Последние две пройдут 13 и 18 мая соответственно. Понедельник, 11 мая, учимся по расписанию субботы, т.е. без Асма. Всех с наступающим праздником.
🎦 Как обещал, выкладываю нарезку записей прошлых лет, которые в большей части покрывают 21 лекцию Выложил в простом файлохранилище. Плагина для просмотра нет, в браузере ничего не увидите. Надо качать. Про шины PIO vs MMIO WatchDog Про физику шин Про фронтальную шину Про LOCK префикс Про PCI и других
Слайды 21 лекции А вот с записью видео все плохо, файл оказался битый Поищу, что было в прошлые годы, накидаю сюда ссылок
Во вторник вечером получил с Факультета письмо про корь, с приказом ректора про дистант для непривитых. Таким образом, в среду, 6 мая, встречаемся как обычно - в 8:45, но не в П-5, а в ВКС https://jitsi.ispras.ru/asmcourse Остается только надеяться, что наш ИСПовый сервер вывезет всех желающих
Слайды 20 лекции
Рубрика "Сложные вопросы" Сегодня после лекции был вопрос по неожиданным для студента результатам дизассемблирования. В листинге встретился регистр eiz. Вопрос, что это такое? Сразу и, главное, точно вспомнить мне не удалось, потому разъясняю сейчас. Короткий ответ. eiz это псевдорегистр, у которого константное значение 0. Утилита objdump при дизассемблировании может выдать листинг с таким псевдорегистром. Чуть более длинный ответ. Кодировка команд в x86 крайне занятная. После кода операции в команде размещаются байты, кодирующие операнды. У этих байт есть личные имена: ModR/M и SIB. Напоминаю, что нам надо уметь как-то закодировать выражение (scale * index) + base + displacement. Поля байт ModR/M и SIB определят, какие из слагаемых присутствуют, какие именно регистры используются, сколько байт (1 или 4) будет отведено для displacement. Сам displacement, если он есть, размещается в коде команды уже после байта SIB. Байт SIB нарезается на следующие поля. Bit |7 6 | 5 4 3 | 2 1 0 Usage |SCALE | INDEX | BASE Поле scale превращается в коэффициент по следующему правилу 0 0 - 1 0 1 - 2 1 0 - 4 1 1 - 8 Поля index и base кодируют (32-х разрядные) регистры общего назначения следующим образом 0 0 0 - EAX 0 0 1 - ECX 0 1 0 - EDX 0 1 1 - EBX 1 0 0 - ESP 1 0 1 - EBP 1 1 0 - ESI 1 1 1 - EDI Но, как вы все, конечно, помните регистр ESP не может быть индексным, хотя такая комбинация битов в SIB может встретиться! Поле index со значением 100 будет восприниматься машиной как нулевой индекс, все зависимости от scale. Для явной демонстрации такой комбинации бит в команде, некоторые дизассемблеры используют псевдорегистр eiz, который следует воспринимать как константное нулевое значение. Для чего такая экзотическая кодировка может потребоваться? Чтоб дать знать, ваш работодатель удерживает вас в заложниках. можно было сформировать аналог команды NOP не из одного байта, а, например, из четырех: 8D 74 26 00 lea esi, [esi+eiz*1+0x0] Полезные ссылки (eng) https://www.cs.uaf.edu/2002/fall/cs301/Encoding%20instructions.htm https://en.wikipedia.org/wiki/ModR/M
Слайды 19 лекции
Как обещал - выкладываю слайды про устройство классов/объектов C++. Материал читался в этом году во ВШЭ. #c++ #extra
Слайды 18 лекции
Слайды 17 лекции