私はアセンブリ 8086emu を使用しており、8 桁の数値ジェネレータが必要です。
@johnfound によるこのコードを使用しようとしました。
RANDGEN: ; generate a rand no using the system time
RANDSTART:
MOV AH, 00h ; interrupts to get system time
INT 1AH ; CX:DX now hold number of clock ticks since midnight
mov ax, dx
xor dx, dx
mov cx, 10
div cx ; here dx contains the remainder of the division - from 0 to 9
add dl, '0' ; to ascii from '0' to '9'
mov ah, 2h ; call interrupt to display a value in DL
int 21h
RET
ただし、1 つの数値を生成する場合にのみ役立ちます。そのクロックは 1 秒間に 18.2 回しか時を刻まないため、繰り返し呼び出しても同じ番号が返されます。
疑似乱数関数を作成しようとしましたが、アセンブリが初めてで、成功しませんでした。Math.random()
emu8086 でJava の機能に似たようなことをする方法があれば知りたいです。