C クロスコンパイラを用いたマシン・コード生成

実験の概要

本実験では、クロスコンパイルに関する実験を行う。 実験 1-1, 1-2, 2-1, 2-2 で使用した MIPS マシン・コード print_B.bin と print_B_while.bin には、実はその元ととなる C 言語ソース print_B.c と print_B_while.c があり、print_B.bin, print_B_while.bin は、それらの C ソースを MIPS 用にクロスコンパイルしたものである。 本実験では、MIPS 用にクロスコンパイルすると print_B_while.bin が生成される C ソースを作成し、高級言語とマシン・コードとの関係についての理解を深める。
(1) MIPS 用にクロスコンパイルすると実験 1-1, 1-2 で使用したマシン・コード print_B.bin が生成される C ソースprint_B.cを図 1 に示す。
1: #define EXTIO_PRINT_STROKE (*(volatile unsigned int *) 0x0300)
2: #define EXTIO_PRINT_ASCII  (*(volatile unsigned int *) 0x0304)
3: main()
4: {
5:   EXTIO_PRINT_STROKE = (unsigned int)0x00000000;
6:   EXTIO_PRINT_ASCII = (unsigned int)0x00000002;
7:   EXTIO_PRINT_STROKE = (unsigned int)0x00000001;
8: }
        
図1:print_B.c

参考書


中村一博