Аналог '\n' в асме

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

  1. AndNot

    AndNot New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2007
    Сообщения:
    49
    Great:
    Сначала бы посмотрел повнимательнее ;) Чем же по твоему 13 отличается от 0Dh??????
    А вот это действительно провакация :lol: В dos/windows \n = 0Dh,0Ah, т.е. комбинации \r\l. И никак иначе. Просто символ \n введен для кроссплатформенности. В некоторых системах \n=\l, а вот в dos/win \n=\r\l.
     
  2. Bat

    Bat New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    12
    Адрес:
    Ukraine
    Ещё есть макросы от Four-F.
    Можно найти в KmdKit.
    Всё пишется вообще просто:

    invoke DbgPrint, $CTA0("Entering DriverEntry\n")

    например вот так :]
     
  3. mathio

    mathio New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2007
    Сообщения:
    110
    AndNot
    Сами придумали спец-символ "\l"?

    Бред полнейший. Чем такое писать посмотрели бы лучше какой код генерит транслятор в следующем случае
    //-----test.c-----
    char buf1[] = "string\r";
    char buf2[] = "string\n";
    char buf3[] = "string\r\n";
    //-----test.c-----
    Для пущего удовлетворения можете проделать это как на юникс, так и на виндовс.
    Я всегда мучался вопросом - зачем туманить сознание новичкам такой охинеей? Новый вид троллинга?

    Great полностью прав.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    mathio
    AndNot спутал \r\l с CR LF.

    Ничего подобного. \n - это действительно переносимый спецсимвол, и на разных платформах он разворачивается по-разному.
     
  5. AndNot

    AndNot New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2007
    Сообщения:
    49
    Не вижу смысла :O ?
    Чего его путать то? Это он и есть. Где видел - не помню. Скорее всего в сорсах, той же printf. Возможно что еще на советских компах, но точно не помню, да и мне пох., есть это в стандарте или нет, я встречал, вот и привел пример. Это я еще не все привел, есть еще несколько.
    mathio, боюсь что это ты бред несешь. В досе для перевода курсора на новую строку необходимо два символа - 0Dh,0Ah. В никсах - только 0Dh. Но и под дос и под никсы пишут только \n, а курсор переводится. Чего здесь непонятного? Сам то пробовал код дизассемблить?
    Вот и я про то же :-?
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Нет такого escape-символа.
     
  7. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Товарищи, TechHelp не судьба посмотреть? :derisive:
    Код (Text):
    1. Dec Hex Ctl  Name Control Meaning     │ Dec Hex Ctl  Name Control Meaning
    2. ▀▀▀ ▀▀▀ ▀▀▀  ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ │ ▀▀▀ ▀▀▀ ▀▀▀  ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    3.   0  00  ^@  NUL  null (end string)   │  16  10  ^P  DLE  data line escape
    4.   1  01  ^A  SOH  start of heading    │  17  11  ^Q  DC1  dev ctrl 1 (X-ON)
    5.   2  02  ^B  STX  start of text       │  18  12  ^R  DC2  device ctrl 2
    6.   3  03  ^C  ETX  end of text         │  19  13  ^S  DC3  dev ctrl 3 (X-OFF)
    7.   4  04  ^D  EOT  end of transmission │  20  14  ^T  DC4  device ctrl 4
    8.   5  05  ^E  ENQ  enquiry             │  21  15  ^U  NAK  negative acknowledge
    9.   6  06  ^F  ACK  acknowledge         │  22  16  ^V  SYN  synchronous idle
    10.   7  07  ^G  BEL  bell                │  23  17  ^W  ETB  end transmit block
    11.   8  08  ^H  BS   backspace           │  24  18  ^X  CAN  cancel
    12.   9  09  ^I  HT   TAB horizontal tab  │  25  19  ^Y  EM   end of medium
    13.  10  0a  ^J  LF   line feed           │  26  1a  ^Z  SUB  substitute
    14.  11  0b  ^K  VT   vertical tab        │  27  1b  ^[  ESC  escape
    15.  12  0c  ^L  FF   form feed           │  28  1c  ^\  FS   file separator
    16.  13  0d  ^M  CR   carriage return     │  29  1d  ^]  GS   group separator
    17.  14  0e  ^N  SO   shift out           │  30  1e  ^^  RS   record separator
    18.  15  0f  ^O  SI   shift in            │  31  1f  ^_  US   unit separator
    Сишный компилятор (БЦ 3.1) /n заменяет на 0ah (LF), но на экран всё выводится нормально (при выводе функциями stdio.h). При выводе же conio.h (например csprintf), для правильного вывода необходимо писать /r/n. Напрашивается вывод о том, что функции stdio сами добавляют к переводу строки возврат каретки при выводе.
    Вывод: в DOS/vin писать 13,10 (0dh,0ah), в *nix 10 (0ah)
     
  8. AndNot

    AndNot New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2007
    Сообщения:
    49
    Ничего подобного. Специально попробовал (BCB 6.0), не нужно никаких комбинаций.
    Опять неверно. Парсинг строки делает компилятор, а в функции (stdio/conio) строка попадает уже в обработанном виде.
    В общем глянул старые доки, \l не нашел(наверное действительно в самопале видел), зато нашел прикол. Итак, таблица ескейпов из стандарта ANSI C:
    А это уже из док на Turbo C++:
    Как ясно видно символ \n в ANSI определен как перевод на новую строку, без уточнения кода (и нигде в доках я его не нашел). Это и обеспечивало кроссплатформенность, позволяя подставлять, на его место, то что требовалось для конкретной ОС, для доса 13,10.
    А вот с \b довольно забавно, кому верить?????
    PS: в свое время разгрустал сотни сорсов, но никогда не встречал комбинации \r\n, только \n. И все прекрасно работало.
     
  9. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Посмотри откомпиленный ехешник, в нём строка лежит именно так, как я написал (БЦПП 3.1).
    А у меня нужно :derisive: Мистика?
     
  10. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Оригиналу. Все эти любительские переводы в топку.
    Код (Text):
    1. Backspace - BS - 8