Четверг, 17.07.2025, 21:37
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
.:: Меню ::.
.:: Категории каталога ::.
Разное [5]
Различные темы по программированию
Пакет SWT [4]
Практикуемся в написании оконных приложений на Java
Среды разработки, компиляторы и т.п [3]
Сравнения, описания, плюсы и минусы сред разработки. Сравнение компиляторов.
Java [8]
Объектно-ориентированные соображения.
Си++ [19]
Коротко и ясно
Ассемблер [6]
Машинные коды, побитно :)
Форма входа
.:: Поиск ::.
.:: Дополнительно ::.
    Хостинг от Loqo.ru
             .:: Коментируем ::.
Главная » Статьи » Текстовый материал » Ассемблер

Выдвигаем подставку под пиво программно
Впервые увидел эту программку написанную на FASM, вот решил на MASM переписать
Звучит так, как будто я целый месяц лопатил.
На самом деле это простейшая программа, даже программой её назвать язык не поварачивается.
Несколько вызовов одной функции mciSendString
Code

.386
.model flat, stdcall
option casemap :none

include windows.inc
  include user32.inc
  include kernel32.inc
  include winmm.inc
   
  includelib user32.lib
  includelib kernel32.lib
  includelib winmm.lib
   
  .data
  _message db 'Нужна подставка под пиво ?',0
  _caption db 'Конфигурация',0
_cmd_open db 'open cdaudio',0
_cmd_dopen db 'set cdaudio door open',0
_cmd_dclose db 'set cdaudio door closed',0
_cmd_close db 'close cdaudio',0

.code
start:
  invoke MessageBox,0,offset _message, offset _caption,MB_ICONQUESTION+MB_YESNO
  cmp eax,IDYES
  jne exit
  invoke mciSendString,offset _cmd_open,0,0,0
  invoke mciSendString,offset _cmd_dopen,0,0,0
  invoke mciSendString,offset _cmd_close,0,0,0
jmp exit1

exit:
  invoke mciSendString,offset _cmd_open,0,0,0
  invoke mciSendString,offset _cmd_dclose,0,0,0
  invoke mciSendString,offset _cmd_close,0,0,0
exit1:
  invoke ExitProcess,0

end start

Вот такая супер программа.
MB_ICONQUESTION и MB_YESNO, а также IDYES (правда IDYES не видит winAsm почему-то)- константы, находящиеся в windows.inc
Остальной код очевиден я полагаю.

Логика простая.
Вызывается окошко с вопросом и двумя кнопками для ответа (MB_YESNO - эта константа нам в помощь)
В случае положительного ответ - лоток выдвигается и программа заканчивает свою работу, иначе лоток закрывается и прога закрывается.
Если доработать, то можно закрывать и открывать по нажатию на кнопку.
Думаю разберётесь, если заинтересуетесь.

Категория: Ассемблер | Добавил: C0demaker (24.03.2010)
Просмотров: 1412 | Рейтинг: 0.0/0
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ant1 © 2025