MOVSX наоборот

Тема в разделе "WASM.BEGINNERS", создана пользователем _evil, 14 дек 2018.

  1. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    MOVSX для расширения разрядности, а как чтобы из большего в меньшее со знаком?
     
  2. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    SAR
     
  3. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    988
    знак он где? в rax или во влагах? разрядности, это ah и al? Судя по вопросам в другой теме вам надо погуглить вокруг Application binary interface
     
  4. _evil

    _evil Member

    Публикаций:
    0
    Регистрация:
    28 сен 2003
    Сообщения:
    61
    понял ... фигню спросил ...
    простым mov-ом будет со знаком
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.709
    SadKo, SAR это знаковое деление на 2N,
    _evil, тут необходимо смотреть на диапазон, и если к примеру -128<N<128 использовать AND MASK
     
  6. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Да, согласен, немного по-другому понял вопрос.
     
  7. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    Знак это старший бит поля всегда (1 - отрицательное число из всех оставшихся разрядов), конструкцией типа:
    Код (Text):
    1. test rax,10000b
    2. je @F
    3. or rax,not 1111b
    4. @@:
    можно с любой произвольной длины поля расширять число со знаком, а в меньшую сторону просто отбрасываешь лишние разряды.