2016-05-01から1ヶ月間の記事一覧
概要 任意の大きさのメモリを初期化する 詳細 このマクロでは以下の引数を受け取る 初期化するメモリのアドレスを示す : s 初期化する値のアドレスを示す : c 初期化するメモリの大きさを示す : count __builtin_constant_p()関数でcountの値が定数か確認し…
概要 任意の大きさのメモリを初期化する 詳細 この関数では以下の引数を受け取る 初期化するメモリへのポインタ : s 初期化する値へのポインタ : c 初期化するメモリの大きさ : count 拡張インラインアセンブラで以下の処理を行う sをediレジスタに、cをeax…
概要 任意の大きさのメモリを初期化する 詳細 この関数では以下の引数を受け取る 初期化するメモリへのポインタ : s 初期化する値へのポインタ : pattern 初期化するメモリの大きさ : count countの値が0 - 4の場合は、sのアドレスの値をpatternの値でcount…
概要 任意の大きさのメモリを初期化する 詳細 このマクロでは以下の引数を受け取る 初期化するメモリのアドレスを示す : s(rdiレジスタ) 初期化する値のアドレスを示す : c(rsiレジスタ) 初期化するメモリの大きさを示す : count(rdxレジスタ) レジスタへの…
概要 任意の大きさのメモリを初期化する 詳細 __memset_generic()のwrapperマクロ
概要 任意の大きさのメモリを初期化する 詳細 この関数では以下の引数を受け取る 初期化するメモリのアドレスを示す : s 初期化する値のアドレスを示す : c 初期化するメモリの大きさを示す : count 拡張インラインアセンブラにより引数を以下のようにレジス…
概要 rdiレジスタの指すアドレスからrdxレジスタの値分のメモリを初期化する 詳細 最初に以下の操作を行い処理の準備を行う rdiレジスタに格納されている保存先のアドレスをr9レジスタに退避 対象の文字列へのアドレスが保持されているsilレジスタ(rsiレジス…
概要 rdiレジスタの指すアドレスからrdxレジスタの値分のメモリを初期化する 詳細 1: ecxレジスタにsilレジスタの値を、raxレジスタに0x0101010101010101とsilレジスタの値の積をそれぞれ保存し、rdiレジスタの下位3bitが0でなければ以下の処理を行う rdxレ…