кратность

Тема в разделе "WASM.BEGINNERS", создана пользователем rubic_, 9 авг 2007.

  1. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    Здрасте, помогите начинающему разобраться

    .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

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    а определение кратности из школьного курса вам знакомо?
     
  3. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
  4. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    я не совсем понимаю как оно здесь происходит
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    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_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    так and же это битовая операция..как она для 10-ти работает

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

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    да с этим все ясно..только почему 16-1
     
  8. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    все вкурил не ругайте за тупость
     
  9. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    rubic_
    0-9 = 10 цифр ))
    0-F = 16 цифр
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    здесь имеется побитовое AND, производимое попарно над всеми соответствующими битами обоих чисел.
     
  11. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    rubic_
    Посмотри двоичное представление чисел степени двойки и посмотри их остатки. Потом поймёшь что за битовыми операциями стоит.