Dezimale Ein- und Ausgabe in C mit Nutzung von Monitor TRAP Aufrufen.

Diese Seiten wurden für den LCC erstellt und gelten nicht für den GCC! Dezimale Ein- und Ausgaben für den GCC finden Sie auf der Wiki Seite GCC Konsolenfunktionen.

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


Beispiel zum Test der Division in C mit dezimaler ein und Ausgabe

C-Quelle Ass-Quelle Ass-Liste spho-Datei Protokoll dez_io.inc dez_io.h up_36m.inc




SpartanMC