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

Я не очень понял, куда перенести: ведь на другой неделе у вас нет пары. А через две недели это уже поздно, да и материал следующей лабораторной ещё не пройден на лекции, чтобы можно было переставить КР и следующую лабораторную. Так что я не знаю, что тут можно сделать.

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

Конечно, можно, задавайте! Только я тогда могу отделить тему, но это не страшно, я думаю.

Думаю стоит это сделать) Вопросов не много, но боюсь решение займет время и “место на форуме” :slight_smile:

Это не страшно, вы пока начинайте.

10 posts were split to a new topic: Проблемы со старым Линуксом на виртуалке

несмотря на ужесточение правил, хотелось бы видеть свои ответы на прошлую попытку. довольно неудобно второй раз вбивать длинные ответы, например 16 разрядные числа

А нельзя ди просто длинные ответы сохранять в текстовом файле?

можно и так

Опубликовано очередное ДЗ и сопутствующие материалы с лекции.

Напоминаю, что в ближайшие две недели пройдут контрольные работы по практике во всех группах.

1 лайк

@Ulysses а у нас будет контрольная по теории по второму модулю?

Разумеется.

@Ulysses сегментная часть логического адреса это то, что в логическом адресе стоит до двоеточия?

Совершенно верно.

спасибо

Вопрос по 3 заданию из 5 лабы. “Внутри AddRightDigit косвенное обращение по адресу [локальной] переменной должно происходить при помощи регистра BP, так как переменная изначально выделена в сегменте стека.” Если у AddRightDigit 2 аргумента: цифра(сдвиг 6) и адрес числа(сдвиг 4), к которому мы должны приписать эту цифру, и в другой подпрограмме я кладу на стек сначала эту цифру, а потом локальную переменную -2(BP), когда я в AddRightDigit обращаюсь к 4(BP) это правильно?

Локальную переменную положить никуда нельзя, нужно положить её адрес. То есть число, равное BP - 2. Это можно сделать так, например:

MOV  AX, BP
SUB  AX, 2
PUSH AX

Можно чуть быстрее:

LEA  AX, -2(BP)
PUSH AX

Эффект будет тот же. Про LEA можно погуглить.

Дальше внутри AddRightDigit этот адрес нужно загрузить в BP, предварительно сохранив предыдущее значение BP на стеке, и обратиться по нему как обычно: (BP).

то есть если написать

PUSH   -2(BP)

то на стек положится значение этой переменной?

Конечно.

обязательно BP? BX/SI/DI нельзя?