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


#1

Форум в поддержку курса.

Ссылка на курс в Мудле.


#6

Вот пара ссылок по теме последней лекции.


#24

Вопрос: в “Занятии 3. Интерфейс системных вызовов. Простейшие подпрограммы” в доп. задании 2 необходимо написать программу печати массива, длина которого передается в “словах”. Что значит “словах”? Строка? Или кол-во байт типа WORD? Или просто кол-во элементов?


#25

Количество элементов. Память под элементы выделяется командой .WORD (англ. «слово»), и по ширине они совпадают с машинным словом процессора Intel 8088 (16 бит) — об этом всё время говорится на лекциях. Видимо, зря :frowning:


#26

Не зря! Просто не ожидал увидеть “слово” тут… Спасибо за разъяснения!

P.S. это нормально, что у нас 2 “Домашних задания 2”?


#27

Спасибо за указание — поправил.


#41

Опубликовано ДЗ №7 по лекциям. ДЗ по практике тоже должно открыться, у кого следует.

Напоминаю, что на грядущей неделе проходит контрольная по лекциям: на ПМИ в среду утром, на ФИИТ — в субботу утром. Прошу старост напомнить об этом одногруппникам.


#42

А у кого следует?) У меня вот не открылось… Или для этого нужно что-то сделать?


#43

О, спасибо. Теперь должно.


#44

И Вам спасибо) У меня вопрос. Можно ли портить регистры (и какие?) при использовании pascal calling convention? В Википедии и по первым ссылкам Гугла про это ничего не написано)


#45

Если ничего не сказано дополнительно, можно считать, что сохраняются только BP, SI, DI.


#46

All calling conventions in the 16-bit world preserve registers BP, SI, DI (others scratch) and put the return value in DX:AX or AX, as appropriate for size.

Почему мы тогда на лабораторной сохраняли BX?) Или это следствие

non-uniformity of the x86 instruction set

?


#47

Там имеется ввиду минимум. Отдельные CC добавляют сохраняемые регистры… Хотя при составлении я ориентировался на cdecl современный, то есть 32-битный.

Нужно понимать, что не так важно конкретное определение CC, как безоговорочная её реализация в вызывающем и вызываемом коде.


#48

Хорошо, я понял)

Это тоже понятно) Просто когда на первом курсе запрещают использовать break и goto, а на втором - писать два умножения вместо одного, начинаешь сомневаться в том, что что-то не важно :grinning:

Спасибо)


#49

Неутешительные (особенно для ФИИТ) результаты первой контрольной. Надеюсь, будут сделаны выводы ко второй контрольной, которая пройдёт в конце мая.

ПМИ:

ФИИТ:

Апелляции приветствуются и принимаются в течение двух недель.


#50

Я понимаю, что “набор инструкций”, ISA или что-то подобное было бы уместнее, но почему такой вариант не засчитывается? Ведь он тоже был в лекциях.


#51

Артем Михайлович, можно узнать ответ на вопрос с заочной олимпиады для поступления в магистратуру?

При косвенном обращении к памяти с помощью регистра (E)BX в качестве сегментной части адреса берётся значение

a. Сегмента данных.

b. Сегмента стека.

c. Дополнительного сегмента.

d. Сегмента кода.

#52

Я тоже ответил машинный код. В тесте(если навести на само поле ответа) указанный верный ответ-“Операционной системы”. Возможно он был бы точнее. Хотя машинный код кажется самым очевидным и верным, на мой взгляд.


#53

Без проблем: сегмента данных. Ответ на это есть в книжке Зубкова по ассемблеру (пункт 2.2.4).

Для этого и нужен процесс апелляции. Я верну этот балл.

Там несколько вариантов принималось. ОС добавлена потому, что так сказано у Таненбаума. На лекциях мы стараемся не учитывать ОС по понятным причинам…


#54

Спасибо за разъяснения)