汇编语言四 产生随机数,统计奇数的个数,并计算所有奇数的和
2018-02-07 17:19
1221 查看
1.题目要求:
用同余法产生200个小于256的伪随机数,统计其中奇数的个数,并计算所有奇数的和,将奇数个数存入名为CNT的字节单元,和存入名为SUMODD的字存储单元中。
2.编写代码:
用同余法产生200个小于256的伪随机数,统计其中奇数的个数,并计算所有奇数的和,将奇数个数存入名为CNT的字节单元,和存入名为SUMODD的字存储单元中。
2.编写代码:
STACK SEGMENT STACK'STACK' DW 100H DUP(?) TOP LABEL WORD STACK ENDS DATA SEGMENT CNT DB 0 ;CNT储存奇数的个数 SUMODD DW 0 ;SUMODD储存奇数的和 VAR1 DB 1 ; VAR2 DB 255 ;同余法产生小于256的随机数:AX=(AX*7+1) mod 255 VAR3 DB 200 ;要产生200个随机数,就循环200次 VAR4 DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX XOR AX,AX XOR BX,BX XOR CX,CX XOR DX,DX MOV AL,VAR1 MOV BL,VAR2 MOV CL,VAR3 L1: PUSH CX ;因为循环中还嵌套了循环,先将外层循环次数压入堆栈 MOV CX,6 MOV VAR4,AX L2: ADD AX,VAR4 LOOP L2 ;求得AX*7 ADD AX,1 DIV BL ;求得(AX*7+1) mod 255,余数在AH中 ROR AH,1 JNC OU ;将AH最低位移入CF中,如果是奇数,CF=1,如果是偶数CF=0 ROL AH,1 MOV CL,8 SHR AX,CL ;如果是奇数:将AX更新为(AX*7+1) mod 255 ADD DX,AX ;奇数和 DX+AX INC BH ;奇数个数 BH+1 JMP NEXT OU: ROL AH,1 ;如果是偶数 MOV CL,8 SHR AX,CL ;更新AX,DX和BH不变 JMP NEXT NEXT: POP CX ;将循环次数弹出堆栈到CX LOOP L1 MOV CNT,BH ;将个数保存到CNT MOV SUMODD,DX ;将和保存到SUMODD MOV AH,4CH INT 21H CODE ENDS END START
相关文章推荐
- 第一节:汇编语言的产生
- 使用统计学习计算选出所有牌有效且没有无效牌的概率
- 汇编语言:使用汇编程序计算2的8次方
- 计算出从1到100之间所有奇数的平方之和,scala
- 汇编语言 统计负数个数(一)
- 用汇编语言随机产生字母的子程序
- Eratosthenes筛法求1——100000之间所有的素数(32位汇编语言)
- 作业3-2 输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数
- 用80x86汇编语言:键入十个数,算出正数之和,并统计负数的个数
- C程序设计语言2------随机数产生
- 【语言-汇编】圆周率(PI)计算
- 汇编语言 计算 2^3 .
- SQL扩展之T-SQL中的数据查询语言之统计计算
- R---用于统计计算和统计制图的优秀工具,S 语言的一种实现
- 汇编语言 统计负数个数(二)
- 汇编语言统计输入中各字符出现的次数
- 实训汇编语言设计——删除数组中所有为零的项
- 作业三-2.输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
- 汇编语言程序设计学习笔记(第一遍学习)-第1节:机器语言编程到汇编语言的产生
- 汇编语言-计算总平成绩