博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
产生随机数
阅读量:6119 次
发布时间:2019-06-21

本文共 1453 字,大约阅读时间需要 4 分钟。

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] ;LEA DX,string ;把偏移地址存到DX
   mov  byte ptr [di],'$' 
   dec  di ;减 1
   cld ;清方向标志位.
@@Divide:  xor  dx,dx ;异或运算
           div  bx ;无符号除法.
           or   dl,30h ;或运算
           mov  [di],dl 
           dec  di ;减 1
           test  ax,0ffffh ;测试指令
           jnz  @@Divide ;条件转移指令 
           inc  di ;加 1.
           push  di ;压入堆栈
           pop  dx ;弹出堆栈
           mov  ah,9 
           int  21h 
           pop  di ;弹出堆栈
           pop  bx ;弹出堆栈
           pop  dx;弹出堆栈
           ret ;过程返回
@@Temp_Save db   7 dup(?)
Dec_ASCII  EndP
; -----------------------------------------
Press_Key db   13,10,13,10,'Press any key to exit...$' 
Start:   push cs;压入堆栈
         pop  ds;弹出堆栈
         push es;压入堆栈
         pop  es;弹出堆
         mov  cx,6;随机产生25个1~6的随机数                           
@@L1:  xor  al,al;异或运算
       out  43h,al;I/O端口输出语法: OUT {端口号│DX},累加器 
       in  al,40h;I/O端口输入语法: IN 累加器, {端口号│DX} 
       cmp  al,6;比较.(两操作数作减法,仅修改标志位,不回送结果).
       ja  @@L1   ;大于6则继续产生随机数
       cmp al,0   ;等于0则继续产生随机数
       jz @@L1
       xor  ah,ah;异或运算,清0
       call Dec_ASCII ;显示输出这个数
       mov  dl,20h
       call Output_Chr
       loop @@L1
       lea  dx,Press_Key; LEA DX,string ;把偏移地址存到DX.
       mov  ah,9
       int  21h
       mov  ah,1
       int  21h
Exit_Proc: mov  ah,4ch ;结束程序
           int  21h
Code  ENDS
END   Start

 

 

本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366798,如需转载请自行联系原作者

你可能感兴趣的文章
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
mysql的innodb中事务日志(redo log)ib_logfile
查看>>
部署SSL证书后,网页内容造成页面错误提示的处理办法
查看>>