linuxのメモ

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

string

文字列操作 - strcpy()

概要 文字列をコピーする 詳細 この命令は主にlodsb、stosbの2つの命令からなる 初めに、lodsb命令で%esiレジスタに割り当てられたコピー元の文字列の先頭アドレスから1byteを%alレジスタにロードする その後、stosb命令で%alレジスタの値を%ediレジスタに割…

文字列操作 - strlen()

概要 文字列の文字数を取得する 詳細 アセンブラ命令のrepneとscasb命令を使用して文字列の長さを取得する それぞれのアセンブラ命令は以下の操作を行う repne : %ecxレジスタの値が0になるまで処理を繰り返す scasb : %alと%ediの値を比較し、%ediの値を次…

文字列操作 - __stringify_1()

概要 マクロをマクロで定義された文字列に変換する 詳細

文字列操作 - __stringify()

概要 マクロを文字列に変換する 詳細 __stringify_1()を実行するが、複数の引数を指定して実行された場合も第一引数のみを変換する