Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 13:31   #1
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию Инструкция and.

Всё чаще стал встречаться с этой инструкцией. Почитал про неё, и говорят, что она довольно полезная. Посмотрел в отладчике парочку примеров собственно написанных вроде

Код:
mov eax, 16
and eax, 2F3Fh
Но никак не могу понять, что происходит с числами. Объясните пожалуйста если не лень).
Ibanez Wizard вне форума Ответить с цитированием
Старый 23.02.2011, 13:37   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Побитовый and

Цитата:
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1
> говорят, что она довольно полезная

угу, как и все остальные инструкции )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 23.02.2011, 13:42   #3
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Ibanez Wizard, инструкция and - это логическое(побитовое) умножение. В Вашем случае в eax останется 16.
vadimych вне форума Ответить с цитированием
Старый 23.02.2011, 13:49   #4
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

ну а к примеру
16 and 56 сколько будет?
Ibanez Wizard вне форума Ответить с цитированием
Старый 23.02.2011, 13:57   #5
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

просто мы в школе проходили логическое умножение, но операции с числами не делали
51 and 98 =32
Почему именно 32 получилось (это я в calc посчитал)
Ibanez Wizard вне форума Ответить с цитированием
Старый 23.02.2011, 14:07   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

51 = 33h = 0011 0011
98 = 62h = 0110 0010
----- and ------------
34 = 22h = 0010 0010

(не знаю, как у вас 32 получилось ))
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 23.02.2011, 14:08   #7
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

А я похоже цифру перепутал:D.
Спасибо) Теперь понял).
Ibanez Wizard вне форума Ответить с цитированием
Старый 23.02.2011, 14:14   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

34. Результат равен 1, если А и В = 1

Код:

  0110011 (51)
∧
  1100010 (98)
  --------
  0100010 (34)

Часто используется как маска, если нужно отпилить половину dword'a, например, или узнать значение какого-то бита...

Код:

  1234ABCDh  (10010001101001010101111001101) 
∧
  0000FFFFh  (00000000000001111111111111111)
  ----------
  0000ABCDh  (00000000000001010101111001101)


Вообще это всё есть в школьном курсе информатики и любой программист знать такие азы обязан :\
пыщь
JTG вне форума Ответить с цитированием
Старый 23.02.2011, 14:25   #9
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию

0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1

На счет этого я и так знал). Просто меня не допирало, что нужно в bin сначала перевести, а потом таким образом считать.
Ibanez Wizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция Execute Desha Microsoft Office Access 6 10.06.2010 20:11
Инструкция по настройке MASM veli-na Помощь студентам 0 29.01.2010 14:01
Инструкция программисту Desha Помощь студентам 10 19.11.2009 21:45
Инструкция Create Index SfSpawN SQL, базы данных 2 12.06.2009 07:31