Z80 マシン コードでは、バッファを固定値 (すべて空白など) に初期化する安価な手法。したがって、コードのチャンクは次のようになります。
LD HL, DESTINATION ; point to the source
LD DE, DESTINATION + 1 ; point to the destination
LD BC, DESTINATION_SIZE - 1 ; copying this many bytes
LD (HL), 0X20 ; put a seed space in the first position
LDIR ; move 1 to 2, 2 to 3...
その結果、DESTINATION のメモリのチャンクは完全に空白になります。memmove と memcpy を試しましたが、この動作を再現できません。私はmemmoveがそれを正しく行うことができると思っていました。
memmove と memcpy がこのように動作するのはなぜですか?
この種の配列の初期化を行う合理的な方法はありますか?
配列の初期化のための char array[size] = {0} をすでに認識しています
memset が単一の文字に対して機能することは既に認識しています。
この問題には他にどのようなアプローチがありますか?