![]() |
|
![]() ![]() ![]() |
|
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Изучаю асму. Но удивило, что при передаче параметра в асм-функцию переменная заполнена мусором.
Делаю так(Дельфи):
И еще маленький вопросик - чем отличается объявление @m1 от @@m1? Всем заранее спасибо. P.S. Сори за простенькие вопросы - пару дней как книжку читаю. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Guest |
|
|||
Unregistered |
Ничем, только именем. Странно, что функция с одним параметром, а ты передаешь два параметра... Ну это ладно, видимо забыл сделать так: function TestLoop(Value,Count:integer):integer; В таком случае надо использовать не cx, а ecx, т.к. loop без префиксов работает с ecx - получается, что в старших 16-битах ecx содержится мусор, из-за этого видимо у тебя и выдает неправильный результат... Хотя mov cx, Count не откомпилировалось бы... Приведи правильный код. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Это я был выше...
Это сообщение отредактировал(а) p0s0l - 18.9.2003, 06:20 -------------------- С уважением, г-н Посол. |
|||
|
||||
<Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Ах да)) Эт я сначала писал одно, потом другое проверил и в итоге забыл поменять:
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Если не делать ZeroMemory(@int,4), то все повисает - в чем дело?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Все спасибо, при использовании ecx все стало нормально
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Дело было в том, что после Randomize в ECX было какое-то большое число. Последующие Random'ы ecx не трогали, поэтому когда в ты загружал CXпеременную Count, в старших 16-битах ecx был мусор - из-за этого цикл был у тебя офигенно длинным... Если же поставить ZeroMemory, то она обнуляет ECX - ну и дальше понятно, что будет все нормально... -------------------- С уважением, г-н Посол. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |