diff --git a/20230412/d-flipflops-1-loesung-korrigiert.png b/20230412/d-flipflops-1-loesung-korrigiert.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd2df4627d06d72cc31469261ae9e490f68af5a Binary files /dev/null and b/20230412/d-flipflops-1-loesung-korrigiert.png differ diff --git a/20230412/d-flipflops-2-master-slave-edge-triggered-korrigiert.png b/20230412/d-flipflops-2-master-slave-edge-triggered-korrigiert.png new file mode 100644 index 0000000000000000000000000000000000000000..92f8d170f4950ab75facaeadfffc68439dc07a9f Binary files /dev/null and b/20230412/d-flipflops-2-master-slave-edge-triggered-korrigiert.png differ diff --git a/20230412/d-flipflops.xcf.gz b/20230412/d-flipflops.xcf.gz index 59a6d990f485fb6490152f1395870bc954b1eb73..2a9fb75cc971fda006c6b01807fcaec7c93f6b53 100644 Binary files a/20230412/d-flipflops.xcf.gz and b/20230412/d-flipflops.xcf.gz differ diff --git a/20230419/blink-01.c b/20230419/blink-01.c index 01308336ab00714a2524cb5b248701fe3164b209..4533b28855403a8978ba20a3e04c895beb4a8743 100644 --- a/20230419/blink-01.c +++ b/20230419/blink-01.c @@ -10,9 +10,9 @@ int main (void) while (1) { _delay_ms (250); - PORTB = 0x00; + PORTB = 0x00 /* Hexadezimalzahl. Binär: 0000 0000 */; _delay_ms (250); - PORTB = 0x20; - } - return 0; -} + PORTB = 0x20; /* Hexadezimalzahl. Binär: 0010 0000 */ + } /* Bits zählen: ^ ^ ^------ Bit 0 */ + return 0; /* rechts anfangen | `-------- Bit 2 */ +} /* mit 0 anfangen `------------ Bit 5 */ diff --git a/20230419/blink-01.hex b/20230419/blink-01.hex new file mode 100644 index 0000000000000000000000000000000000000000..bf73a0d621c3419d3d1bd993cd9807885c6edc85 --- /dev/null +++ b/20230419/blink-01.hex @@ -0,0 +1,13 @@ +:100000000C9434000C943E000C943E000C943E0082 +:100010000C943E000C943E000C943E000C943E0068 +:100020000C943E000C943E000C943E000C943E0058 +:100030000C943E000C943E000C943E000C943E0048 +:100040000C943E000C943E000C943E000C943E0038 +:100050000C943E000C943E000C943E000C943E0028 +:100060000C943E000C943E0011241FBECFEFD8E04C +:10007000DEBFCDBF0E9440000C9458000C940000DD +:100080008FEF84B980E285B92FEF34E39CE02150F3 +:1000900030409040E1F700C0000015B82FEF34E386 +:1000A0009CE0215030409040E1F700C00000EBCFD1 +:0400B000F894FFCFF2 +:00000001FF diff --git a/20230419/blink-01.s b/20230419/blink-01.s new file mode 100644 index 0000000000000000000000000000000000000000..b5fd96ce2f3e1ceb3bd512bdfda0a290bf6cfdc6 --- /dev/null +++ b/20230419/blink-01.s @@ -0,0 +1,41 @@ + .file "blink-01.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .section .text.startup,"ax",@progbits +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 + ldi r24,lo8(-1) + out 0x4,r24 + ldi r24,lo8(32) +.L3: + out 0x5,r24 + ldi r18,lo8(799999) ; #include <avr/io.h> + ldi r19,hi8(799999) ; + ldi r25,hlo8(799999) ; #define F_CPU 16000000 +1: subi r18,1 ; #include <util/delay.h> + sbci r19,0 ; + sbci r25,0 ; int main (void) + brne 1b ; { + rjmp . ; DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8) + nop ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + out 0x5,__zero_reg__ ; while (1) + ldi r18,lo8(799999) ; { + ldi r19,hi8(799999) ; _delay_ms (250); + ldi r25,hlo8(799999) ; PORTB = 0x00 /* Hexadezimalzahl. Binär: 0000 0000 */; +1: subi r18,1 ; _delay_ms (250); + sbci r19,0 ; PORTB = 0x20; /* Hexadezimalzahl. Binär: 0010 0000 */ + sbci r25,0 ; } /* Bits zählen: ^ ^ ^------ Bit 0 */ + brne 1b ; return 0; /* rechts anfangen | `-------- Bit 2 */ + rjmp . ; } /* mit 0 anfangen `------------ Bit 5 */ + nop + rjmp .L3 + .size main, .-main + .ident "GCC: (GNU) 5.4.0" diff --git a/20230419/calc-01.s b/20230419/calc-01.s new file mode 100644 index 0000000000000000000000000000000000000000..6b1399a0b336752b0a87303cc70df77652a33495 --- /dev/null +++ b/20230419/calc-01.s @@ -0,0 +1,37 @@ + .file "calc-01.c" + .text + .section .rodata +.LC0: + .string "c = %d\n" + .text + .globl main + .type main, @function +main: +.LFB0: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + movq %rsp, %rbp ; #include <stdio.h> + .cfi_def_cfa_register 6 ; + subq $16, %rsp ; int main (void) + movl $3, -4(%rbp) ; { + movl $7, -8(%rbp) ; int a = 3; + movl -4(%rbp), %edx ; int b = 7; + movl -8(%rbp), %eax ; int c = a + b; + addl %edx, %eax ; printf ("c = %d\n", c); + movl %eax, -12(%rbp) ; return 0; + movl -12(%rbp), %eax ; } + movl %eax, %esi + leaq .LC0(%rip), %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + leave + .cfi_def_cfa 7, 8 + ret + .cfi_endproc +.LFE0: + .size main, .-main + .ident "GCC: (Debian 8.3.0-6) 8.3.0" + .section .note.GNU-stack,"",@progbits diff --git a/20230419/calc-01.sO b/20230419/calc-01.sO new file mode 100644 index 0000000000000000000000000000000000000000..2748de2c6fca286c4593cb69dc1452a165854f4b --- /dev/null +++ b/20230419/calc-01.sO @@ -0,0 +1,26 @@ + .file "calc-01.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "c = %d\n" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + subq $8, %rsp ; #include <stdio.h> + .cfi_def_cfa_offset 16 ; + movl $10, %esi ; int main (void) + leaq .LC0(%rip), %rdi ; { + movl $0, %eax ; int a = 3; + call printf@PLT ; int b = 7; + movl $0, %eax ; int c = a + b; + addq $8, %rsp ; printf ("c = %d\n", c); + .cfi_def_cfa_offset 8 ; return 0; + ret ; } + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 8.3.0-6) 8.3.0" + .section .note.GNU-stack,"",@progbits