"переполнение"... С чего бы это???

Тема в разделе "WASM.WIN32", создана пользователем 3onder, 3 дек 2004.

  1. 3onder

    3onder New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2004
    Сообщения:
    9
    Mezonin

    Не... пробовал никакой разницы...
     
  2. Mezonin

    Mezonin New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2004
    Сообщения:
    12
    Адрес:
    Russia
    Странно, у меня работает. Во всяком случае переполнения не возникает, а что должен делать этот цикл с этими магическими числами - я не знаю :)
     
  3. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    насчет cdq я зря... деление беззнаковое



    код Mezonin'а работать должен все-таки
     
  4. 3onder

    3onder New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2004
    Сообщения:
    9
    Все верно... не обнулил edx... Огр. спасибо...
     
  5. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62


    в смысле по прежнему исключение?



    и кстати т.к. в каждом байте ebx будет храниться

    одна десятичная цифра, то и изначальное число не должно быть больше 9999. В твоем примере больше.

    Хотя исключение из-за этого не возникнет :)

    Просто в ebx будет последние 4 цифры.

    Кстати ebx нада все таки сначала обнулить
     
  6. Mezonin

    Mezonin New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2004
    Сообщения:
    12
    Адрес:
    Russia
    И еще кстати, вот парa макросов(by Tom Swan, второй вспомагательный), которые переводят из hex в ASCIIZ любой системы. Вход(если я не ошибаюсь)

    di - смещение строки, куда помещается результат

    bx - нужная система счисления

    cx - кол-во выводимых знакомест

    ax - исходное hex значение





    MACRO numtoascii

    local @@value1, @@value2, @@value3, @@value4

    push dx

    push di

    push si

    xor si, si

    jcxz @@value2

    @@value1:

    xor dx, dx

    div bx

    hexdigit

    push dx

    inc si

    loop @@value1

    @@value2:

    inc cx

    or ax, ax

    jnz @@value1

    mov cx, si

    jcxz @@value4

    cld

    @@value3:

    pop ax

    stosb

    loop @@value3

    @@value4:

    mov [byte di], 0

    pop si

    pop di

    pop dx

    ENDM numtoascii

    MACRO hexdigit

    local @@value, @@value1

    cmp dl, 10

    jb @@value

    add dl, 'A'-10

    jmp @@value1

    @@value:

    or dl, '0'

    @@value1:

    ENDM hexdigit
     
  7. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    или поменять местами



    add ebx,edx

    shl ebx,8
     
  8. LocTb

    LocTb New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2004
    Сообщения:
    54
    [offtop]Ребята, вы все одну травку курили?[/offtop]