Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 10:25   #1
иванлеон
Пользователь
 
Регистрация: 04.01.2012
Сообщений: 31
По умолчанию Код простейшего таймера ассемблер

Есть у кого нибудь код простейшего таймера на ассемблере, желательно с комментариями?
Спасибо за внимание
иванлеон вне форума Ответить с цитированием
Старый 04.05.2012, 01:55   #2
lunatik_92
 
Регистрация: 19.04.2012
Сообщений: 7
По умолчанию

.
Код:
386P
.MODEL FLAT, stdcall
STD_OUTPUT_HANDLE   equ -11
STD_INPUT_HANDLE        equ -10
TIME_PERIODIC       equ 1
EXTERN lstrlenA@4:NEAR
EXTERN wsprintfA:NEAR
EXTERN timeSetEvent@20:NEAR
includelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\winmm.lib
include c:\masm32\include\kernel32.inc
WriteConsoleA   PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
ReadConsoleA    PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
lstrlenA        PROTO :DWORD
ExitProcess     PROTO :DWORD
timeKillEvent   PROTO :DWORD
GetStdHandle    PROTO :DWORD
__
_DATA SEGMENT   DWORD PUBLIC USE32 'DATA'
HANDL       DWORD ?
HANDL1      DWORD ?
STR3        DB 100 dup(0)
FORM        DB " %lu",0
BUF         DB 200 dup(?)
NUM         DWORD 0
LENS        DWORD ?
ID      DWORD ?
_DATA ENDS
 
_TEXT SEGMENT   DWORD PUBLIC USE32 'CODE'
START:
call        AllocConsole
invoke      GetStdHandle, STD_INPUT_HANDLE
MOV         HANDL1,EAX
invoke      GetStdHandle, STD_OUTPUT_HANDLE
MOV         HANDL,EAX
 
PUSH        TIME_PERIODIC
PUSH        0
PUSH        OFFSET TIME
PUSH        0                      
PUSH        1000                        
CALL        timeSetEvent@20
 
MOV         ID,EAX
 
INVOKE      ReadConsoleA, HANDL1, OFFSET BUF, 200, OFFSET LENS, 0
INVOKE      timeKillEvent, ID
CALL        FreeConsole
INVOKE      ExitProcess, 0
TIME PROC
    PUSHA
    PUSH        NUM
    PUSH        OFFSET FORM
    PUSH        OFFSET STR3
    CALL        wsprintfA
    ADD         ESP,12
    INVOKE      lstrlenA, OFFSET STR3
    INVOKE      WriteConsoleA,HANDL,OFFSET STR3,EAX,OFFSET LENS,0
    INC         NUM
    POPA
    RET         20
TIME ENDP
_TEXT ENDS
END START

Последний раз редактировалось rpy3uH; 04.05.2012 в 09:02.
lunatik_92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код программы Ассемблер!:( gbgtwrfgtw Помощь студентам 2 21.03.2012 15:56
Ассемблер, ASCII код в восьмеричной системе FishTornado Помощь студентам 0 08.10.2011 18:58
проверьте код программы (ассемблер) Стас_с Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.07.2011 21:30
Перевести в код на Ассемблер dimon305 Помощь студентам 0 18.05.2010 20:07
написать ассемблер-программу,выводящую на экран скан-код sashok2009 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 08.06.2009 22:11