Маразм... откровение наСильника

Discussion in 'WASM.HEAP' started by Lyzzard, Sep 26, 2005.

  1. Lyzzard

    Lyzzard New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2005
    Messages:
    5
    Location:
    Russia
    Летом месяц кодил на асме (осваивал, типа), Це вообще не трогал. Потом друг-паскалист звонит:

    - слушай, я тут с линуховыми сырцами разбираюсь, чё значит выражение (1 << 8) ?

    - ну эээ... там оператор побитового сдвига, только как ты собрался константу сдвигать?..



    (это мне, значит, привиделось shl 1, 8 ...)
     
  2. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Операции над константами делаются на этапе компиляции. Никаких сдвигов там не будет. Будет сразу 256.
     
  3. Lyzzard

    Lyzzard New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2005
    Messages:
    5
    Location:
    Russia
    Я о том и говорю... А в асме что будет при попытке сделать shl 1, 8, а? :) То-то же.
     
  4. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Ну почему же? Например компиллер МОГ БЫ сделать так:



    srand(1 << 8);



    ==>



    mov eax,1

    shl eax,8

    push eax

    call [srand]

    add esp, 4
     
  5. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    Lyzzard

    А вот не нужно отрывать часть выражения от остального. В каком контексте оно было использовано?



    Возьмём, например, код:

    int i = 12 + (1 << 8).



    На асме можно написать аналогично:

    mov ,12 + (1 shl 8)
     
  6. Lyzzard

    Lyzzard New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2005
    Messages:
    5
    Location:
    Russia
    IceStudent

    Вот-вот, это я уже потом допетрил. А тогда я пребывал в состоянии глубочайшего транса (где-то на полпути к дзену - первый месяц... знакомые ощущения?), и не сразу врубился, что к чему...