Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

регистры

344
07 сентября 2005 года
Delpher
493 / / 14.08.2005
Как узнать/установить занчения регистров (AX,BX,CX,SP,BP,SI,DS,ES,IP)?
247
08 сентября 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by Delpher
Как узнать/установить занчения регистров (AX,BX,CX,SP,BP,SI,DS,ES,IP)?


А asm...end; подойдет?

344
08 сентября 2005 года
Delpher
493 / / 14.08.2005
Цитата:
Originally posted by wanja
А asm...end; подойдет?



Конечно!!!!!!!!!
Я писал на asm но ничего не получается - не силен я в ассемблере

339
12 сентября 2005 года
verybadbug
619 / / 12.09.2005
 
Код:
var
  wAX: WORD;
begin
  asm
    MOV wAX, AX
  end;
end;


остальные регистры аналогично... если хочешь использовать расширенные регистры (eax, ebx.. и т.д.), то в VAR тип надо поменять на DWORD...
299
12 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Delpher
Как узнать/установить занчения регистров (AX,BX,CX,SP,BP,SI,DS,ES,IP)?



Зачем?? Эти регистры позволяют работать вообще всей системе и они меняются после каждого такта процессора. После того как ты их поменяешь, я тебе даю стопроцентную гарантию, что они собъются сразу как будет вызвана любая ф-ция или любая другая операция. Да они вообще собъются сразу после закрытия асемблерной вставки.
Прочитать можешь, только поверь смысла в этом мало, если не умеешь работать с ассемблером. Их полезно знать когда продолжаешь работать с асемлерной вставкой. Смотря в каком месте вызовешь асемблерную вставку разные будут значения регистров.

Хотя если поменять служебные регистры, (те которые отвечают за адрес следующей команды), я не уверен(работает ли это на языках высоко уровня) но можно поменять ход выполенния программы. Только оно не нужно, когда есть goto.
Хех помню я баловался ассемблером только так.... Такие вещи вытворял, но правда только в ДОСЕ.


Кстати а вот и вопрос который меня интересовал.
Я так понимаю винда не позволяет менять реальные значение регистров, вместо них должно быть меняются виртуальные регистры. и винда каждому процессу или потоку выделяет свои виртуальные регистры?

339
12 сентября 2005 года
verybadbug
619 / / 12.09.2005
Цитата:
Originally posted by 3D Bob
Кстати а вот и вопрос который меня интересовал.
Я так понимаю винда не позволяет менять реальные значение регистров, вместо них должно быть меняются виртуальные регистры. и винда каждому процессу или потоку выделяет свои виртуальные регистры?



пиши вопрос в асю 238098569.... он гуру в таких вопросах

344
12 сентября 2005 года
Delpher
493 / / 14.08.2005
Цитата:
Originally posted by 3D Bob
Зачем?? Эти регистры позволяют работать вообще всей системе и они меняются после каждого такта процессора.



Мне только надо узнать есть ли там опред данные и без разници что сними будет потом

299
12 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by Delpher
Мне только надо узнать есть ли там опред данные и без разници что сними будет потом


Их там нет.

303
13 сентября 2005 года
makbeth
1.0K / / 25.11.2004
Цитата:
Originally posted by 3D Bob
Я так понимаю винда не позволяет менять реальные значение регистров, вместо них должно быть меняются виртуальные регистры. и винда каждому процессу или потоку выделяет свои виртуальные регистры?

Не совсем верно... На самом деле никаких виртуальных регистров не существует, при выполнении процесса используются реальные регистры процессора. Просто при переключении процессором задачи, создается т.н. контекст, в который сохраняются все значения регистров, а при обратном преключении - восстанавливаются. Виртуальные регистры существуют только для ДОС - приложений (фактически ДОС в винде реализован как VM).

Цитата:
Эти регистры позволяют работать вообще всей системе и они меняются после каждого такта процессора. После того как ты их поменяешь, я тебе даю стопроцентную гарантию, что они собъются сразу как будет вызвана любая ф-ция или любая другая операция. Да они вообще собъются сразу после закрытия асемблерной вставки.

Ну это уже, простите, бред полный... В исходниках VCL полно функций, реализованых с помощью asm-вставок, и ничего, все прекрасно работает... Просто действительно надо знать, что делаешь.

299
13 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by makbeth
Ну это уже, простите, бред полный... В исходниках VCL полно функций, реализованых с помощью asm-вставок, и ничего, все прекрасно работает... Просто действительно надо знать, что делаешь.


Дык где ты увидел бред в моих словах? Я соглсен что асмовские вставки рулят.
Если не правильно понел о чем я пишу, не мои проблемы. Я имел ввиду, что просто поменять значение регистра, и чтобы оно там осталось не получиться. Читай подробней что я пишу и харе выёживаться.
Было ясно сказано что смысла поменять их нет. А вот поменять и поработать с этим вполне можно и даже ОЧЕНЬ ДАЖЕ НУЖНО, для создания минимального размера кода.

339
13 сентября 2005 года
verybadbug
619 / / 12.09.2005
Цитата:
Originally posted by 3D Bob
ОЧЕНЬ ДАЖЕ НУЖНО, для создания минимального размера кода.



и ускорения работы приложения....

вот только смысла в этом в некоторых случаях нет... очень много API написано на асм... так что не нужно переписывать всякие там GetRValue или RGB....:}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог