![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
marwell |
![]() ![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
доброго дня
необходимо подсчитать количество нулей и единиц в двоичной записи числа .model small ; Модель памяти считает неправильно, хотя вроде логически правильно понимаю задачу. Буду рад помощи P.S. с ассемблером еще только знакомлюсь |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Очень сложно ты это все делаешь. Смотри:
.model small ; Модель памяти |
marwell |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
Очень сложно ты это все делаешь. Смотри: .model small ; Модель памяти спасибо большое! а вообще сама идея того как я пытался сделать, она верная? |
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата а вообще сама идея того как я пытался сделать, она верная? Не совсем.Цитата mov ax, result ![]() |
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
А разве нет готовой команды для определения кол-ва битов? Что-то из серии bsf, bsr
-------------------- |
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
BSF/BSR просто находят первый установленный бит (слева или справа, соответственно). Можно, конечно, заморочиться с этими командами, и сдвигать AX не на 1 бит каждый раз, а если есть несколько подряд идущих нулей - пропускать их сразу. Если у тебя число типа 1000011 - выиграешь несколько тактов (может быть. А может и проиграешь).
|
marwell |
![]()
Сообщение
#7
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не совсем. Сравниваешь AX с 1? А почему там должна быть 1-ца, если, скажем, BX = 00010000b. Сравнивать надо с 0, и если AX != 0 - значит, тот бит AX, в котором сейчас в BX находится 1-ца, тоже выставлен в 1. А если AX = 0 - значит, соответствующий бит сброшен. Понимаешь логику? ![]() теперь да, понимаю. Спасибо Примерно то же и я имел ввиду |
![]() ![]() |
![]() |
Текстовая версия | 9.05.2025 11:02 |