Главная страница
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.06 c
1-1100783805
opoloXAI
2004-11-18 16:16
2004.12.05
печать TStrings в TQuickRep.


1-1100772746
CCCP
2004-11-18 13:12
2004.12.05
Эскизы страниц


8-1091099262
WondeRu
2004-07-29 15:07
2004.12.05
DirectShow. Как воспроизвести сразу 2 видеокамеры?


14-1100074668
Суслик
2004-11-10 11:17
2004.12.05
Где купить delphi6 со всеми сервис паками?


14-1100658752
uses-mind.dll
2004-11-17 05:32
2004.12.05
нужен русский хелп для дэльфи 6, встраиваемый в среду .