1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
| Rocket |
9.03.2009 22:56
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Доброго времени суток, уважаемые форумчане!
Мне очень эта программа напоминает металлоискатель : ) Пока что я сделал только перемещение символа "*" с помощью букв w,s,a,d.
Не могу понять, почему "вверх" не срабатывает с первого раза? приходится повторно нажимать "w", в результате мы поднимаеся не на одну позицию, а на две... И как сделать какую-нибудь очистку экрана? чтоб очищать консоль и на экран выводился только один символ "*" . |
![]() ![]() |
| andriano |
10.03.2009 8:31
Сообщение
#2
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
1. Звук генерится посредством 53 таймера, причем его прохождение на динамик еще надо разрешить. Конкретных номеров портов навскидку не помню - давно не программировал под DOS.
2. х86 процессор не имеет аппаратных средств для генерации случайных чисел. Это ответ на твой вопрос - есть ли в ассемблере рандом. Но можно сделать программно генератор псевдослучайных чисел. Например, конгруэнтный. А инициализировать его (аналог randomize) чем-то, связанным с текущим временем. Хотя бы содержимым ячейки 0040:006c. |
| TarasBer |
10.03.2009 14:50
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
2. х86 процессор не имеет аппаратных средств для генерации случайных чисел. Это ответ на твой вопрос - есть ли в ассемблере рандом. Но можно сделать программно генератор псевдослучайных чисел. Например, конгруэнтный. А инициализировать его (аналог randomize) чем-то, связанным с текущим временем. Хотя бы содержимым ячейки 0040:006c. Я приведу дельфийскую реализацию рандома.
Это для 32х-разрядного проца. Смысл в том, что число RandSeed умножается на спец.константу $08088405, и увеличивается на 1. Так получается новое число RandSeed. А для того, чтобы из этого рандсида извлечь число, этот рандсид умножается на границу. И то, что вылезло за пределы 32 бит (оно автоматически пихается в регистр EDX) - и выдаётся как результат функции. Для 16-битного проца, думаю, можно сделать аналогично, надо только знать, куда команда MUL пихает результат, а куда - то, что вылезло за пределы. И какова спец.константа для 16-битного случая - я не знаю. -------------------- |
Rocket Игровая программа 9.03.2009 22:56
volvo Функция 06h прерывания 10h (прокрутка окна вверх) ... 9.03.2009 23:46
Rocket
Функция 06h прерывания 10h (прокрутка окна вверх)... 10.03.2009 0:33
TarasBer А турбо-паскальный рандом такой же. Я не нашёл мен... 10.03.2009 16:00
volvo По поводу генерации звуков - когда-то 7in на одном... 10.03.2009 20:06
Rocket
По поводу генерации звуков - когда-то 7in на одно... 12.03.2009 21:32
andriano
Использую эту процедуру в программе, динамик изда... 12.03.2009 21:52
Rocket После долго перерыва возвращаюсь к выполнению этог... 14.05.2009 20:26
volvo Как обычно: функция генерации случайного числа от ... 15.05.2009 0:33
Rocket
Как обычно: функция генерации случайного числа от... 15.05.2009 15:49
Rocket В интернете как-то мало материала по этой теме, та... 16.05.2009 0:13
Rocket Что-то вопрос о random'е намертво забуксовал..... 18.05.2009 20:29
volvo Ничего не забуксовало... Просто до ассемблера надо... 22.05.2009 12:16
volvo Вероятно, в те моменты, когда звук не нужен, его н... 22.05.2009 14:44
Rocket
Вероятно, в те моменты, когда звук не нужен, его ... 22.05.2009 15:36
volvo Сомневаюсь... Какие ж варианты еще? А что не нрави... 22.05.2009 15:58
Rocket
Сомневаюсь... Какие ж варианты еще? А что не нрав... 22.05.2009 16:06
volvo Очень просто... Вот тут есть пример практически то... 22.05.2009 16:23
Rocket
Очень просто... Вот тут есть пример практически т... 22.05.2009 16:43
volvo Почему я? Кто привел тебе этот код, тот пускай и с... 22.05.2009 17:54
Rocket Чтобы получить разные последовательности - занеси ... 22.05.2009 18:38
Rocket
Почему я? Кто привел тебе этот код, тот пускай и ... 22.05.2009 22:02
TarasBer
Почему я? Кто привел тебе этот код, тот пускай и ... 23.05.2009 19:35
volvo То есть, у тебя не отрабатывает вот это (переимено... 22.05.2009 19:05
Rocket То есть, у тебя не отрабатывает вот это
Спасибо... 22.05.2009 21:21
volvo AL взять и использовать, вот и байт тебе... 23.05.2009 0:16![]() ![]() |
|
Текстовая версия | 9.12.2025 1:27 |