![]() |
|
|
![]()
|
|
| DrWeb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 25.11.2007 Где: Украина, Донецк Репутация: нет Всего: 1 |
Задачка: дан массив байтов.Посчитать количество нулевых битов. Это как делать - с помощью команды bt?Или есть другие варианты?подскажите
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| DrWeb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 25.11.2007 Где: Украина, Донецк Репутация: нет Всего: 1 |
Akina, спасибо
а вот задачка: X[i]=Y[i]+C*Z[i]/16 , все это массивы слов Вот мой код,но он наверно тупой=)я готовлюсь к экзамену-подскажите что исправить плиз
|
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
массивы нумеруются с 0
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
| DrWeb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 25.11.2007 Где: Украина, Донецк Репутация: нет Всего: 1 |
Я знаю,что с 0.У меня ж массив слов-вот я и записываю все время во втрой байт результат.Лучше подскажите как оптимизировать код
|
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
DrWeb, смысл умножать на 1 (C=1)?
для деления на степени двойки используется сдвиг вправо в ассемблере линейные массивы лучше обрабатывать с конца
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
DrWeb, так а вообще твой код работает как надо?
1) Результат у тебя массив - а выводишь на экран одну цифру 2) С такой нумерацией элементов массивов по-моему первые эл-ты вообще не обрабатываются, а в конце происходит выход за пределы массива. 3) X[2], Y[si+1] это кажись не обращение ко второму байту в слове массива, а обращение ко второму слову в массиве. Но здесь я не уверен -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
ksili, именно ко второму байту -- расположение числа в памяти перевернуто 12345678h --> db 78h, 56h, 34h, 12h
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Не, я просто предполагал, что раз тип массива - dw, и для индексации используется регистр размером в слово, то и смещение должно считаться по словам, а не по байтам.
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
DrWeb, я понимаю задача учебная, но ты хотя бы двузначные числа в массив Y и Z поставил -- иначе при делении Z[i] на 16 получается 0 и тогда X[i]=Y[i] наверное, можно сразу выводить результат в текстовую строку для последующего вывода на экран
|
|||
|
||||
| DrWeb |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 25.11.2007 Где: Украина, Донецк Репутация: нет Всего: 1 |
эт чтобы удобней было считать результат вручную=)
Да - результаты выводит правильные. Я их так вывожу:
Вроде рабочий код получился:
|
||||||||
|
|||||||||
| Mikl_ |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
DrWeb, не может у тебя правильно получится у тебя Y и Z содержат по 12 элементов
а в массив X ты выводишь всего 6
Это сообщение отредактировал(а) Mikl_ - 16.1.2009, 04:54 |
||||
|
|||||
| DrWeb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 25.11.2007 Где: Украина, Донецк Репутация: нет Всего: 1 |
Mikl_, ну ж соответственно и выводил ток первые 6 элементов
и выводится правильные результат) Это все равно думаю на экзамене прокатит, а так,Mikl_, спасибо за советы |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |