кратность

Discussion in 'WASM.BEGINNERS' started by rubic_, Aug 9, 2007.

  1. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    Здрасте, помогите начинающему разобраться

    .model tiny ; com - files
    .code
    org 100h

    start: mov cx,32
    mov dl,0
    lab: inc dl
    test dl,0Fh (как здесь значение регистра dl проверяется на кратность 16(Fh- это же 15) )
    jnz continue
    inc dl
    continue:
    loop lab
     
  2. Asterix

    Asterix New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576
    а определение кратности из школьного курса вам знакомо?
     
  3. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    да
     
  4. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    я не совсем понимаю как оно здесь происходит
     
  5. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Число X кратно 16 (и вообще любой степени двойки), если X and (16-1) == 0
    test - это проверка операции AND.

    Таким образом ZF после выполнения test dl, 15 будет равен 1 только если число в DL кратно 16-ти

    ЗЫ. Почеему так происходит с операцией побитового "И" (and) ясно, если расписать число в битовом варианте.

    допустим, число в DL имеет вид ABCDEFGH (8 бит этого числа), 15 представляет собой 1111.

    ABCDEFGH & 1111 = EFGH

    Если EFGH == 0000, то это означает что число в DL имеет вид ABCD0000 или

    D * 2^4 + C * 2^5 + B * 2^6 + A * 2^7 = 2^4( D + C*2 + B*4 + A*8), то есть число кратно 2^4 = 16.

    ясно?
     
  6. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    так and же это битовая операция..как она для 10-ти работает

    прошу прощения за дремучесть...я в асме 2-ой день...поэтому в голове каша небольшая с регистрами
     
  7. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    да с этим все ясно..только почему 16-1
     
  8. rubic_

    rubic_ Женя

    Blog Posts:
    0
    Joined:
    Jul 9, 2007
    Messages:
    121
    Location:
    Омск
    все вкурил не ругайте за тупость
     
  9. nitrotoluol

    nitrotoluol New Member

    Blog Posts:
    0
    Joined:
    Sep 5, 2006
    Messages:
    848
    rubic_
    0-9 = 10 цифр ))
    0-F = 16 цифр
     
  10. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    здесь имеется побитовое AND, производимое попарно над всеми соответствующими битами обоих чисел.
     
  11. asmfan

    asmfan New Member

    Blog Posts:
    0
    Joined:
    Jul 10, 2006
    Messages:
    1,004
    Location:
    Abaddon
    rubic_
    Посмотри двоичное представление чисел степени двойки и посмотри их остатки. Потом поймёшь что за битовыми операциями стоит.