Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c