L""
и wchar_t
не являются utf8 в вашей среде, это похоже на utf32. Итак, из-за порядка байтов я ожидаю, что ваши 4-байтовые wchar_t
значения будут:
0xAC, 0x20, 0x00, 0x00 ; this is your \u20AC
0x0A, 0x00, 0x00, 0x00 ; this is the \n
0x00, 0x00, 0x00, 0x00 ; this is the end of string
Компилятор использовал тот факт, что 0x20
- это пробел в ascii и что .string
автоматически генерирует нулевой байт, так:
.string "\254 " ; 0xAC, 0x20, 0x00
.string "" ; 0x00, so now you have your \u20AC
.string "\n" ; 0x0A, 0x00
.string "" ; 0x00
.string "" ; 0x00, so now you have the \n
.string "" ; 0x00
.string "" ; 0x00
.string "" ; 0x00
.string "" ; 0x00, so now you have the terminating zero