これなんですか？
x86なCPUで自己書き換えプログラムが実行できるかだけのテストプログラムです。
実際には486世代のCPUだけがプリフェッチキューが大きい上にジャンプ命令の際にそれを破棄しないということがよく知られています。
そのテストしかしていません。
プリフェッチキューのサイズを調べたりなどのもっと詳しいことはここに書かれていることを学んでください。
https://ja.wikipedia.org/wiki/%E8%87%AA%E5%B7%B1%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%B3%E3%83%BC%E3%83%89

実行環境はIA32なMS-DOS互換環境です。
手元ではPC-98でしか確認していません。TOWNSでもFMRでもPC/ATでも動作はすると思います。
486chk.comです。
486DX2 ジャンプでプリフェッチキュー破棄せず(自己書き換えコード不可) cannot executeと表示されます。
非MMXなPentium ジャンプでプリフェッチキュー破棄(自己書き換えコード実行可)can executeと表示されます。
各種emulatorのCPU ジャンプでプリフェッチキュー破棄(自己書き換えコード実行可)can executeと表示されます。

このテストはV30云々とは関係ないです。CPUが早いせいで特定ゲームが動作できない、という話とは別問題です。
V30特有の話はPC-9801ではたびたび話題に出ますが、当時の(CPU周波数含む)機種依存プログラム(FDCBIOSも8MHz専用とか筋の悪いのがいる)が悪いのであって
x86CPUの互換性は事実上担保されていると感じます。


と寝る前に書きましたが、細かーーーーい違いはIA32にもやはりあります。機種依存になってしまう変なプログラムは書かないようにしましょう。
https://reiria.bbs.fc2.com/?act=reply&tid=11906114
例えばこのような細かな違いが実際のコードで問題になることはほぼありえないのでしょうけれども出てきます。

2026年11月4日夜追記
さてV30命令をEPSON機だと実行できてしまう話、私は嘘だろうと思っていましたからテストプログラムを書きました。
ファイル名はv30chk1.com(11/6夜修正)です。やっていることはV30独自命令test1 0F 10を実行できるかのテストだけです。
試験結果
8086 持っていません、未定義割り込みから帰ってこれないと思います。(一応の保険はいれてありますが)
V30 当然V30独自命令が実行できるのでそのように表示されます。PC-9801RA2で確認しました。
80286 PC-286VE(11/6修正)で確認 未定義命令です。DIPSW3-8やCPU周波数設定の状態に依らず未定義命令です。
80386 PC-9801RA2で確認 UMOVとして見えるように 0F 10 C1にしてあります。UMOVとして実行されます。
80486 486DX2のPC-9801BXで確認 同上
Pentium PC-9821Xa(金pentium)とPC-9821Cr13(非MMX)で確認 未定義割り込みに飛びます。
SSEの使えるCPUの場合 0F 10 C1はmovupsに解釈されます。(この判定は11/6夜版で変更)そのように表示されるはずですが実機では確かめていません。

VBM98
https://github.com/madscient/VirtualBareMetal98/blob/master/src/mon/v30_r0.c
仮想86環境でV30命令をx86命令に変換してくれるこのソフトでは386と486(その他)ではtest1はトラップできずにUMOVにされてしまうはずです。
がPentium機のCr13ではきちんと処理してくれました。

EPSON機のBIOSが未定義割り込みを乗っ取ってV30命令を解釈してくれる、という噂はPC-286VE(11/6修正)に関しては嘘でした。
そういうことはしていません、再度確かめるためにv30chk2.comも準備しました。
こちらでは未定義割り込みのフックを行いませんので、BIOSがそういうことをやっていたらそちらの動作を行ってくれるはずですがしっかり暴走しました。
しかしtest1命令だけの確認です。set1など他の命令はもしかしたらやってるかもしれません、が全部の命令をテストするのはバカらしいのでやりません。
さらに書くなら386、486ではUMOVはフックできません、素通しです、普通には不可能です。

またtest1はSSEがないpentium以降機ではトラップできてVBM98で実行してもらえますが、それ以外のset1他のテストをしていません。
片手落ちどころではありませんが、確かめたかったことはEPSON機のBIOSがお膳立てをしてくれているかどうかだけですので私は満足です。
結論:PC-286VE(11/6修正)のBIOSはV30独自命令"test1"をトラップしません。


2026年11月6日夕方
リサイクル掲示板に実行結果報告がありましたのでそれを受けての考察
Cyrix486はUMOVを実行せずに何か違うことをやるみたいです、それがとても危なそうなので
Cyrix製CPUの場合は実行停止することにしました。

v30chk2は未定義命令割り込みをフックせずに実行しますから、命令が解釈できる状況
(つまり本物V30、UMOVを実行できるintelかamdの386、486、BIOS内特殊処理が噂通り為されている場合、仮想86で命令トラップをしている状態)
ではない場合は暴走します。
暴走するのがただしい反応です、つまり危ないのでそもそも実行しないことを後出しですがおすすめします。
Cyrix486(386も)が0F 10 C1をどのように処理するのかわかりません、調べてからまた書きます。危ないので実行しないでください。

2026年11月6日夜
手元のハイパーメモリCPUなAm5x86を載せたAs、Cyrix5x86を直載せしたXe10でも試しました。
Am5x86は0F 10 C1がNOPっぽい動作です。未定義命令割り込みに飛びません。UMOVとしての仕事もしません、各フラグも変わりませんでした。暴走しませんがV30専用命令は使えません。
Cyrix5x86では未定義命令割り込みに飛びます。普通でした。が、Cyrix486ではこのバイト列が未定義命令ではないことが報告からわかりました。
具体的に何をやってるかまったく想像できません(CPU破壊命令なんてものは搭載しないと思いますが不安です。)ので試験動作をさせないようにしています。

文責リウ
このコードを実行して何かが起きても責任を取りません。古い機種で遊ぶ人は予備を持ってください。
また誰でも書けるようなこのテストプログラムコードの著作権を放棄します。ご自由にお使いください。
2026年11月4日未明 初版
2026年11月4日夜 V30命令の実行テストを追加
	11月6日夕 V30CHK.COMにフック開放忘れバグがあったので修正、cyrix386,486,5x86ではテストしないように変更、実行ファイルはv30chk0.comに名前変更
	11月6日夜 V30CHK0でまだ見抜いていないパターンがあったので修正 ファイル名はV30CHK1.COM SSEはCPUIDで見抜くことに変更 結果文言変更
			V30CHK2.COMはバイナリそのままで残していますがCyrixチェックが含まれていません、危ないことをしないように