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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2013, 21:59   #1
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию Приостановка программы.

Подскажите как затормозить программу, есть ли в ассемблере функции вроде getch() как в Си или input() в Pythone. Благодарю за внимание.
Код:
.386
.model flat,stdcall
option casemap:none
ExitProcess proto:DWORD
GetStdHandle proto:DWORD
WriteConsoleA proto:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
includelib\masm32\lib\kernel32.lib
.data
stdout DWORD ?
msg BYTE " Talking parrot ! ",0dh,0ah
cWritten DWORD ?
.code
start:
invoke GetStdHandle, -11
mov stdout,eax
invoke WriteConsoleA,stdout,ADDR msg,sizeof msg,ADDR cWritten,0
invoke ExitProcess,0
end start
Gtnz8 вне форума Ответить с цитированием
Старый 17.03.2013, 22:30   #2
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Gtnz8, в ассемблере есть инструкции, в нём вообще нет процедур. Подключите msvcrt и используйте getch. Или используйте ReadConsoleInput.
Код:
.data?
ir INPUT_RECORD <>
stdin dd ?

.code
invoke GetStdHandle,STD_INPUT_HANDLE
mov stdin,eax
@@:
invoke ReadConsoleInput,stdin,addr ir,sizeof ir,addr cbytes
cmp ir.KeyEvent.wVirtualKeyCode,1bh
jnz @b
В данном случае выполнение программы продолжится по нажатию клавиши ESC
vadimych вне форума Ответить с цитированием
Старый 17.03.2013, 22:45   #3
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

vadimych видите ли, я совсем ещё зелёный в ассемблере, поэтому не совсем понял что вы предложили.То есть идея понятна, но как реализовать её ? Не могли бы вы переделать мою программу,если не трудно конечно , чтобы она мгновенно не закрывалась в консоли, а я уж дальше буду медитировать.
Gtnz8 вне форума Ответить с цитированием
Старый 18.03.2013, 06:13   #4
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Gtnz8, видите ли, я не понимаю, как можно не понять приведённый мной фрагмент кода для организации задержки? Помедитируйте лучше над справкой msdn.
vadimych вне форума Ответить с цитированием
Старый 18.03.2013, 09:48   #5
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

Ладно и без вас разберусь, не понимаю зачем люди корчат из себя не известно кого, делов то на 2 мин., переписал код, указал на ошибку, взамен пожизненная благодарность.. А вместо этого, бессмысленное утверждение своей высоколобости и примитивизме других .
Gtnz8 вне форума Ответить с цитированием
Старый 18.03.2013, 11:00   #6
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Вам же готовый код дали, добавьте где нужна задержка и все... А вы еще чем-то недовольны. Так что скорее к вам относится:
Цитата:
бессмысленное утверждение своей высоколобости и примитивизме других
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 18.03.2013, 12:41   #7
Gtnz8
Пользователь
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
добавьте где нужна задержка и все... :
Послушайте, вы издеваетесь ? Код приведённый мною скопирован , как вы может быть догадались, из книги Крупника, до этого все результаты программ(простое сложение без знака) смотрел в отладчике Olly, моих знаний,ещё, не достаточно чтобы преобразовать код по совету vadimych.
Попросил всего -то о пустяке(для вас), как задержать программу чтобы увидеть эти два несчастных слова, а меня посылают изучать квантовую механику, чёрт знает что !
Gtnz8 вне форума Ответить с цитированием
Старый 18.03.2013, 12:59   #8
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Gtnz8
а меня посылают изучать квантовую механику, чёрт знает что !
Ezhik Kihze,
вызывайте санитаров, сэр, у нас буйный
Mikl___ вне форума Ответить с цитированием
Старый 18.03.2013, 13:34   #9
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
моих знаний,ещё, не достаточно чтобы преобразовать код
ctrl+c - ctrl+v, ctrl+c - ctrl+v - какие тут еще знания нужны?)))
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приостановка цикла Рыжик чик чик Microsoft Office Word 2 15.04.2011 17:23
Приостановка потока bulldog5293 Работа с сетью в Delphi 19 19.11.2010 18:37
приостановка программы Medwedxxx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 28.07.2010 10:42
Приостановка цикла для выполнения внешней программы Uomo Общие вопросы Delphi 3 04.04.2008 11:48
Приостановка программы Hintman Общие вопросы Delphi 6 14.04.2007 23:38