Запишите максимум две инструкции для очистки, установки и дополнения некоторых битов в регистре AL. - PullRequest
7 голосов
/ 26 апреля 2010

Вы должны написать максимум две инструкции по сборке, чтобы сделать следующее:

  1. Сбросить биты 0 и 7 регистра AL, т.е. сделать их 0
  2. Установить биты 3 и 4 регистра AL, то есть сделать их равными 1.
  3. Дополняют биты 1 и 5 регистра AL.
  4. Сохраните все остальные биты в регистре AL без изменений их значений.

Ответы [ 2 ]

9 голосов
/ 27 апреля 2010

Хитрость заключается в следующем:

  1. используйте инструкцию ИЛИ для установки битов 0, 3, 4 и 7

  2. использовать инструкцию XOR для дополнения биты 0, 1, 5 и 7

Обратите внимание, что биты 0 и 7 сначала устанавливаются в (1), а затем очищаются в (2).

Я оставлю вам настоящие инструкции asm, так как это ваша домашняя работа, в конце концов.

4 голосов
/ 26 апреля 2010

Одна инструкция БД, определяющая массив из 256 «результатов» значений, и одна инструкция перемещения для перемещения элемента этого массива в al, используя текущее значение в al в качестве индекса.

Разве это не сработает?

Можно даже утверждать, что на самом деле это даже решение с одной инструкцией, поскольку БД на самом деле не является инструкцией, выполняемой во время выполнения, а декларативной во время компиляции.

...