start:
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
mov bx,86h*4
mov ax,offset random
mov es:word ptr[bx],ax
mov ax,seg random
mov es:word ptr [bx+2],ax
int 86h
call output
mov ah,4ch
int 21h
想問一下那個86h*4是干什么用的,還有后面int 86h,老師讓寫一個隨即產生1-9的程式,利用86h,這是我網上查的,但是看不懂
mov ah,0
int 1ah
mov ax,dx
and ax,15
mov dl,10
div dl
mov bl,ah
還用利用時鐘產生亂數時,為什么要清空ax的前12位,直接用秒數除以10不可以么
謝謝了
uj5u.com熱心網友回復:
既然是要利用int86h,那就要設定此中斷向量指向到自己的代碼,86h*4 就是 es=0 時 int86h 中斷向量的所在了;下面的那些指令就是設定 int86h指向 random 的。不直接除以 10,是防止除法溢位吧,除的結果商在 al,只能大到 255,若是 ax 大于 2550 就要溢位了,所以先抹去高位部分
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/66777.html
標籤:匯編語言
上一篇:小白,不懂 rows, cols, pixels, meta = img.asDirect()中的asDirect是什么
