汇编语言如何产生随机数???请高手指教。

jlhong 2004-05-12 10:21:29
汇编语言如何产生随机数???
...全文
593 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aluo1979 2004-06-27
  • 打赏
  • 举报
回复
UP
sten 2004-06-26
  • 打赏
  • 举报
回复
up!
Allemand 2004-06-23
  • 打赏
  • 举报
回复
以前有人问过:

http://community.csdn.net/Expert/topic/2973/2973071.xml?temp=.7555353
wangziz 2004-06-22
  • 打赏
  • 举报
回复
assume cs:cseg,ds:cseg,ss:cseg
cseg segment para public 'code'
FirstCode:
org 100h
TableBase label byte
LoadTSR:
jmp cs:[Last]
Last dw LastCode
org 200h
ByteLoc dw TableBase+00ffh
LastByte dw Tablebase+00ffh
Continue9 dd ?
Continue2F dd ?
INT9:
push ax
push bx
mov bx,cs:[ByteLoc]
inc bl
cmp bx,cs:[LastByte]
je exit
xor ax,ax
out 43h,al
in al,40h
mov ah,al
in al,40h
xchg al,ah
shr ax,1
shr ax,1
mov cs:[ByteLoc],bx
mov cs:[bx],al
exit:
pop bx
pop ax
jmp cs:[continue9]
INT2F:
cmp ah,0aeh
jne exit2f
cmp dx,726eh ;'rn'
jne exit2f
push bx
push cx
mov dx,di
or al,al
jz DoneOK
mov cl,al
xor ch,ch
Loop1:
cli
mov bx,cs:[LastByte]
cmp bx,cs:[ByteLoc]
je DoneShort
inc bl
mov al,cs:[bx]
mov cs:[LastByte],bx
sti
stosb
loop loop1
DoneOK:
mov al,0ffh
DoneDone:
sub di,dx
xchg dx,di
pop cx
pop bx
iret
DoneShort:
xor al,al
jmp DoneDone
exit2f:
jmp cs:[continue2f]
LastCode:
mov ax,0ae00h
mov dx,0726eh
int 2fh
cmp al,0ffh
jnz NotLoaded
or dx,dx
jz AlreadyLoaded
NotLoaded:
mov ax,3509h
int 21h ;get int 9
mov [word ptr Continue9],bx
mov [word ptr Continue9+2],es
mov ax,2509h
mov dx,offset INT9
int 21h ;link to INT9
mov ax,352Fh
int 21h ;get int 2F
mov [word ptr Continue2F],bx
mov [word ptr Continue2F+2],es
mov ax,252Fh
mov dx,offset INT2F
int 21h ;link to INT2F
mov dx,offset Success
mov ah,9
int 21h
mov ax,3100h ;TSR
mov dx,(LastCode+15-FirstCode)/16
int 21h ;TSR
AlreadyLoaded:
mov dx,offset Already
mov ah,9
int 21h
mov ax,4c01h
int 21h
Success db 0dh,0ah,0ah,'RANTSR loaded and linked to INT 2F',0ah,0dh
db ' Joseph R Ahlgren, BBS 703-241-2661',0ah,0dh,0ah,'$'
Already db 0dh,0ah,0ah,'RANTSR already loaded',0ah,0dh,0ah,'$'
cseg ends
end LoadTSR
programfanny 2004-06-14
  • 打赏
  • 举报
回复
16位下 RDTSC 可用 DB xx xx... 代替
你的单片机CUP是x86吗?
longz21zheng 2004-05-14
  • 打赏
  • 举报
回复
取出CPU的时间戳计数器,然后用你的模数求模。

RDTSC

不过,在16位我没有这个指令。不过你可以取得系统时间,把它转变成毫秒,然后。。。
vicallee 2004-05-12
  • 打赏
  • 举报
回复
转贴:
DATA SEGMENT


OUTBUF DB 4 DUP(?)


DATA ENDS


CODE SEGMENT


ASSUME CS:CODE,DS:DATA


MAIN PROC FAR


PUSH DS


XOR AX,AX


PUSH AX


MOV AX,DATA


MOV DS,AX


LOP1: MOV SI,OFFSET OUTBUF


PUSH SI


MOV AH,0


INT 1AH


MOV AL,DL


MOV AH,0


MOV BL,20


DIV BL


INC AH


LOP2: MOV AL,AH


MOV AH,0


MOV BL,10


DIV BL


ADD AL,30H


MOV [SI],AL


INC SI


ADD AH,30H


MOV [SI],AH


INC SI


MOV BYTE PTR [SI],20H


INC SI


MOV BYTE PTR [SI],'$'


POP DX


MOV AH,9


INT 21H


MOV CX,9000


DONE1:MOV BX,0FFFFH


DONE:DEC BX


JNE DONE


LOOP DONE1


MOV AH,6


MOV DL,0FFH


INT 21H


JE LOP1


CMP AL,'Q'


JE LAST


JMP LOP1


LAST: RET


MAIN ENDP


CODE ENDS


END MAIN
jlhong 2004-05-12
  • 打赏
  • 举报
回复
能否请 vicallee(^^给我个理由先^^) 解释一下,我要在单片机上用这个。不胜感激!!!

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧