《汇编语言编写随机.docx》由会员分享,可在线阅读,更多相关《汇编语言编写随机.docx(3页珍藏版)》请在三一办公上搜索。
1、汇编语言编写随机dos下使用汇编产生一个随机数方法 assume cs:code code segment start: mov ax,0h ;间隔定时器 out 43h,al ;通过端口43h in al,40h ;对端口40h访问2次 in al,40h ;一个随机数已经在al中了,如果你觉得访问2次还不够随机,你可以多访问几次,一般2次就已经很随机了 mov dl,al Mov ah,9 Int 21h mov ax,4c00h ;退出程序 int 21h code ends end start 汇编语言 1. 问题提出 有7位数,每一位是0-9自然数,只要按动一个键,就显示一位随机数,
2、按动7次,显示出7个数值。 提示:每次收取的号码,显示到屏幕上,抽取结束后,用英文提示:END。 2. 题意分析 该题目为随机数输出,要求每按一次键盘,出现一个随机数,范围是09。首先需要写出随机数的程序,再让随机程序运行7次即可,并在运行满7次后自动输出字符“END”。 3. 程序框图 4.程序及结果 STACK SEGMENT STACK LOOP1: KEY: SAHF MOV AH,0 LAHF MOV AH,0H INT 16H JZ KEY CALL RAND ADD BL,30H MOV DL,BL MOV AH,02H DW 256 DUP(?) STACK ENDS DATA
3、 SEGMENT MES DB END,0AH,0DH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR MOV AX,DATA MOV DS,AX MOV CX,10 INT 21H MOV DL, MOV AH,02H INT 21H LOOP LOOP1 NEXT: MOV DX,OFFSET MES MOV AH,09H INT 21H MOV AX,4C00H INT 21H START ENDP RAND PROC PUSH CX PUSH DX PUSH AX 结果: STI MOV AH,0 INT 1AH MOV AX,DX AND AH,3 MOV DL,10 DIV DL MOV BL,AH POP AX POP DX POP CX RET RAND ENDP CODE ENDS END START