Я не очень понял, куда перенести: ведь на другой неделе у вас нет пары. А через две недели это уже поздно, да и материал следующей лабораторной ещё не пройден на лекции, чтобы можно было переставить КР и следующую лабораторную. Так что я не знаю, что тут можно сделать.
Артем Михайлович, где можно задавать вопросы по поводу Lubuntu? Вопросы несколько не относятся к курсу.
Конечно, можно, задавайте! Только я тогда могу отделить тему, но это не страшно, я думаю.
Думаю стоит это сделать) Вопросов не много, но боюсь решение займет время и “место на форуме”
Это не страшно, вы пока начинайте.
несмотря на ужесточение правил, хотелось бы видеть свои ответы на прошлую попытку. довольно неудобно второй раз вбивать длинные ответы, например 16 разрядные числа
А нельзя ди просто длинные ответы сохранять в текстовом файле?
можно и так
Опубликовано очередное ДЗ и сопутствующие материалы с лекции.
Напоминаю, что в ближайшие две недели пройдут контрольные работы по практике во всех группах.
Разумеется.
Совершенно верно.
спасибо
Вопрос по 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 нельзя?