Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 04:33   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка > mov eax, [eax+$68]

Код:
> mov     eax, [eax+$68]
знаю только делпыи, и не поиму что здесь написано, кто нибудь может подсказать?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 21.02.2011, 04:44   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

загрузить в регистр ЕАХ то, что находится по адресу содержащемуся сейчас в регистре ЕАХ со смещением на 104 ($68=104) Это же элементарно!
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2011, 05:03   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

спасибо
в универ нас не учили, асолютно ничему, а я и не интересовался, вот и страдаю
в Delphi ориентируюсь нормально но что казсаеца
Цитата:
смещением на 104 ($68=104)
тож не могу сказать что знаю
если не сложно поясните ответ
мои знания о ячеика памяти:
знаю об их сушествовании,
знаю что смешение ето пустые биты, но как програмно не знаю
знаю как обратица к адресу а: string; @а
ассемблер 0
можно своими словами о моеи проблеме?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 21.02.2011, 05:31   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

ArtGrek
если "на пальцах" в регистре ЕАХ находится адрес другой ячейки памяти [EAX]=A1. К этому адресу A1 нужно добавить 104 A2=A1+104 и то что находится по адресу А2 поместить в регистр ЕАХ то есть EAX:=[A1+104]. Числа в ассемблере и в паскале/дельфи и в других языках могут быть в двоичной системе счисления, в восьмеричной системе, в десятичной системе и в шестнадцатеричной системе
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2011, 05:35   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

тоесть сеичас в ЕАХ A1, а надо добавить A2, а в чем ошибка?
у меня на етои строке показывает

Код:
disassembling:
[...]
00581ed8       mov     edx, 4
00581edd       call    -$17ce16 ($4050cc)     ; System.@LStrCatN
00581ee2       mov     edx, [ebp-$20]
00581ee5       mov     eax, ebx
00581ee7       call    -$110d88 ($471164)     ; Classes.TComponent.FindComponent
00581eec     > mov     eax, [eax+$68]
00581eef       mov     eax, [eax+$18]
00581ef2       push    eax
00581ef3       mov     eax, esi
00581ef5       call    -$1066ce ($47b82c)     ; Graphics.TBitmap.GetCanvas
00581efa       mov     eax, [eax+$c]
[...]
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 21.02.2011, 05:38   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

1) получить из ЕАХ число А1
2) прибавить к А1 число 104 т.е. А2:=А1+104;
3) прочитать то, что находится по адресу А2 Х:= [A2]
4) поместить в ЕАХ то есть ЕАХ:=Х

Наверное процедура Classes.TComponent.FindComponent работает неправильно?

Последний раз редактировалось Mikl___; 21.02.2011 в 05:50.
Mikl___ вне форума Ответить с цитированием
Старый 21.02.2011, 23:27   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Хм, а кто грохнул сообщение о том, что FindComponent() возвращает nil?

Код:
mov     eax, [eax+$68]
Это обращение к полю FFont класса TComponent. Т.к. FindComponent() возвращает nil, eax будет равно 0, вот и происходит исключение.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компилятор не распознаёт регистр eax ufo1og Общие вопросы C/C++ 0 15.12.2010 13:48
mov ax,13h int 10h и Borland Pascal виснет..? Siddharta Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 01.07.2008 11:27
Помогите! В АССЕМБЛЕРЕ MOV AH,1AH Что значит 1AH? veter_s_morya Фриланс 1 16.06.2008 16:03
команда MOV, проблемы fermat_c Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.04.2008 19:19