![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
Гость_Андрей |
![]()
Сообщение
#1
|
Гость ![]() |
Привет спецам...
Вот пытаюсь разобраться с этим "зверем" - Assemblerом. Нужно написать лабораторную по графике - бегущая по горизонтали точка. Вот чегой то накарякал, точка пробегает справа на лево 1 раз, только очень быстро, глазу не заметно... А как вставить в Assemblerе регулируемую паузу? Есть ли какая ф-ция для етого? А может это все можно написать по другому, более толково? Буду рад любой помощи и советам. .model tinyЗаранее благодарен. |
![]() ![]() |
Shadow |
![]()
Сообщение
#2
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
тебе нужно что бу постоянно бегала до выхода по клавиши??
-------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Гость_Андрей |
![]()
Сообщение
#3
|
Гость ![]() |
В принципе да.
По нажатию клавиши - выход. |
BlackShadow |
![]()
Сообщение
#4
|
Гость ![]() |
1). Метку ekran надо сместить на строку ниже.
2).
Вполне модно заменить на один INC CX. 3). Подытожим: Вот... А паузу можно всунуть по-разному... Можно хоть int 8h перехватывать, а можно просто - через int 21h получать время и работать с миллисекундами. |
Guest |
![]()
Сообщение
#5
|
Гость ![]() |
Спасибо за совет.
По нажатию клавиши действительно нужно: jnz done ... Большая просьба поподробнее описать процедуру организации паузы. Именно она меня и интересовала. Если можно кусочек кода. Хочется сделать так: по нажатию клавиши "+" - беготня ускоряется; по "-" - замедляется. |
BlackShadow |
![]()
Сообщение
#6
|
Гость ![]() |
XOR AH,AH
INT 16h В AX возвращает код клавиши. Есди это что-то простое типа "+" или "-", то AL соответствует этому символу. Если же что по-сложнее типа F1, то в AL - 0, а в AH дополнительный код клавиши. А вот про паузу я тебе ничего конкретно сказать не могу - нету у меня доки под рукой ![]() |
BlackShadow |
![]()
Сообщение
#7
|
Гость ![]() |
Нашёл. Очень даже не плохо.
XOR AH,AH INT 1Ah Возвращает в CX:DX (CX << 16 + DX) кол-во тиков таймера с момента сброса (Reseta компа). получаешь какое-то значение, ждёшь пока оно изменится на нужное тебе кол-во и ваяешь дальше. Тик генерируется 18.2 раза в секунду. Итого: 1 секунда = 18 тиков 1 минута = 1092 1 час = 65543 1 сутки = 1573040 Вот так. |
Гость_Андрей |
![]()
Сообщение
#8
|
Гость ![]() |
Большое спасибо за умную мысль.
Премного благодарен... |
BlackShadow |
![]()
Сообщение
#9
|
Гость ![]() |
Это я премного благодарен.
Хоть какое-то развлечение, а то от работы у меня уже крыша едет. JSP меня явно добъёт. |
Андрей |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 5 Репутация: ![]() ![]() ![]() |
Нашел как установить нужную задержку.
Может кому интересно: timer: |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 2:58 |