Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1100685284
petrovsky
2004-11-17 12:54
2004.12.05
Как изменить имя профиля в Windows XP?


14-1100603568
BorisUK
2004-11-16 14:12
2004.12.05
Задачка для второго класса церковно-приходской школы, придуманная


1-1100882886
aliced
2004-11-19 19:48
2004.12.05
Incopatible types: String and Char


1-1100967790
Matrex
2004-11-20 19:23
2004.12.05
TList и расход памяти


8-1094471202
L@rs
2004-09-06 15:46
2004.12.05
BINK32W.DLL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский