1
0
mirror of synced 2024-07-21 02:02:30 +02:00
avremu/tests/mul.c
2014-09-29 20:39:23 +02:00

46 lines
856 B
C

#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;
itoa(165, &foo[6], 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'
check-end:
*/