Pascal::String::operator+

Тема в разделе "WASM.A&O", создана пользователем Ev_genus, 16 авг 2004.

  1. Ev_genus

    Ev_genus New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2004
    Сообщения:
    2
    Адрес:
    Ukraine::Kiev
    Дано два регистра EAX & EDX, в которые записано Паскалевские строки. (256 байт, в 0-м длинна строки). Надо их сложить(конкатенировать). Понятное дело что если длинны превысит 255, то надо обрезать. Память под новую строку выделить в стеке. Оптимизировать по скорости, а потом по размеру.
     
  2. Ev_genus

    Ev_genus New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2004
    Сообщения:
    2
    Адрес:
    Ukraine::Kiev
    Дано два регистра EAX & EDX, в которые записано Паскалевские строки

    :)

    указатели на строки
     
  3. Daniil

    Daniil New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2004
    Сообщения:
    12
    Адрес:
    Russia
    Вот вам мой ламерский совет.



    Обозначим длину первой строки за LA, длину второй - за LD,

    а длину результата - LR.



    Очевидно, что LR = MIN (LA+LD, 255)



    Получается "сложение с потолком". Можно воспользоваться MMX-инструкцией - даст большой выигрыш по размеру (насчёт скорости не уверен).