Отрицательные числа

Тема в разделе "WASM.BEGINNERS", создана пользователем Ams, 4 мар 2009.

  1. Ams

    Ams Дмтирий

    Публикаций:
    0
    Регистрация:
    24 фев 2009
    Сообщения:
    3
    Адрес:
    Воронеж
    Скажите где можно подробно прочитать, как выполнять арифметические операции с отрицательными числами. Или приведите пример такой программы(желательно на TASM'е), если не сложно. А то начал искать информацию в книгах(в Зубкове),
    потратил кучу времени и толком ни в чем не разобрался. Заранее спасибо.
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Абсолютно так же, как и с положительными :) Во всяком случае, сложение и вычитание (а разбираться надо с них). Вот, например, сложение двух чисел (для простоты берём байты):

    Код (Text):
    1.   0110 0101
    2.   1001 0111
    3.   ---------
    4.   1111 1100
    Если считать эти числа числами без знака, получаем в десятичной системе: 101+151=252. Если же мы будем рассматривать их как числа со знаком, то первое так и останется 101, а вот второе будет -105, и результатом их сложения будет -4 -- как раз 1111 1100 в дополнительном коде.

    На заре компьютерной эры отрицательные числа представляли разными способами, но в конце концов от них отказались в пользу дополнительного кода, поскольку в этом случае операции сложения и вычитания чисел без знака и со знаком выполняются абсолютно одинаково, а значит, упрощается устройство процессоров и уменьшается число необходимых команд. В процессорах персоналок (архитектура IA-32), как известно, для сложения используются команды ADD и ADC, разница между которыми заключается только в том, учитывается или нет входной перенос; аналогично дело обстоит и с вычитанием.

    В общем, разбирайтесь с дополнительным кодом. Когда разберётесь, всё станет понятно :)
     
  3. TbI_TyT

    TbI_TyT New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2009
    Сообщения:
    58
    Ams
    Читай, "Низкоуровневое программирование это просто" там азы даются очень даже доступно!