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); }