eXeL@B —› Программирование —› Асм вставки в Delphi |
Посл.ответ | Сообщение |
|
Создано: 31 октября 2009 02:31 · Поправил: Sunzer · Личное сообщение · #1 |
|
Создано: 31 октября 2009 02:46 · Личное сообщение · #2 |
|
Создано: 31 октября 2009 12:21 · Поправил: Sunzer · Личное сообщение · #3 |
|
Создано: 31 октября 2009 13:05 · Личное сообщение · #4 |
|
Создано: 31 октября 2009 13:06 · Личное сообщение · #5 Sunzer пишет: а зачем этот префикс Во как вас разбаловала плоская модель памяти, что аж сегментные (селекторные) регистры превратились просто в префиксы внутри команды. Sunzer пишет: И что я могу потерять без этих префиксов? Для этого нужно посмотреть информацию о окружении вашего процесса, когда вы получаете управление от операционной системы на точку входа. Ибо можно наступить на исключение xor eax,eax mov ecx, fs:[ebx] ; OK! mov ecx, [ebx] ; Exception ----- 127.0.0.1, sweet 127.0.0.1 |
|
Создано: 31 октября 2009 13:10 · Поправил: Sunzer · Личное сообщение · #6 Code:
Это и так понятно, а различия опкодов в первом посте какие? Цитата: во всех остальных случаях, если не используется префикс замены сегмента, доступ к памяти осуществляется с использованием сегментного регистра DS. При наличии префикса замены сегмента вместо DS используется указанный префиксом сегментный регистр. Именно в моем примере из первого поста, я так понял различий никаких, даже без перфиксов префикс "будет" DS |
|
Создано: 04 ноября 2009 03:41 · Поправил: Kai · Личное сообщение · #7 Sunzer Интересно как вы криптовали, не понимаю механизмов сегментации Если префикса переопределения сегмента нет, то используется дефолтное значение. Это может быть не только Ds, например сегмент кода(Cs) или стека(Ss). OKOB > mov ecx, fs:[ebx] ; OK! Обьясните это: Code:
|
|
Создано: 04 ноября 2009 14:24 · Поправил: Sunzer · Личное сообщение · #8 |
eXeL@B —› Программирование —› Асм вставки в Delphi |