1.汇编语言怎麼产生随机数
汇编语言怎麼产生随机数
NASM汇编:section .textglobal _start ; gcc 必须的源码声明
rand: ; 生成随机数,返回值在eax
push edx
rdtsc ; 内核纳秒级时间作为种子
imul eax,源码网站源码绑定 edx
add eax, 0xF1E2D3C4
imul eax, 0xB5A
pop edx
ret
_start: ; 程序入口
nop
call rand ; 生成随机数
mov esi, msg
mov ecx, len
call binasc ; 转换成ascii
mov edx, ecx ; 显示
mov ecx, esi
mov ebx, 1
mov eax, 4
int 0x
mov eax, 1 ; 退出
xor ebx, ebx
int h
; 将数字转换成ascii
binasc:
push edx
push ebx
push edi
push eax
mov edi,esi
ba1:
mov byte [esi],' '
inc esi
loop ba1
mov ebx,
or eax,eax
jns ba2
neg eax
ba2:
xor edx,edx
div ebx
add dl,'0'
dec esi
mov [esi],dl
inc ecx
cmp esi,edi
jz ba4
or eax,eax
jnz ba2
pop eax
or eax,eax
jns ba3
dec esi
mov byte [esi],'-'
inc ecx
ba3:
pop edi
pop ebx
pop edx
ret
ba4:
pop eax
jmp ba3
section .data
msg db ' ',0xa
len equ $ - msg
多次运行结果: