汇编学习之多线程技术的实现
在现在我们调试程序的时候经常会碰到多线程的程序,而且的确多线程由于可以实现一个程序中实现多个任务,所以在今天的程序中运用的也比较多,但是实现它高级语言和汇编会有什么区别呢?怎么实现呢?
首先说明一下每一个线程都有自己独立的堆栈,局部变量也是私有的
创建线程的语法是
代码:
CreateThread proto lpThreadAttributes:DWORD, dwStackSize:DWORD, lpStartAddress:DWORD, lpParameter:DWORD, dwCreationFlags:DWORD, lpThreadID:DWORD
事件对象问题,事件对象处于无信号状态,表示线程“睡眠”,线程不接受CPU时间片,当处于有信号状态,windows唤醒线程,进入CPU时间片
言归正传,实现代码
代码:
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM,lParam:LPARAM .IF uMsg == WM_COMMAND mov eax,wParam .if lParam ==0 .if ax == IDM_CREATE_THREAD mov eax,OFFSET ThreadProc invoke CreateThread,NULL,eax,0,ADDR ThreadID invoke CloseHandle,eax .else invoke DestroyWindow,hWnd .endif .endif .endif ret WndProc endp