いろいろ注意
- 過去ログを見よ!!!
- arduinoでの予定は、未定
- いろいろ、競技プログラミングの人や、アルゴリズムの人は、問題に、飢えているのか?(何の事?
目的
ミニプログラム用にダンプを表示させる。
プログラム
- オンラインコンパイラpaiza
#include <iostream>
using namespace std;
int main(void){
// Your code here!
char *b = "0123456789ABCDEF"; //16進の変換テーブル
//メモリーエリアの確保
unsigned char RAM[256] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int k = 0; //アドレスのカウンター
//ヘッターの表示
printf("add +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n");
for(int i=0;i<16;i++){ //行のループ
//アドレスの表示
putchar(b[k >> 12 ]); //上位4ビットを表示
putchar(b[k >> 8 & 0x0f]); //12ビット目から4ビット
putchar(b[k >> 4 & 0x0f]); //8ビット目から4ビット
putchar(b[k & 0x0f]); //下位4ビットを表示
putchar(' ');
for(int j = 0;j<16;j++){ //列のループ
//データの表示
int a = RAM[k++];
putchar(b[a >> 4 ]); //上位4ビットを表示
putchar(b[a & 0x0f]); //下位4ビットを表示
putchar(' ');
} //for j
putchar('\n'); //改行
} //for i
} //main
add +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
0000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
おまけ関数化
#include <iostream>
using namespace std;
void dump_out(unsigned char *dump1,int num){
// Your code here!
char *b = "0123456789ABCDEF"; //16進の変換テーブル
int k = 0; //アドレスのカウンター
//ヘッターの表示
printf("add +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F\n");
if(num == 0) return;
for(int i=0;i<(((num-1)/16)+1);i++){ //行のループ
//アドレスの表示
putchar(b[k >> 12 ]); //上位4ビットを表示
putchar(b[k >> 8 & 0x0f]); //12ビット目から4ビット
putchar(b[k >> 4 & 0x0f]); //8ビット目から4ビット
putchar(b[k & 0x0f]); //下位4ビットを表示
putchar(' ');
for(int j = 0;j<16;j++){ //列のループ
//データの表示
int a = dump1[k++];
putchar(b[a >> 4 ]); //上位4ビットを表示
putchar(b[a & 0x0f]); //下位4ビットを表示
putchar(' ');
} //for j
putchar('\n'); //改行
} //for i
} //main
int main(void){
//メモリーエリアの確保
unsigned char RAM[256] = {0xff,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
dump_out(RAM,256);
} //main