Float na 8bit - minitest
Pavel Hudeček
edizon na seznam.cz
Středa Duben 24 00:10:36 CEST 2024
Tak jsem to zkusil:
1. Porty A a D přijmou 4B float hodnot a, b
2. Nahodí port C na 255
3. Spočítá x = a/b
4. Shodí port C na poslední idx
5. Pošle 4B float hodnoty x na port F
Před příjmem a vysíláním posílá idx na port C
(nebude fungovat úplně dobře, port F nemá všechny bity použitelné pro
výstup a port D nemá nohu 0)
---------------
#include <avr/io.h> // AVR64DD32
uint8_t arrB[12];
float *a = (float*)&arrB[0];
float *b = (float*)&arrB[4];
float *x = (float*)&arrB[8];
uint8_t idx;
int main(void) {
PORTC.DIR = 255;
PORTF.DIR = 255;
while (1) {
idx=0;
PORTC.OUT = idx;
arrB[idx]=PORTA.IN; arrB[idx+4]=PORTD.IN; idx++;
PORTC.OUT = idx;
arrB[idx]=PORTA.IN; arrB[idx+4]=PORTD.IN; idx++;
PORTC.OUT = idx;
arrB[idx]=PORTA.IN; arrB[idx+4]=PORTD.IN; idx++;
PORTC.OUT = idx;
arrB[idx]=PORTA.IN; arrB[idx+4]=PORTD.IN; idx++;
PORTC.OUT = 255;
*x = *a / *b;
PORTC.OUT = idx;
PORTF.OUT = arrB[idx+4]; idx++;
PORTC.OUT = idx;
PORTF.OUT = arrB[idx+4]; idx++;
PORTC.OUT = idx;
PORTF.OUT = arrB[idx+4]; idx++;
PORTC.OUT = idx;
PORTF.OUT = arrB[idx+4]; idx++;
}
}
----------------
Program Memory Usage : 836 bytes 1,3 % Full
Data Memory Usage : 18 bytes 0,2 % Full
-------------------
Hodiny jsou takhle nejspíš 24/6 = 4 MHz.
Porty ve vzduchu.
Na C3 je asi 20µs stav 0 a pak něco přes 125µs 0.
(vyšší bity nejsou vyvedeny)
Osciloskop hlásí 7,11 kHz.
Na C0 synchronně s C3 objeví 0, pak jsou celkem 3 pulzy, poslední
vzestupná asi 4µs před C0.
První 010 trvá malinko přes 5µs, zbytek je delší a všechny trochu plavou.
Hmatání na vstupní porty nemá na C0 a C3 vliv, ale způsobuje poblikávání
LEDky na F5.
...
Aha tak má vliv, po hmatání je 6,92 kHz:-)
A takhle dopad LSS fajl:
--------------------
mini-float-test-avr64dd32.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000006 00806000 0000033e 000003d2 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000033e 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 0000000c 00806006 00806006 000003d8 2**0
ALLOC
3 .comment 00000030 00000000 00000000 000003d8 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000408 2**2
CONTENTS, READONLY
5 .debug_info 00001fac 00000000 00000000 00000444 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00001dfe 00000000 00000000 000023f0 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 0000016f 00000000 00000000 000041ee 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00000dee 00000000 00000000 0000435d 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 48 00 jmp 0x90 ; 0x90 <__ctors_end>
4: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
8: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
10: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
14: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
18: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
1c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
20: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
24: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
28: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
2c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
30: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
34: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
38: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
3c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
40: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
44: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
48: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
4c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
50: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
54: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
58: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
5c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
60: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
64: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
68: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
6c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
70: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
74: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
78: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
7c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
80: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
84: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
88: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
8c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
00000090 <__ctors_end>:
90: 11 24 eor r1, r1
92: 1f be out 0x3f, r1 ; 63
94: cf ef ldi r28, 0xFF ; 255
96: cd bf out 0x3d, r28 ; 61
98: df e7 ldi r29, 0x7F ; 127
9a: de bf out 0x3e, r29 ; 62
0000009c <__do_copy_data>:
9c: 10 e6 ldi r17, 0x60 ; 96
9e: a0 e0 ldi r26, 0x00 ; 0
a0: b0 e6 ldi r27, 0x60 ; 96
a2: ee e3 ldi r30, 0x3E ; 62
a4: f3 e0 ldi r31, 0x03 ; 3
a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x10>
a8: 05 90 lpm r0, Z+
aa: 0d 92 st X+, r0
ac: a6 30 cpi r26, 0x06 ; 6
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0xc>
000000b2 <__do_clear_bss>:
b2: 20 e6 ldi r18, 0x60 ; 96
b4: a6 e0 ldi r26, 0x06 ; 6
b6: b0 e6 ldi r27, 0x60 ; 96
b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a2 31 cpi r26, 0x12 ; 18
be: b2 07 cpc r27, r18
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
c2: 0e 94 67 00 call 0xce ; 0xce <main>
c6: 0c 94 9d 01 jmp 0x33a ; 0x33a <_exit>
000000ca <__bad_interrupt>:
ca: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000ce <main>:
ce: 8f ef ldi r24, 0xFF ; 255
d0: 80 93 40 04 sts 0x0440, r24 ; 0x800440
<__TEXT_REGION_LENGTH__+0x7f0440>
d4: 80 93 a0 04 sts 0x04A0, r24 ; 0x8004a0
<__TEXT_REGION_LENGTH__+0x7f04a0>
d8: 00 91 00 60 lds r16, 0x6000 ; 0x806000
<__DATA_REGION_ORIGIN__>
dc: 10 91 01 60 lds r17, 0x6001 ; 0x806001
<__DATA_REGION_ORIGIN__+0x1>
e0: e0 90 04 60 lds r14, 0x6004 ; 0x806004 <a>
e4: f0 90 05 60 lds r15, 0x6005 ; 0x806005 <a+0x1>
e8: c0 90 02 60 lds r12, 0x6002 ; 0x806002 <b>
ec: d0 90 03 60 lds r13, 0x6003 ; 0x806003 <b+0x1>
f0: 66 24 eor r6, r6
f2: 63 94 inc r6
f4: 82 e0 ldi r24, 0x02 ; 2
f6: 78 2e mov r7, r24
f8: 93 e0 ldi r25, 0x03 ; 3
fa: 89 2e mov r8, r25
fc: 99 24 eor r9, r9
fe: 9a 94 dec r9
100: 24 e0 ldi r18, 0x04 ; 4
102: a2 2e mov r10, r18
104: 35 e0 ldi r19, 0x05 ; 5
106: b3 2e mov r11, r19
108: d6 e0 ldi r29, 0x06 ; 6
10a: c7 e0 ldi r28, 0x07 ; 7
10c: 10 92 44 04 sts 0x0444, r1 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
110: 80 91 08 04 lds r24, 0x0408 ; 0x800408
<__TEXT_REGION_LENGTH__+0x7f0408>
114: 80 93 06 60 sts 0x6006, r24 ; 0x806006 <__data_end>
118: 80 91 68 04 lds r24, 0x0468 ; 0x800468
<__TEXT_REGION_LENGTH__+0x7f0468>
11c: 80 93 0a 60 sts 0x600A, r24 ; 0x80600a <__data_end+0x4>
120: 60 92 44 04 sts 0x0444, r6 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
124: 80 91 08 04 lds r24, 0x0408 ; 0x800408
<__TEXT_REGION_LENGTH__+0x7f0408>
128: 80 93 07 60 sts 0x6007, r24 ; 0x806007 <__data_end+0x1>
12c: 80 91 68 04 lds r24, 0x0468 ; 0x800468
<__TEXT_REGION_LENGTH__+0x7f0468>
130: 80 93 0b 60 sts 0x600B, r24 ; 0x80600b <__data_end+0x5>
134: 70 92 44 04 sts 0x0444, r7 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
138: 80 91 08 04 lds r24, 0x0408 ; 0x800408
<__TEXT_REGION_LENGTH__+0x7f0408>
13c: 80 93 08 60 sts 0x6008, r24 ; 0x806008 <__data_end+0x2>
140: 80 91 68 04 lds r24, 0x0468 ; 0x800468
<__TEXT_REGION_LENGTH__+0x7f0468>
144: 80 93 0c 60 sts 0x600C, r24 ; 0x80600c <__data_end+0x6>
148: 80 92 44 04 sts 0x0444, r8 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
14c: 80 91 08 04 lds r24, 0x0408 ; 0x800408
<__TEXT_REGION_LENGTH__+0x7f0408>
150: 80 93 09 60 sts 0x6009, r24 ; 0x806009 <__data_end+0x3>
154: 80 91 68 04 lds r24, 0x0468 ; 0x800468
<__TEXT_REGION_LENGTH__+0x7f0468>
158: 80 93 0d 60 sts 0x600D, r24 ; 0x80600d <__data_end+0x7>
15c: 90 92 44 04 sts 0x0444, r9 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
160: f6 01 movw r30, r12
162: 20 81 ld r18, Z
164: 31 81 ldd r19, Z+1 ; 0x01
166: 42 81 ldd r20, Z+2 ; 0x02
168: 53 81 ldd r21, Z+3 ; 0x03
16a: f7 01 movw r30, r14
16c: 60 81 ld r22, Z
16e: 71 81 ldd r23, Z+1 ; 0x01
170: 82 81 ldd r24, Z+2 ; 0x02
172: 93 81 ldd r25, Z+3 ; 0x03
174: 0e 94 da 00 call 0x1b4 ; 0x1b4 <__divsf3>
178: f8 01 movw r30, r16
17a: 60 83 st Z, r22
17c: 71 83 std Z+1, r23 ; 0x01
17e: 82 83 std Z+2, r24 ; 0x02
180: 93 83 std Z+3, r25 ; 0x03
182: a0 92 44 04 sts 0x0444, r10 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
186: 80 91 0e 60 lds r24, 0x600E ; 0x80600e <__data_end+0x8>
18a: 80 93 a4 04 sts 0x04A4, r24 ; 0x8004a4
<__TEXT_REGION_LENGTH__+0x7f04a4>
18e: b0 92 44 04 sts 0x0444, r11 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
192: 80 91 0f 60 lds r24, 0x600F ; 0x80600f <__data_end+0x9>
196: 80 93 a4 04 sts 0x04A4, r24 ; 0x8004a4
<__TEXT_REGION_LENGTH__+0x7f04a4>
19a: d0 93 44 04 sts 0x0444, r29 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
19e: 80 91 10 60 lds r24, 0x6010 ; 0x806010 <__data_end+0xa>
1a2: 80 93 a4 04 sts 0x04A4, r24 ; 0x8004a4
<__TEXT_REGION_LENGTH__+0x7f04a4>
1a6: c0 93 44 04 sts 0x0444, r28 ; 0x800444
<__TEXT_REGION_LENGTH__+0x7f0444>
1aa: 80 91 11 60 lds r24, 0x6011 ; 0x806011 <__data_end+0xb>
1ae: 80 93 a4 04 sts 0x04A4, r24 ; 0x8004a4
<__TEXT_REGION_LENGTH__+0x7f04a4>
1b2: ac cf rjmp .-168 ; 0x10c
<__EEPROM_REGION_LENGTH__+0xc>
000001b4 <__divsf3>:
1b4: 0e 94 ee 00 call 0x1dc ; 0x1dc <__divsf3x>
1b8: 0c 94 63 01 jmp 0x2c6 ; 0x2c6 <__fp_round>
1bc: 0e 94 5c 01 call 0x2b8 ; 0x2b8 <__fp_pscB>
1c0: 58 f0 brcs .+22 ; 0x1d8 <__divsf3+0x24>
1c2: 0e 94 55 01 call 0x2aa ; 0x2aa <__fp_pscA>
1c6: 40 f0 brcs .+16 ; 0x1d8 <__divsf3+0x24>
1c8: 29 f4 brne .+10 ; 0x1d4 <__divsf3+0x20>
1ca: 5f 3f cpi r21, 0xFF ; 255
1cc: 29 f0 breq .+10 ; 0x1d8 <__divsf3+0x24>
1ce: 0c 94 4c 01 jmp 0x298 ; 0x298 <__fp_inf>
1d2: 51 11 cpse r21, r1
1d4: 0c 94 97 01 jmp 0x32e ; 0x32e <__fp_szero>
1d8: 0c 94 52 01 jmp 0x2a4 ; 0x2a4 <__fp_nan>
000001dc <__divsf3x>:
1dc: 0e 94 74 01 call 0x2e8 ; 0x2e8 <__fp_split3>
1e0: 68 f3 brcs .-38 ; 0x1bc <__divsf3+0x8>
000001e2 <__divsf3_pse>:
1e2: 99 23 and r25, r25
1e4: b1 f3 breq .-20 ; 0x1d2 <__divsf3+0x1e>
1e6: 55 23 and r21, r21
1e8: 91 f3 breq .-28 ; 0x1ce <__divsf3+0x1a>
1ea: 95 1b sub r25, r21
1ec: 55 0b sbc r21, r21
1ee: bb 27 eor r27, r27
1f0: aa 27 eor r26, r26
1f2: 62 17 cp r22, r18
1f4: 73 07 cpc r23, r19
1f6: 84 07 cpc r24, r20
1f8: 38 f0 brcs .+14 ; 0x208 <__divsf3_pse+0x26>
1fa: 9f 5f subi r25, 0xFF ; 255
1fc: 5f 4f sbci r21, 0xFF ; 255
1fe: 22 0f add r18, r18
200: 33 1f adc r19, r19
202: 44 1f adc r20, r20
204: aa 1f adc r26, r26
206: a9 f3 breq .-22 ; 0x1f2 <__divsf3_pse+0x10>
208: 35 d0 rcall .+106 ; 0x274 <__divsf3_pse+0x92>
20a: 0e 2e mov r0, r30
20c: 3a f0 brmi .+14 ; 0x21c <__divsf3_pse+0x3a>
20e: e0 e8 ldi r30, 0x80 ; 128
210: 32 d0 rcall .+100 ; 0x276 <__divsf3_pse+0x94>
212: 91 50 subi r25, 0x01 ; 1
214: 50 40 sbci r21, 0x00 ; 0
216: e6 95 lsr r30
218: 00 1c adc r0, r0
21a: ca f7 brpl .-14 ; 0x20e <__divsf3_pse+0x2c>
21c: 2b d0 rcall .+86 ; 0x274 <__divsf3_pse+0x92>
21e: fe 2f mov r31, r30
220: 29 d0 rcall .+82 ; 0x274 <__divsf3_pse+0x92>
222: 66 0f add r22, r22
224: 77 1f adc r23, r23
226: 88 1f adc r24, r24
228: bb 1f adc r27, r27
22a: 26 17 cp r18, r22
22c: 37 07 cpc r19, r23
22e: 48 07 cpc r20, r24
230: ab 07 cpc r26, r27
232: b0 e8 ldi r27, 0x80 ; 128
234: 09 f0 breq .+2 ; 0x238 <__divsf3_pse+0x56>
236: bb 0b sbc r27, r27
238: 80 2d mov r24, r0
23a: bf 01 movw r22, r30
23c: ff 27 eor r31, r31
23e: 93 58 subi r25, 0x83 ; 131
240: 5f 4f sbci r21, 0xFF ; 255
242: 3a f0 brmi .+14 ; 0x252 <__divsf3_pse+0x70>
244: 9e 3f cpi r25, 0xFE ; 254
246: 51 05 cpc r21, r1
248: 78 f0 brcs .+30 ; 0x268 <__divsf3_pse+0x86>
24a: 0c 94 4c 01 jmp 0x298 ; 0x298 <__fp_inf>
24e: 0c 94 97 01 jmp 0x32e ; 0x32e <__fp_szero>
252: 5f 3f cpi r21, 0xFF ; 255
254: e4 f3 brlt .-8 ; 0x24e <__divsf3_pse+0x6c>
256: 98 3e cpi r25, 0xE8 ; 232
258: d4 f3 brlt .-12 ; 0x24e <__divsf3_pse+0x6c>
25a: 86 95 lsr r24
25c: 77 95 ror r23
25e: 67 95 ror r22
260: b7 95 ror r27
262: f7 95 ror r31
264: 9f 5f subi r25, 0xFF ; 255
266: c9 f7 brne .-14 ; 0x25a <__divsf3_pse+0x78>
268: 88 0f add r24, r24
26a: 91 1d adc r25, r1
26c: 96 95 lsr r25
26e: 87 95 ror r24
270: 97 f9 bld r25, 7
272: 08 95 ret
274: e1 e0 ldi r30, 0x01 ; 1
276: 66 0f add r22, r22
278: 77 1f adc r23, r23
27a: 88 1f adc r24, r24
27c: bb 1f adc r27, r27
27e: 62 17 cp r22, r18
280: 73 07 cpc r23, r19
282: 84 07 cpc r24, r20
284: ba 07 cpc r27, r26
286: 20 f0 brcs .+8 ; 0x290 <__divsf3_pse+0xae>
288: 62 1b sub r22, r18
28a: 73 0b sbc r23, r19
28c: 84 0b sbc r24, r20
28e: ba 0b sbc r27, r26
290: ee 1f adc r30, r30
292: 88 f7 brcc .-30 ; 0x276 <__divsf3_pse+0x94>
294: e0 95 com r30
296: 08 95 ret
00000298 <__fp_inf>:
298: 97 f9 bld r25, 7
29a: 9f 67 ori r25, 0x7F ; 127
29c: 80 e8 ldi r24, 0x80 ; 128
29e: 70 e0 ldi r23, 0x00 ; 0
2a0: 60 e0 ldi r22, 0x00 ; 0
2a2: 08 95 ret
000002a4 <__fp_nan>:
2a4: 9f ef ldi r25, 0xFF ; 255
2a6: 80 ec ldi r24, 0xC0 ; 192
2a8: 08 95 ret
000002aa <__fp_pscA>:
2aa: 00 24 eor r0, r0
2ac: 0a 94 dec r0
2ae: 16 16 cp r1, r22
2b0: 17 06 cpc r1, r23
2b2: 18 06 cpc r1, r24
2b4: 09 06 cpc r0, r25
2b6: 08 95 ret
000002b8 <__fp_pscB>:
2b8: 00 24 eor r0, r0
2ba: 0a 94 dec r0
2bc: 12 16 cp r1, r18
2be: 13 06 cpc r1, r19
2c0: 14 06 cpc r1, r20
2c2: 05 06 cpc r0, r21
2c4: 08 95 ret
000002c6 <__fp_round>:
2c6: 09 2e mov r0, r25
2c8: 03 94 inc r0
2ca: 00 0c add r0, r0
2cc: 11 f4 brne .+4 ; 0x2d2 <__fp_round+0xc>
2ce: 88 23 and r24, r24
2d0: 52 f0 brmi .+20 ; 0x2e6 <__fp_round+0x20>
2d2: bb 0f add r27, r27
2d4: 40 f4 brcc .+16 ; 0x2e6 <__fp_round+0x20>
2d6: bf 2b or r27, r31
2d8: 11 f4 brne .+4 ; 0x2de <__fp_round+0x18>
2da: 60 ff sbrs r22, 0
2dc: 04 c0 rjmp .+8 ; 0x2e6 <__fp_round+0x20>
2de: 6f 5f subi r22, 0xFF ; 255
2e0: 7f 4f sbci r23, 0xFF ; 255
2e2: 8f 4f sbci r24, 0xFF ; 255
2e4: 9f 4f sbci r25, 0xFF ; 255
2e6: 08 95 ret
000002e8 <__fp_split3>:
2e8: 57 fd sbrc r21, 7
2ea: 90 58 subi r25, 0x80 ; 128
2ec: 44 0f add r20, r20
2ee: 55 1f adc r21, r21
2f0: 59 f0 breq .+22 ; 0x308 <__fp_splitA+0x10>
2f2: 5f 3f cpi r21, 0xFF ; 255
2f4: 71 f0 breq .+28 ; 0x312 <__fp_splitA+0x1a>
2f6: 47 95 ror r20
000002f8 <__fp_splitA>:
2f8: 88 0f add r24, r24
2fa: 97 fb bst r25, 7
2fc: 99 1f adc r25, r25
2fe: 61 f0 breq .+24 ; 0x318 <__fp_splitA+0x20>
300: 9f 3f cpi r25, 0xFF ; 255
302: 79 f0 breq .+30 ; 0x322 <__fp_splitA+0x2a>
304: 87 95 ror r24
306: 08 95 ret
308: 12 16 cp r1, r18
30a: 13 06 cpc r1, r19
30c: 14 06 cpc r1, r20
30e: 55 1f adc r21, r21
310: f2 cf rjmp .-28 ; 0x2f6 <__fp_split3+0xe>
312: 46 95 lsr r20
314: f1 df rcall .-30 ; 0x2f8 <__fp_splitA>
316: 08 c0 rjmp .+16 ; 0x328 <__fp_splitA+0x30>
318: 16 16 cp r1, r22
31a: 17 06 cpc r1, r23
31c: 18 06 cpc r1, r24
31e: 99 1f adc r25, r25
320: f1 cf rjmp .-30 ; 0x304 <__fp_splitA+0xc>
322: 86 95 lsr r24
324: 71 05 cpc r23, r1
326: 61 05 cpc r22, r1
328: 08 94 sec
32a: 08 95 ret
0000032c <__fp_zero>:
32c: e8 94 clt
0000032e <__fp_szero>:
32e: bb 27 eor r27, r27
330: 66 27 eor r22, r22
332: 77 27 eor r23, r23
334: cb 01 movw r24, r22
336: 97 f9 bld r25, 7
338: 08 95 ret
0000033a <_exit>:
33a: f8 94 cli
0000033c <__stop_program>:
33c: ff cf rjmp .-2 ; 0x33c <__stop_program>
-----------------------
PH
Dne 23.04.2024 v 18:23 Martin Záruba napsal(a):
> Spíš myslím, že podstatné je umět si představit, jak i jednoduchý kód
> v C vytvoří mnoho strojových instrukcí. Skoro si netroufám představit
> si, co je výsledkem, pokud bych použil float.
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240424/ad86482a/attachment-0001.htm>
Další informace o konferenci Hw-list