NEG в сборе - PullRequest
       9

NEG в сборе

3 голосов
/ 30 декабря 2011
neg 3BH

Как я понимаю, я должен получить C5, но я получил C4 (я переключаю каждый 1 на 0 и каждый 0 на 1).В чем проблема?

Ответы [ 4 ]

10 голосов
/ 30 декабря 2011

neg вычисляет отрицательное значение дополнения к двум, а не побитовое отрицательное. Вам понадобится инструкция , а не , или добавьте ее в ответ вручную, чтобы получить желаемый результат.

1 голос
/ 30 декабря 2011

Когда вы рассказываете историю, кажется, что инструкция neg (на любом процессоре, который вы используете) эффективно выполняет xor 3BH с FFH, чтобы дать C4H.К тому результату C4H, который является дополнением к 3BH, добавьте 1, чтобы получить дополнение для двойки.Это даст правильное значение C5H, которое вы хотите.Для ознакомления с дополнениями из них и двух, взгляните на эту довольно неплохую статью в Википедии .

0 голосов
/ 01 ноября 2017

NEG 3Bh эквивалентно нахождению 2's complement.
1-й, найти 1's complement, более быстрый подход - вычесть из 15 (F в гексах).

      15 - 3 = 12 ->C (12 = C in hex)
      15 - 0Bh = 4h OR 15 - 11 = 4h
      then, add 1 to the result.
      C4 + 1 = C5h.

Вот как вы получите C5h в результате NEG 3Bh.

0 голосов
/ 17 июня 2013

neg - это то же самое, что вычитание 0-числа, сделайте это, и вы получите отрицательное число: 0-3BH:

0-00111011:

00000000

11000100 + 1 +


11000101 = C5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...