![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.10.2013
Сообщений: 72
|
![]()
Не знаю, была ли тема, вроде, не нашел. Дорогие гуру и не гуру, не так давно началось изучение ассемблера у меня в вузе. Это событие совпало с моим созреванием для самостоятельно изучения вышеописанного (пробовал раньше - ничего вообще было не понятно). И с первых статей уже появились вопросы., а именно: http://programmersclub.ru/assembler3/
Не могу понять, что происходит в памяти при заполнении стека: 1. Если стек заполняется так, как показано, то почему ESP изначально установлен не на последнюю ячейку? 2. В примере в стек записываются числа формата XXXXh, как будет выглядеть все это дело, если попытаться занести туда число XXXh? 3. По какому принципу во время занесения значения в edx ESP переходит на значение, предшествующее первому занесенному? 4. Не могу полностью понять механизм занесения значения в edx. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
Страницу не смотрел.
1) Потому что запись байтов будет в [ESP+0], [ESP+1], [ESP+2] и [ESP+4], т.е. в стеке должно быть место для данных. 2) Наверное будет 0ХХХh Для 3 и 4 наверно надо смотреть примеры, иначе непонятно. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
1. При нормальной работе программы в самом начале содержимое ESP указывает на конец (последнюю ячейку) сегмента стека.
2. число XXXXh занимает 16 разрядов, а число XXXh - 12 разрядов. При 8/16/32 разрядной адресации к стеку 12 разрядов могут записаться только как 0XXXh или 00000XXXh. Да и явно хранить 12 разрядное число на ПК на основе x86 архитектуры не получится. Придется дополнять нулями до 16 разрядов. 3. если из стека забирается EDX (4 байта), то к значению ESP прибавляется 4 и указатель смещается на 4 байта сегмента. 4. чем меньше адрес байта в сегменте, тем меньшее положение этого байта в EDX.
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Assembler. Курс молодого бойца. | AngelOfDeath | О форуме и сайтах клуба | 2 | 06.11.2008 08:53 |