Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не работает DB в дельфи / 10 сообщений из 10, страница 1 из 1
28.02.2010, 16:28:58
    #36493384
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Код: plaintext
1.
2.
 asm 
DB 'abcd$'
 and ;

программа сразу закрывается без ошибок. Причина? 10 байт строка "Она Идеальна!!!" идеальна потому что я не вижу в ней ошибок.

Не работает! Причина?
...
Рейтинг: 0 / 0
28.02.2010, 19:21:26
    #36493520
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
все кто не прочь потрепаться замолчали вдруг.. Сказать нечего.. в форуме 'треп' все крутые, а тут потрепаться сразу в кусты.
...
Рейтинг: 0 / 0
28.02.2010, 20:15:45
    #36493567
Vowk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Master4,
поставь jmp между asm и DB.
...
Рейтинг: 0 / 0
28.02.2010, 20:23:35
    #36493576
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Vowk,
а какая разница? jmp это переход на адрес... толку от вашего JMP?

Клоуна чтоль делаете из меня?
...
Рейтинг: 0 / 0
28.02.2010, 20:28:32
    #36493579
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Master4Vowk,
а какая разница? jmp это переход на адрес... толку от вашего JMP?

Клоуна чтоль делаете из меня?

Ты и сам справляешься.

Поставь брекпоинт и посмотри на ассемблерный код, что получается.
...
Рейтинг: 0 / 0
28.02.2010, 20:32:50
    #36493584
Vowk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Master4,
вот посмотри, может понравится
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TForm1.Button1Click(Sender: TObject);
var x : Integer;
begin
  x:= 0 ;
 asm
   jmp @start
@byte1:
   db  15 , 30 
@start:
  xor eax,eax
  mov al, byte ptr [@byte1+ 1 ]
  mov x,eax
  end;
  ShowMessage(IntToStr(x ) ) ;
end;
end.
...
Рейтинг: 0 / 0
28.02.2010, 20:38:18
    #36493587
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Siemargl,

дак дело в том что я не вижу здесь ошибки со своей стороны... почему оно не работает я не понимаю..

DB записать байт..

Зацените:

Код: plaintext
1.
//программу вышибает без ошибок
DB 'abcd$'
Код: plaintext
1.
2.
//messagebox: access violation
DB '123$'

я похоже чего-то не знаю или компилятор..

поставил брейкпоинт, вместо асма всё в вопросительных знаках
...
Рейтинг: 0 / 0
28.02.2010, 20:40:44
    #36493589
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Vowk, работает.
...
Рейтинг: 0 / 0
28.02.2010, 20:45:26
    #36493593
Vowk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Master4,
ошибка в том, что в сегменте кода размещаются элементы данных. Процессор "не знает" об этом, и пытается выполнить "abcd$" (уж не знаю, какая там команда выходит). Если уж позарез надо данные в DB, то их надо обойти , т.е. поставить jmp перед DB. Однако в этом случае данные будут выполнять свою роль наполовину - читать можно, а записывать нельзя ( потому что в сегменте кода в защищенном режиме нельзя изменять ничего). Так что смысла DB в Delphi + ASM почти никакого. Надо объявлять переменные в Delphi и использовать их имена в asm (только чтобы не совпадали с именами регистров).
...
Рейтинг: 0 / 0
28.02.2010, 20:48:57
    #36493595
Master4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DB в дельфи
Vowk,

Вот, спасибо! объяснил доступно.
Тота я думаю, чего это в борландских юнитах не размещаются данные с db,dw т.д.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не работает DB в дельфи / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]