Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

Thread и ассемблер   Найти похожие ветки 

 
Dima   (2004-11-17 14:02) [0]

Вопрос такой :
Есть код на ассемблере и его нужно запустить в отдельном потоке. Но поток почему-то не работает ( т.е. не запускается). Хотя в основном потоке код работает нормально. Может кто сталкивался с такой проблемой. Могу скинуть код потока.


 
Digitman ©   (2004-11-17 14:06) [1]


> Могу скинуть код потока


приводи ПОЛНЫЙ код поточной ф-ции и пример ее старта


 
Dima   (2004-11-17 14:11) [2]

unit Unit6;

interface

uses
 Classes;

type
 demo = class(TThread)
 private

   { Private declarations }
 protected
   procedure Execute; override;
   procedure Sound(Frequency, Duration: Integer);
 end;

implementation
uses Unit4;

procedure demo.Execute;
var
start1,n1: word;
begin
for n1:= 0 to 20 do
start1:=n1+200;
sound(start1,100);

end;

procedure demo.Sound(Frequency, Duration: Integer);
asm
 cmp   Win32Platform, VER_PLATFORM_WIN32_NT
 jne   @@9X
 push  edx
 push  eax
 call  Windows.Beep
 ret
@@9X:
 push  ebx
 push  edx
 mov   bx,  ax
 mov   ax,  34DDh
 mov   dx,  0012h
 cmp   dx,  bx
 jnc   @@2
 div   bx
 mov   bx,  ax
 in    al,  61h
 test  al,  3
 jnz   @@1
 or    al,  3
 out   61h, al
 mov   al,  0B6h
 out   43h, al
@@1:
 mov   al,  bl
 out   42h, al
 mov   al,  bh
 out   42h, al
 call  Windows.Sleep
 in    al,  61h
 and   al,  0FCh
 out   61h, al
 jmp   @@3
@@2:
 pop   edx  
@@3:
 pop   ebx
end; }
end.


 
Fay ©   (2004-11-17 14:14) [3]

М.б.
for n1 := 0 to 20 do
 begin
  start1:=n1+200;
  sound(start1,100);
 end;


?


 
Digitman ©   (2004-11-17 14:17) [4]

все ясно.

3 вопроса к тебе :

1. ОС, под которой вся эта петрушка тобой запускается ?
2. С чего ты взял, что трэд-ф-ция "не запускается" ?
3. Ощущаешь ли разницу между "не запускается"  и "запускается, но делает черт те что, но только не то что я ожидал" ?


 
Dima   (2004-11-17 14:18) [5]

Fay : вряд-ли... я уже экспериментировал там.. по всякому.. грабли не там :(


 
Dima   (2004-11-17 14:21) [6]

Digitman :
1. XP
2. Предположение...
3. Ощущаю :)
Может он запускается, но ведь молчит зараза :)


 
Digitman ©   (2004-11-17 14:25) [7]


> Dima   (17.11.04 14:21) [6]



> 1. XP


т.е. якобы не отрабатывает call  Windows.Beep ?


> 2. Предположение...


это - гадание на кофейной гуще


> 3. Ощущаю


опять же - гадание.

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


 
Dima   (2004-11-17 14:30) [8]

ОК. Попробую...



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

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
1-1100762824
denis24
2004-11-18 10:27
2004.12.05
проверка Tbitmap помещаемого в image


3-1099463364
Sour
2004-11-03 09:29
2004.12.05
MySQL


14-1100536294
kaZaNoVa
2004-11-15 19:31
2004.12.05
Психологические вирусы ?


4-1098366299
Serega41
2004-10-21 17:44
2004.12.05
Как перехватить сообщения от OutputDebugString, DbgPrint?


14-1100757653
sniknik
2004-11-18 09:00
2004.12.05
Разминка к пятнице, легкая задачка на четверг...