(汇编)求100以内的素数
求100以内的素数。
要求:
(1)以十进制输出这些素数,每行10个,每输出一个素数都要有数秒的停顿。
(2)统计这些素数的个数,以十进制形式输出。
(3)计算这些素数之和,以十进制形式输出,并让该和闪烁3次。
(4)数据的输入和结果的输出都要有必要的提示,且提示独占一行。
(5)要使用到子程序。
data segmentcount dw 0sum dw 0num db 100 dup(?)msg1 db 'prime number in 100:','$'msg2 db 0ah,0dh,'count:',0ah,0dh,'$'msg3 db 0ah,0dh,'sum:',0ah,0dh,'$'crlf db 0ah,0dh,'$'msg4 db 0dh, ' ','$'msg5 db 0dh,'$'
data ends
code segmentassume cs:code,ds:datamain proc far ;主程序
start:mov ax,datamov ds,axcall work1 ;把素数求出来存入num中,个数、和分别放入count和sum中lea dx,msg1mov ah,09hint 21hcall disp1 ;输出素数,10个一行lea dx,msg2mov ah,09hint 21hcall disp2 ;输出素数的个数lea dx,msg3mov ah,09hint 21hcall disp3 ;输出素数和,闪烁版lea dx,msg3mov ah,09hint 21hcall disp4 ;输出素数的和,只闪烁显示三次mov ax,4c00hint 21hmain endpwork1 proc near ;求解素数的子程序lea di,nummov bh,0 ;清零操作mov bl,2 ;从2~100
L1:cmp bl,100ja L5 ;大于100 则跳出循环mov dl,2 ;bl除以2~(bl-1),
L2:cmp dl,bljae L3 ;dl大于等于bl则跳出这个循环,表示bl是素数mov ax,bxdiv dlcmp ah,0 ;能整除则不是素数jz L4inc dljmp L2
L3: ;是素数, 存入[di],count++,sum+=bxinc countadd sum,bxmov [di],blinc di
L4:inc bljmp L1
L5:retwork1 endpdisp1 proc near ;素数输出子程序,10个一行lea si,nummov cx,count ;做count次loop
H1:mov ax,countsub ax,cx ;每次cx会减少1 mov bl,10div blcmp ah,0jnz H2 ;ax-cx不是10的倍数跳走输出素数lea dx,crlf ;是10的倍数输出回车换行 mov ah,09hint 21h
H2:mov bl,[si] ;间接寻址 mov bh,0call disp10 ; 调用以十进制输出的函数mov dl,' ' ;输出空格区分mov ah,02hint 21hcall delay ;调用延迟子程序inc si ;内存向下移动loop H1retdisp1 endpdisp2 proc near ;素数个数输出子程序mov bx,countcall disp10retdisp2 endpdisp3 proc near ;素数和输出子程序 (闪烁版)mov bx,sumcall dispsumretdisp3 endpdisp4 proc near ;素数和输出子程序(只闪烁三次) call func2retdisp4 endpdisp10 proc near ;十进制输出bx存的数的子程序push cx ;压栈mov cx,0 ;计存入栈的元素个数
D1:mov ax,bx
mov dx,0 ;dx清零
mov bx,10div bxpush dx ;压栈inc cxmov bx,axcmp ax,0 ;判断商是否为0jnz D1
D2:pop dx ;出栈add dx,30h ;以10进制输出mov ah,02hint 21hloop D2pop cxretdisp10 endpdispsum proc near ;闪烁输出素数和的子程序mov cx,1000Dcall func1 ;不断取商mov cx,100Dcall func1 ;10进制输出商,并且闪烁显示子程序 mov cx,10Dcall func1mov cx,1Dcall func1retfunc1 proc near ;闪烁输出子程序mov ax,bxmov dx,0div cxadd al,30h ;10h中断的9号功能,输出almov bl,10000111b ;bl设置文本属性(闪烁)mov bh,0 ;显示页码0mov cx,1 ;重复次数1mov ah,09hint 10hmov bx,dx ;bx存入dx中余数,位置不能乱放mov ah,03h ; 在文本坐标下,读取光标各种信息int 10hinc dlmov ah,02h ; 用文本坐标下设置光标位置int 10hretfunc1 endpdispsum endpfunc2 proc near ;用循环设置闪烁三次显示sum的子程序mov cx,3
G1:mov bx,sum call disp10 ;输出10进制sumcall delay ;延迟显示lea dx,msg4 ;用空格和0dh把输出的sum盖住mov ah,09hint 21hcall delay ;延迟显示lea dx,msg5 ;0dh,光标回到行首mov ah,09hint 21hloop G1 ;循环3次mov bx,sum ;最后在显示不动的sumcall disp10retfunc2 endpdelay proc near ;停顿子程序push cxpush axmov cx,20
F1:mov ax,65535
F2:dec axjnz F2loop F1pop axpop cxretdelay endpcode ends
end start
(汇编)求100以内的素数相关推荐
- Python求100以内的素数和并输出
#求100以内的素数并输出 def isPrime(num):for i in range(2,num):if num%i == 0:return Falsereturn True sum = 2#1 ...
- 2、求100以内的素数之和。(20分)
题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...
- 用筛选法求100以内的素数(数组)
用筛选法求100以内的素数,要求使用数组. #include "stdafx.h" #include<iostream> using namespace std; in ...
- Python练习:求100以内的素数和
描述 求100以内的素数之和并输出. 输入格式 该题目没有输入 输入输出示例 输入 输出 示例 1 无(红色字体不是OJ的输入) 说明:直接输出100以内的素数之和.(红色字体不是OJ的输出) 代 ...
- PTA求100以内的素数
7-3 求100以内的素数 (15 分) 求100以内的全部素数,每行输出10个.素数就是只能被1和自身整除的正整数,1不是素数,2是素数.要求定义和调用函数prime(m)判断m是否为素数,当m为素 ...
- 【C语言】 利用筛选法求100以内的素数
算法思路: 原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数.如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉. 代码如下: //C语言 筛选法求100以内的素 ...
- C语言:用筛选法求100以内的素数
用筛选法求100以内的素数 素数:即质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 筛选法:1不是素数,划去:2是素数,留下,将2的倍数划去:3没被划去,将3的倍数划去: ...
- 求100以内的素数(质数)用python
标题求100以内的素数用python 逻辑:2<x<101,遍历一遍[2,101]之间的数,然后对每个数,进行整除,素数只能被整除一次 代码如下: # -*-author:jackzhan ...
- 求100以内的素数(c语言)
求100以内的素数(c语言) 素数的概念 素数:该数除1及其本身不再有其它的因数 2为最小的素数 代码: #include<stdio.h> void main(){for(int num ...
最新文章
- 什么样的技术将在后大流行的世界里兴起
- 可持久化Trie+堆优化 OR Trie树上求XOR第K大 ---- P5283 [十二省联考2019]异或粽子
- 在Win7下建立新账户的方法
- Xmodem恢复交换机IOS
- utf-8编码用于asp出现乱码的问题--从数据库调用的是乱码
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
- 做PPT使用的矢量图标网站
- kibana笔记 -- KQL
- 使用Postman访问k8s RESTful API
- 今日金融词汇---BP
- arch linux添加用户,Arch Linux配置教程
- WebCollector 爬虫解析
- uniapp 使用canvas 画图连线
- 计算机程序工作日志,工作日志软件
- Linux的hdparm工具参数详解:硬盘检查、测速、设定、优化
- 钢条切割问题-动态规划-c语言实现
- 个人拥有云服务器能用来干啥好玩的?
- Maven使用第一行红叉报错
- Omni/USDT钱包对接PHP开发包