ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

パーシャルストールとは

mov eax, 0xFF000000  ; = 0xFF000000
mov ax, 0x8000       ; = 0xFF008000
mov ebx, eax         ; <- ここ

直前に 16bit サイズで書き込んだのを、前に書き込んだ上位 16bit と結合させる必要があるため、
読み込み時に 5〜6 クロックのペナルティが課せられること。


別に 16bit に限らず、小さいサイズで書き込んで大きいサイズで読み出すとアウト。


ちなみに、

mov eax, 0x0
mov ax, 0x8000
mov ebx, eax

これもパーシャルストールが発生するけど、

xor eax, eax
mov ax, 0x8000
mov ebx, eax

これなら問題ない。xor で 0 クリアすると eax レジスタには空フラグが立つらしい。