Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 3

Как вывести в окно Edit результат работы asm вставки!

21.11.2012, 15:04. Показов 1787. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, Уважаемые Форумчане!
Столкнулся с такой проблемой, потратил несколько суток,разбил лбом несколько столешниц, истерзал гугл, но, видимо, ламерству моему предела нет.

Дело в том, что мне нужно вывести в окно Edit2 результат работы ассемблерного цикла, который шифрует
строку, введенную в Edit1.

Нижеприведенная программа вылетает со свистом сразу же после нажатия на Баттон1((( почему-мне невдомек.

P.S. Простите меня, нуба грешного

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure TForm1.Button1Click(Sender: TObject);
var
name,key:string;
p_name,p_key:^string;
n:integer;
 
begin
name:=Edit1.Text;
New(p_name);
p_name: [MENTION=128]name[/MENTION];
 
New(p_key);
n:=length(name);
asm
 MOV ESI,p_name //Указатель на имя пользователя
 MOV EDI,p_key //Указатель на ключ
 XOR EAX,EAX
 XOR EBX,EBX
 MOV BL,1Ah
@@m:
mov al,byte ptr [esi]//вводим в ал первый байт имени
add al,cl //и производим с ним превращения
xor al,cl
div bl
shr ax,8
add al,41
mov byte ptr [EDI],AL//после чего выводим шифрованный байт по адресу, указанному в edi
INC EDI//смещаемся по строке вправо
INC ESI//чтобы взять следующий символ
INC ECX
cmp ecx,n //если не конец строки
jne @@m //крутим цикл
 
     end;
//Каким образом можно вывести в поле Edit2 строку, которая содержится
//по адресу, указанному в EDI
//Edit2.Text:=p_pass^; пробовал, никак:(
  end;
 
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2012, 15:04
Ответы с готовыми решениями:

Как вывести результат работы в окно (графический интерфейс)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Bank fr1=new Bank(); ...

Массив: вывести следующий элемент после максимального (asm-вставки)
Помогите пожалуйста сделать задачу. нужно вывести следующий элемент после максимального. #include <conio.h> #include...

Вычислить уранение в Masm и вывести результат результат в окно
y=(a-b)*(b-c)/a a=4 b=3 с=2

5
angstrom
21.11.2012, 15:36
Пробуй прошагивать в дебагере и не забывай сохранять "обязательные" регистры на стеке перед их использованием и восстанавливать при выходе - ESI, EDI, EBX
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 3
21.11.2012, 20:43  [ТС]
Пробовал прошагать стандартным дебагером в составе 10лайт дельфи, ну ничего подозрительного не происходит, прога вылетает только на при попытке вывести значение Edit2.text:=. Сторонний дебагер ругнулся что энтри поинт вне модуля, это как я понимаю головолом полный.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
21.11.2012, 20:55
Так p_pass у тебя вообще нигде в коде не встречается. Может
Delphi
1
Edit2.Text:=p_name^;
должно быть или типа того?
1
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
21.11.2012, 21:57
Это что, идея-фикс что ли - реализовать вывод именно в BASM ?

Цитата Сообщение от Джихадо Посмотреть сообщение
по адресу, указанному в edi
в edi у тебя вовсе не то что ты ожидаешь.
и в esi тоже.
1
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 3
22.11.2012, 08:06  [ТС]
Пробовал.
И так пробовал Edit2.text:=String(p_key^);
вообще ничего, результат тот же.

Добавлено через 5 минут
Цитата Сообщение от mss Посмотреть сообщение
Это что, идея-фикс что ли - реализовать вывод именно в BASM ?



в edi у тебя вовсе не то что ты ожидаешь.
и в esi тоже.
Дело еще осложняется тем, что олли дбг начинает материться насчет неверной точки входа, так что сторонними средствами посмотреть, что происходит в памяти не смог. Отладчик, входящий в состав стандартного компилера показывает что все, что я ожидаю от регистров, выполняется.
Что касаемо идеи-фикс, дело в том, что этот кусок кода, я, признаться, выдрал из готового работающего алгоритма, потому что попытка написать подобный в делфи потерпела крах, нуб, такой нуб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2012, 08:06
Помогаю со студенческими работами здесь

Как при нажатии на кнопку вывести результат функции в окно?
Здравствуйте. Использую python 2.7.5, PyQt 4.8.4. (я правда совсем новичок еще). Сейчас я могу создать окно с кнопкой, нажимая которую,...

Как вывести результат работы компонента?
Здравствуйте! Создал компонент отображения текущей даты $arResult = date("Y-m-d"); $this->IncludeComponentTemplate(); и...

Как установить обработчик прерывания внутри asm-вставки?
Пишу dll-ку, в ее Main, есть такой кусок кода с asm-вставкой. Эта вставка ищет ImageBase модуля этой dll. Но прога валится, на...

ATMega16 (AVR Studio, ASM) - Вывести результат на светодиоды по схеме
Ребят, помогите, пожалуйста, с решением задачи, не получается вывести результат на светодиоды по схеме((((в асемблере только, только начала...

Как результат работы программы вывести на экран
Помогите пожалуйста дополнить две програмки(смысл первой програмки в том что даны два массива А и В ,и из первого массива символы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru