ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
180839 Топик полностью
koyodza (10.02.2010 12:01, просмотров: 203) ответил koyodza на ага, уже нашёл. Только где они живут, в какой либе? Какой хидер подключить? На РС это <winsock2.h>, а мне надо на STM32
нашел в виде красивых макросов, при максимальной оптимизации таки получил REV http://www.jbox.dk/sanos/source/include/net/inet.h.html
При -о0 имею такой листинг (39 тактов): 0x0800152A 482F LDR r0,[pc,#188] ; @0x080015E8 0x0800152C 6800 LDR r0,[r0,#0x00] 0x0800152E 0600 LSLS r0,r0,#24 0x08001530 492D LDR r1,[pc,#180] ; @0x080015E8 0x08001532 6809 LDR r1,[r1,#0x00] 0x08001534 F401417F AND r1,r1,#0xFF00 0x08001538 EA402001 ORR r0,r0,r1,LSL #8 0x0800153C 492A LDR r1,[pc,#168] ; @0x080015E8 0x0800153E 6809 LDR r1,[r1,#0x00] 0x08001540 F401017F AND r1,r1,#0xFF0000 0x08001544 EA402011 ORR r0,r0,r1,LSR #8 0x08001548 4927 LDR r1,[pc,#156] ; @0x080015E8 0x0800154A 6809 LDR r1,[r1,#0x00] 0x0800154C EA406011 ORR r0,r0,r1,LSR #24 0x08001550 900B STR r0,[sp,#0x2C] После танцев с бубном на том же -о0 имеем 6 тактов: 362: __int32 c = a; 0x0800152A 4837 LDR r0,[pc,#220] ; @0x08001608 0x0800152C 6804 LDR r4,[r0,#0x00] 363: __int32 d = HTONL(c); 0x0800152E 0620 LSLS r0,r4,#24 0x08001530 F404417F AND r1,r4,#0xFF00 0x08001534 EA402001 ORR r0,r0,r1,LSL #8 0x08001538 F404017F AND r1,r4,#0xFF0000 0x0800153C EA402011 ORR r0,r0,r1,LSR #8 0x08001540 EA406514 ORR r5,r0,r4,LSR #24 364: e = d; При -о3 вроде как получилось такое: 362: __int32 c = a; 0x08001710 4938 LDR r1,[pc,#224] ; @0x080017F4 0x08001712 68C8 LDR r0,[r1,#0x0C] 363: __int32 d = HTONL(c); 0x08001714 BA00 REV r0,r0 364: e = d;