本文抜粋

1: アルデバラン(北海道) [US] 2026/05/21(木) 19:26:32.09 ID:PTHEhTlh0 BE:422186189-PLT(12015)
;---------------------------------------------------
; 16bit 線形合同法 (X = X * 5 + 1)
; 入力: なし
; 出力: HLレジスタ = 16bit乱数 (下位8bitのLレジスタを抽選に使用)
;---------------------------------------------------
NEXT_LCG:
LD HL, (RAND_SEED_16) ; HL = 前回値 X
LD D, H
LD E, L ; DE = X

; HL = X * 5 を乗算命令なしで計算 (X * 4 + X)
ADD HL, HL ; HL = X * 2
ADD HL, HL ; HL = X * 4
ADD HL, DE ; HL = X * 4 + X (つまり X * 5)

; + 1 を行う
INC HL ; HL = X * 5 + 1

LD (RAND_SEED_16), HL ; 次回のために保存
LD A, L ; 下位8bitをAレジスタに取り出す
RET
https://monobook.org/wiki/%E5%A4%9A%E6%AC%A1%E5%85%83%E7%96%8E%E5%AF%86%E4%B9%B1%E6%95%B0
no title


引用元:https://hayabusa9.5ch.io/test/read.cgi/news/1779359192/