MOVSX наоборот

Discussion in 'WASM.BEGINNERS' started by _evil, Dec 14, 2018.

  1. _evil

    _evil Member

    Blog Posts:
    0
    MOVSX для расширения разрядности, а как чтобы из большего в меньшее со знаком?
     
  2. SadKo

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

    Blog Posts:
    8
    SAR
     
  3. q2e74

    q2e74 Well-Known Member

    Blog Posts:
    0
    знак он где? в rax или во влагах? разрядности, это ah и al? Судя по вопросам в другой теме вам надо погуглить вокруг Application binary interface
     
  4. _evil

    _evil Member

    Blog Posts:
    0
    понял ... фигню спросил ...
    простым mov-ом будет со знаком
     
  5. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    SadKo, SAR это знаковое деление на 2N,
    _evil, тут необходимо смотреть на диапазон, и если к примеру -128<N<128 использовать AND MASK
     
  6. SadKo

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

    Blog Posts:
    8
    Да, согласен, немного по-другому понял вопрос.
     
  7. f13nd

    f13nd Well-Known Member

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