|
0 / 0 / 0
Регистрация: 18.05.2019
Сообщений: 9
|
|
Как изменится состояние регистров после выполнения PUSH AX и POP DX18.05.2019, 16:08. Показов 6884. Ответов 4
Учусь на заочке и тут по архитектуре аппаратных средств прилетает практическая работа, а в ней задачки всякие. И на одной я застопорился:
Даны исходные данные: SP=0324h, DS=4302h, DI=0073h, AX=4852h, BX=3010h, DX=0000h, SI=0071h Покажите ситуацию в памяти до и после выполнения стековых команд, а также состояние участвующих в этом регистров: a) PUSH AX b) POP DX Хоть калёным железом пытайте, не могу взять в толк, что от меня хотят... Все пришедшие в голову мыслишки вылились в это: a) PUSH AX При реализации команды PUSH выполняются следующие действия: значение регистра SP уменьшается на 2, значение операнда записывается по адресу SS: SP. PUSH AX SP := SP – 2 memory[SP] := AX то есть, SP = 0324h – 2 = 0322h – полученное значение записывается в SP. b) POP DX Алгоритм работы команды POP обратен алгоритму команды push: значение из вершины стека пересылается в операнд, значение SP увеличивается на 2: POP DX DX := memory [SP] SP := SP + 2 то есть, SP = 0324h + 2 = 0326h – в DX записывается содержимое памяти, на которую указывает SP. Пожалуйста, подскажите, а правильно ли я понял задание? И, вообще, серьёзно, что с регистрами происходит до и после стековых команд? Неужели все эти DS, DI, AX, BX, SI остаются неизменны до и после? Честно, не доходит до меня эта тема со стеками, но, блин, кровь из носу, нужно разобраться.
0
|
|
| 18.05.2019, 16:08 | |
|
Ответы с готовыми решениями:
4
Значения регистров после выполнения действий Push и pop Сделать так чтобы если вводится push выполнялась функция push, если pop то pop Как изменится массив после выполнения фрагмента программы |
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||
| 18.05.2019, 16:47 | |||
Сообщение было отмечено ras2 как решение
РешениеPUSH AX - число из регистра AX вставил в рожок. После выполнения команды это число в рожке верхнее. POP DX - вынул верхнее число из рожка и поместил в регистр DX. Только когда патроны вставляются и вынимаются из рожка, они не перемещаются в нем как в настоящем автоматном рожке. Они лежат на месте. Чего зазря их по памяти перемещать-то ? Вместо этого сам рожок как бы резиновый, повернут горловиной вниз, рожок растягивается и сжимается, патроны при этом по высоте не двигаются. Пара регистров SS:SP всегда указывает на верхний патрон в рожке, считай на горловину рожка. Когда новый патрон (число) вставляется в рожок, рожок растягивается вниз (SP уменьшается на 2). Когда патрон (число) вынимается их рожка SP увеличивается на 2 и рожок сжимается вверх. Ну вот так представляй себе работу стека и не прошибешься.
3
|
|||
|
Неэпический
|
|
| 18.05.2019, 21:08 | |
|
Может быть поможет:
https://habr.com/ru/company/sm... og/234239/
1
|
|
|
0 / 0 / 0
Регистрация: 18.05.2019
Сообщений: 9
|
|
| 18.05.2019, 21:21 [ТС] | |
|
Спасибо! Сейчас почитаю
0
|
|
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|
| 29.05.2019, 01:35 | |
|
2
|
|
| 29.05.2019, 01:35 | |
|
Помогаю со студенческими работами здесь
5
Как и почему меняется содержимое регистров после выполнения очередной команды Модифицировать программу, имитирующую работу стека, так, чтобы после каждой из операций push и pop на экран выводился сн как реализовать вручную методы: Peek(), Pop(), Push() - для односвязных списков Каким будет содержание регистров после выполнения команд Определить значения регистров после выполнения фрагмента программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|