linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

文字列操作 - strncpy()

概要

文字列を指定した文字数分コピーする

詳細

この命令は主にdecllodsbstosbの3つの命令からなる

初めに、文字数のカウンタをデクリメントし、カウンタが負数になった場合は処理を終える

次にlodsb命令で%esiレジスタに割り当てられたコピー元の文字列の先頭アドレスから1byteを%alレジスタにロードする

その後、stosb命令で%alレジスタの値を%ediレジスタに割り当てられたコピー先のアドレスにコピーし、コピーした文字が0(終端文字'\0')でなければ繰り返し実行する

この操作により、コピー元の文字列を指定した文字数分コピー先のアドレスにコピーする。

また、この関数はEXPORT_SYMBOL()によりモジュールからアクセス可能なシンボルとなる