Dezimale Ein- und Ausgabe in C mit Nutzung von Monitor TRAP Aufrufen.
Funktionen des Assembler Include -Wf-include-stdasm=dez_io.inc mit dem C Aufruf #include <dez_io.h>
1. monitor_putdez(wert); // TRAP 23 und up36m.inc
Einen 18 Bit Wert dezimal über die UART anzeigen.// int wert = 0x400; monitor_putdez(wert); // Anzeige von 000001024 //
2. monitor_getdez(); // TRAP 1, TRAP 24 und up36m.inc
Eingabe eines dezimalen 18 Bit Wertes über die UART.// int wert; wert = monitor_getdez(); //
Beispiel einer dezimalen Ein-Ausgabe in C
// lcc18 -S -Wf-include-stdasm=dez_io.inc -Wf-include-stdasm=monitor.inc -Wf-default-shift -target=spartan/mon dez_test.c wenn dez_test.a18 erstellt werden soll // lcc18 -Wf-include-stdasm=dez_io.inc -Wf-include-stdasm=monitor.inc -Wf-default-shift -target=spartan/mon dez_test.c wenn dez_test.spho erstellt werden soll #include <monitor.h> #include <dez_io.h> int main() { int err = 0; unsigned int a; unsigned int b; unsigned int c; monitor_echoon(); monitor_print("\n\rDezimale Ein- und Ausgabe\n\r1. Summand = "); a=monitor_getdez(); monitor_print("\n\r2. Summand = "); b=monitor_getdez(); c = a + b; monitor_print("\n\rSumme ist = "); monitor_putdez(c); monitor_newline(); monitor_newline(); monitor_space(); monitor_putregs(); return err; } //
Protokoll der Abarbeitung auf dem SpartanMC
SpartanMC 18 Testmonitor vom 17.12.09 :LO 0037A :G Dezimale Ein- und Ausgabe 1. Summand = 122 2. Summand = 244 Summe ist = 000000366 0009B 00103 0 017DE 00006 00000 00000 01A26 00050 020BE 0016E 0007A 00000 000F4 00FC2 0016E 00000 020BE 00001 :G Dezimale Ein- und Ausgabe 1. Summand = 262140 2. Summand = 3 Summe ist = 000262143 0009B 00103 0 017DE 00006 00000 00000 01A26 00050 020BE 3FFFF 3FFFC 00000 00003 00FC2 3FFFF 00000 020BE 00001 :G Dezimale Ein- und Ausgabe 1. Summand = 262140 2. Summand = 4 Summe ist = 000000000 0009B 00103 0 017DE 00006 00000 00000 01A26 00050 020BE 00000 3FFFC 00000 00004 00FC2 00000 00000 020BE 00001 :G Dezimale Ein- und Ausgabe 1. Summand = 262144 Fehler! Neue Eingabe = 2abcd Fehler! Neue Eingabe = abcdefg Fehler! Neue Eingabe = 262140 2. Summand = 262140 Summe ist = 000262136 0009B 00103 0 017DE 00006 00000 00000 01A26 00050 020BE 3FFF8 3FFFC 00000 3FFFC 00FC2 3FFF8 00000 020BE 00001 :
C-Quelle Ass-Quelle Ass-Liste spho-Datei Protokoll dez_io.inc dez_io.h up_36m.inc