blob: 49f055501988465123cb66d9168035ce911c4b7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include <avr/io.h>
volatile char foo[30];
int main() {
foo[0] = 23;
foo[1] = 42;
// Should produce a mul
foo[2] = foo[0] * foo[1];
// Contains a decrement (8 Bit Dividend)
foo[3] = (unsigned char)((unsigned char )foo[1] / (unsigned char)foo[0]);
foo[4] = foo[1] % foo[0];
volatile uint16_t x = 1000;
volatile uint16_t y = 55;
foo[5] = x * y;
foo[20] = 165;
itoa((unsigned char)foo[20], &foo[6], 10);
itoa((signed char)foo[20], &foo[9], 10);
asm volatile ("break");
}
/*
check-name: Complex Memory Operations
check-start:
\avr@instr@stepn{100000}
\avr@test@MEM{96}{00010111} % 23
\avr@test@MEM{97}{00101010} % 42
\avr@test@MEM{98}{11000110} % 198
\avr@test@MEM{99}{00000001} % 1
\avr@test@MEM{100}{00010011} % 19
\avr@test@MEM{101}{11011000} % 216
\avr@test@MEM{102}{00110001} % '1'
\avr@test@MEM{103}{00110110} % '6'
\avr@test@MEM{104}{00110101} % '5'
\avr@test@MEM{105}{00101101} % '-'
\avr@test@MEM{106}{00111001} % '9'
\avr@test@MEM{107}{00110001} % '1'
check-end:
*/
|