用汇编语言产生随机数的小程序 10
具体要求:用汇编语言产生8位或16位的二进制数。网上类似的程序很多,但大多都运行不出来。恳请哪位大虾相助!先谢谢啦!要求:利用BIOS功能调用的时钟中断调用(1AH中断调...
具体要求:用汇编语言产生8位或16位的二进制数。网上类似的程序很多,但大多都运行不出来。恳请哪位大虾相助!先谢谢啦!
要求:利用BIOS功能调用的时钟中断调用(1AH中断调用),读取时钟计数器的值,利用随时变化的时间计数值产生随机数。 展开
要求:利用BIOS功能调用的时钟中断调用(1AH中断调用),读取时钟计数器的值,利用随时变化的时间计数值产生随机数。 展开
展开全部
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code,ES:Code
; -------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
Output_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
Output_Chr endp
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[6]
mov byte ptr [di],'$'
dec di
cld
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 7 dup(?)
Dec_ASCII EndP
; -------------------------------------
Start: push cs
pop ds
push es
pop es
@@L1: xor al,al
out 43h,al
in ax,40h
call Dec_ASCII ;显示输出这个数
mov dl,20h
call Output_Chr
mov ah,1
int 21h
cmp al,1bh ;Esc键结束程序
jnz @@L1
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
Code Segment
Assume CS:Code,DS:Code,ES:Code
; -------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
Output_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
Output_Chr endp
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[6]
mov byte ptr [di],'$'
dec di
cld
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 7 dup(?)
Dec_ASCII EndP
; -------------------------------------
Start: push cs
pop ds
push es
pop es
@@L1: xor al,al
out 43h,al
in ax,40h
call Dec_ASCII ;显示输出这个数
mov dl,20h
call Output_Chr
mov ah,1
int 21h
cmp al,1bh ;Esc键结束程序
jnz @@L1
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询