Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

Как будет выглядить ASM втавка:   Найти похожие ветки 

 
BaRToV   (2003-06-21 02:40) [0]

procedure ASM1(s1: string);
begin
s1[1] := "W";
...
end;


 
Dmk   (2003-06-21 03:27) [1]

Поставь brackpoint на этой строке.
И запусти до нее.
А потом нажми Ctrl + Alt + C.


 
BaRToV   (2003-06-21 03:48) [2]

2 Dmk ©

Да делал я так как там, ошибка вылетает...
Код мне нужно.


 
Digitman   (2003-06-21 08:22) [3]

не передавай пустую строку параметром, не передавай статическую константу - и ошибки не будет


 
BaRToV   (2003-06-21 09:10) [4]

Да пример можно...


 
Palladin   (2003-06-21 09:24) [5]

ошибка вылетает или программа? куда вылетает? ловить пробовал?


 
BaRToV   (2003-06-21 13:54) [6]

На строке mov byte ptr [ESI+1], "W"


 
Digitman   (2003-06-21 14:03) [7]


> BaRToV


ну чего ты туда полез, в машкод ?) ошибку искать ?)
говорю же тебе - причина исключения : в фактических параметрах вызова проц-ры ASM1()

фактически передаваемый параметр не должен как минимум :

- быть константой
- иметь размер (буфера строки) менее 2-х байт


 
jel   (2003-06-21 14:18) [8]

>BaRToV (21.06.03 02:40)
>Как будет выглядить ASM втавка
> s1[1] := "W";


asm
mov eax, s1
mov byte ptr [eax], "W"
end;


Работать будет если длина строки хотя бы один символ. Если сторока пустая - скорее всего AV

> На строке mov byte ptr [ESI+1], "W"

а вот это уже s1[2]



 
jack128   (2003-06-21 14:27) [9]


> фактически передаваемый параметр не должен как минимум :
>
> - быть константой

С чего бы это? s1 передается по значению


 
BaRToV   (2003-06-22 01:17) [10]

2 jel ©
Не работает это. Это пробывал первым делом.

2 jack128 ©
Нет, s1 - передается как константа - это факт.

2 Digitman ©
Как быть-то?...

Ну кто-нибудь помогите...


 
jack128   (2003-06-22 01:24) [11]


> procedure ASM1(s1: string);

Это кто писал??


 
BaRToV   (2003-06-22 01:47) [12]

2 jack128 ©

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

Короче говоря, если кто-то может привести конкретный код - отзовитесь. Уж больно много спора на пустом месте... ;-(


 
BaRToV   (2003-06-22 13:41) [13]

Хм.. Ни кто не знает?...


 
sniknik   (2003-06-22 14:52) [14]

конкретный код у тебя под носом лежить см. первый пост Dmk © (21.06.03 03:27)
(твое заявлений что там ошибка без пояснений что и как, является голословным и напускает туману)

а то что код от jel не работает (опять без пояснений как и где), так ведь компиляторы разные (widestring/shortstring как обрабатывают? вот),а если к примеру stdcall поставить параметры совсем по другому будут передаватся и.т.д

вот тебе мой код (который сам мог бы сразу посмотреть), компоновка от D7 (почти уверен D5 сделал бы другой).

procedure TForm1.Button1Click(Sender: TObject);

procedure ASM1(s1: string); {если var s1/ shortstring поставиш будет ошибка}
begin
asm
lea eax, [ebp-$04]
call System.@UniqueStringA
mov byte ptr [eax], "W"
end;
Label1.Caption:= s1;
end;

begin
ASM1("AA");
end;


 
BaRToV   (2003-06-22 21:13) [15]

2 sniknik ©

Спасибо за помощь!!!

> вот тебе мой код (который сам мог бы сразу посмотреть), компоновка от D7 (почти уверен D5 сделал бы другой).

Нет, у меня Д5 и код такой же.
Только исключение: call System.@UniqueStringA, нужно call System.UniqueString, иначе ошибка при компиляции.


 
sniknik   (2003-06-22 22:02) [16]

> Нет, у меня Д5 и код такой же.
а говориш такой же, а у самого call System.@UniqueString A буквы нет в функции. вот тебе и отличие.

ты че пацак дальтоник, чтоли? ;о)) (Кин Дза-Дза, деление на пацаков и чатлан, ссылка)



 
BaRToV   (2003-06-23 03:00) [17]

> ты че пацак дальтоник, чтоли?
Хм... Знание это сила, а твой вопрос тупость.


 
sniknik   (2003-06-23 08:37) [18]

хм... странное отношение к юмору. фильма как понимаю не смотрел, так посмотри не пожалееш.


 
Digitman   (2003-06-23 09:00) [19]


> jack128 © (21.06.03 14:27)
>
> > фактически передаваемый параметр не должен как минимум
> :
> >
> > - быть константой
>
> С чего бы это? s1 передается по значению


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


 
Anatoly Podgoretsky   (2003-06-23 09:18) [20]

BaRToV (23.06.03 03:00)
Где ты вопрос увидел?
Это диагноз.


 
BaRToV   (2003-06-23 16:28) [21]

2 Anatoly Podgoretsky ©

> Это диагноз.
Смеется тот, кто смеется последним...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
1-31242
Relaxxx
2003-06-29 17:36
2003.07.10
Чтение с файла


14-31450
Всеволод Соловьёв
2003-06-22 22:58
2003.07.10
Мыло на мобилки


7-31558
DeadMeat
2003-03-31 21:03
2003.07.10
Защита софта


3-31124
AlexGreG
2003-06-18 08:27
2003.07.10
... Ах, какие деревья ! ...


7-31545
Michael_V
2003-04-21 13:39
2003.07.10
как запретить закрытие приложения по Alt+F4 и ........





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский