способы обнуления eax

Тема в разделе "WASM.ASSEMBLER", создана пользователем _edge, 12 июл 2005.

  1. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    давайте собирать коллекцию :]



    пример:

    mov eax,0 ;5 байт

    sub eax,eax ;2 байта (pmode32)

    xor eax,eax ;2 байта



    использование других регсов не запрещено, но особо

    и не приветствуется.
     
  2. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    вот еще.. >:]



    push ecx

    loop $

    xchg ecx,eax

    pop ecx
     
  3. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    and 0



    push 0/pop eax
     
  4. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    lea eax, [00000000]
     
  5. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    bswap ax

    movzx eax,al / movzx eax,ax / shl eax,16...31
     
  6. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Что, xor eax,eax уже не хватает? Способов можно придумать миллион.

    --------

    shr eax,32

    --------

    shl eax,32

    --------

    mov eax,7FFFFFFFh

    @@:

    dec eax

    jnz @B

    --------

    mov eax,0FFFFFFFFh

    @@:

    dec eax

    jnz @B

    --------
     
  7. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348




    Не катит - сдвиг на ноль регистр неизменит =)
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Одна тема такая уже улетела, решили новую создать?

    Не повторяйтесь тогда что ли :)



    mk:@MSITStore:С:\WASM-forum-0506.chm::/forum/wasm.ru/forum/index.php@a ction=vthread&forum=10&topic=6311&page=2.htm
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Опять начинается :))



    push eax

    fldz

    fstp dword [esp]

    pop eax
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    shr eax,16

    shr eax,16
     
  11. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    как результат функции АПИ.



    например:

    FindNextFile - eax = 0 - если нашли конечно

    тут примеров небес простор...
     
  12. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    warsem



    Как я уже и говорил, аппаратно-зависимое обнуление: wglGetProcAddress :)
     
  13. vinnie_pooh

    vinnie_pooh New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    98


    Мне тогда больше всего понравилось:



    Black_mirror:
    Код (Text):
    1.  
    2.     invoke GetProcessHeap
    3.     invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,4
    4.     test eax,eax
    5.     jz .l
    6.     mov eax,[eax]
    7. .l:


    и еще



    R4DX:



    Вот схема машины Тьюринга, получающей первый 0 на ленте:

    *Aw

    A - сканирует ленту (вправо) до первого 0ля
    Код (Text):
    1. ---------------------
    2. | A | x1 | x2 |
    3. ---------------------
    4. | 0 |0Sx2 | |
    5. | 1 |1Rx1 | |
    6. ---------------------
    Соответственно берем исходники программного эмулятора машины Тьюринга и делаем ф-ию, которая возвращает текущее значение на ленте и вызываем ее после ф-ии А...



    ...sorry for nostalgia...
     
  14. samba

    samba New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    65
    Адрес:
    England
    способы обнуления eax

    ---------------------
    Код (Text):
    1.  
    2. (При любом начальном eax)
    3. xor ebx,ebx
    4. mul ebx
    5.  
     
  15. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    cmp eax,eax

    setz al

    movzx eax,al
     
  16. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    aad

    mov al, ah

    cwde
     
  17. The Svin

    The Svin New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    665
    Адрес:
    Russia
    можно просто математикой и логикой?

    (в логике это - "противоречия" - то что даёт 0 полюбому)

    x & x'

    как следствия

    x & (-x-1); x & ((x-1)'-1)

    ;-------------------------

    x-x

    как следствия

    x+x'+1 ;x+(x-1)'

    ;---------------------------

    x ^ x

    ;----------------

    x & 0

    ;-----------

    (x | x')'

    ;-----------

    (x + x')'

    ;----------

    (x ^ x')'

    ;----------

    (x | -1)'



    и т.д. (далее длинющий список из "Кольца и стрелы")



    ^ - xor

    ' - not

    & - and

    | - or



    т.е. например (x | -1)'

    можете расшифровывать с eax как
    Код (Text):
    1.  
    2.     or eax,-1
    3.     not eax
    4.  


    а x & 0 как and eax,0
     
  18. Julius

    Julius New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2003
    Сообщения:
    42
    bsf eax,eax

    bsf eax,eax

    bsf eax,eax

    bsf eax,eax

    bsf eax,eax



    bsr eax,eax

    bsr eax,eax

    bsr eax,eax

    bsr eax,eax

    bsr eax,eax
     
  19. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    @@:

    invoke timeGetTime

    or eax,eax

    jnz @b
     
  20. Hunter

    Hunter New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    47
    The Svin, я уже как-то спрашивал раз, ты бы не мог выложить где-нибудь "Кольца и стрелы" ? уж очень интересно почитать :) Или может на мыло ? (nighthunter@inbox.ru)

    P.S. аськой пользуешся ?:) если да, можешь скинуть на мыло номер ?