11 |
BSVによるメモリダンプモジュールの設計 (2) |
上位モジュールの最適化
メモリダンプアルゴリズムが疑似コードにより記述できたので、最適化を実施します。以下のような処理が3回出てくるので、nibbleOutという関数にまとめます。
lower += (lower >= 10) ? (-10 + "a") : "0";
この共通化を実施した全体の動作を疑似コードにより示します。
疑似コード
int x, y, address;
byte byteData, checksum;
address = 0;
for (y=0 to 255) {
checksum = 0;
for (x = 0 to 255) {
data = memory[address++];
checksum += data;
nibbleOut(data);
}
nibbleOut(checksum>>4);
nibbleOut(checksum);
uart.load(LF);
}
function nibbleOut(nibble) {
byteData = nibble + (nibble >= 10) ? (- 10 + "a") : "0";
uart.load(byteData);
}