【汇编】求100以内的素数asm
求100以内的素数(微机原理大作业)
一、问题描述
求 100 以内的素数。
(1)以十进制输出这些素数
(2)统计这些素数的个数,以十进制形式输出。
(3)计算这些素数之和,以十进制形式输出。
(4)数据的输入和结果的输出都要有必要的提示,且提示独占一行。
(5)要使用到子程序。
二、问题分析
1.什么是素数?
在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
2.100以内的素数怎么求?
双层循环嵌套
3.求个数及和
其他高级语言算法
public static void main(String[] args) {
int and=0;
int num=0;
for(int i=2;i<100;i++){
int j=2;
for(;j<i;j++){
if(i%j==0){
break;
}
}
if(i==j){
and+=i;
num++;
//输出
System.out.print(i+" ");
}
}
//输出
System.out.print("\nand:"+and);
System.out.println("\tnum:"+num);
}
运行截图:

4.十进制转换
int var1=1060
int a[4]
int i=0
do
a[i]=var1%10
var1=var1/10
if(var1==0)break
while(true)
三、源程序代码清单
data segment
text0 DB 'Prime numbers within 100 are:',0DH,0AH,'$'
text1 DB 0DH,0AH,'Number of prime numbers within 100:',0DH,0AH,'$'
text2 DB 0DH,0AH,'Sum of prime numbers within 100:',0DH,0AH,'$'
num DB 0
plus dw 0
var1 DB 0,4 dup(0)
data ends
assume cs:code,ds:data
code segment
start:
;;;(开始);;;;;;;;;;一定得加这两句
mov ax,data
mov ds,ax
;;;(结束);;;;;;;;;;一定得加这两句
mov dx,OFFSET text0
MOV AH,9H
INT 21H ;输出提示text0
;mov num,0
;mov plus,0
mov cx,99
aa1: ;第一层循环
mov ax,101
sub ax,cx
push cx
call demo1 ;判断ax是否为素数
pop cx
loop aa1
;;;(开始);;;;;;;;;;输出提示text
mov dx,offset text1
mov ah,9
int 21h
mov dl,num
mov dh,0
call demo2
mov dx,offset text2
mov ah,9
int 21h
mov dx,plus
call demo2
;;;(开始);;;;;;;;;;输出提示text
mov ax,4c00h
int 21h
demo1 proc ;判断ax是否为素数
mov cx,ax ;ax=2,
dec cx ;自减指令,cx=1
aa2: ;第二层循环
push ax
div cl ;ax%cl=ah
cmp ah,0
pop ax
je aa2end ;if(i%j==0)break
loop aa2
aa2end:
cmp cx,1
jne demo1end
inc num ;自增
mov ah,0
add plus,ax
mov dx,ax
call demo2 ;输出多位数
demo1end:
ret
demo1 endp
demo2 proc ;输出多位数
push dx
;mov dx,1060
mov ax,dx
mov dx,0
;mov var1,0
again:
mov bx,10
div bx
inc var1[0]
mov bl,var1
mov bh,0
mov var1[bx],dl
mov dx,0
cmp ax,0
jne again
again1:
mov bl,var1
mov bh,0
mov dl,var1[bx]
add dl,30h
mov ah,2
int 21h
dec var1
mov al,var1
cmp al,0
jne again1
mov dl,9H ;制表符
mov ah,2
int 21h
pop dx
ret
demo2 endp
code ends
end start
四、运行结果与分析

五、心得体会
1.1060使用div时注意数值类型为word
用div bx;dxax/bx->ax,dxax%bx->dx
2.一定不能漏了这两句,不然输出内容前面会好多乱码
mov ax,data
mov ds,ax
3.汉字提示输出会乱码
ps:看看有没有银抄作业/斜眼笑
【汇编】求100以内的素数asm的更多相关文章
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- 斐波那契数列(递归)&求100以内的素数
Java 5 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程序.它是以 前的 StringTokenizer 和 Matcher 类之间的某种结合.由于任何数据都 ...
- js求100以内的素数
//打印2~100之间的数 ; i< ; i++){ var a = true; ; j < i; j++){ //判断i能否被j整除 ){ //能被整除则说明不是素数,修改布尔值为fal ...
- Python3练习题 026:求100以内的素数
p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始 for j in range(2, ...
- python 求100以内所有素数
def prime(num): for i in range(2, num): if num % i == 0: # 能被1之外的任意个数整除的即为非素数,返回False,将被filter函数过滤掉 ...
- 求出100以内的素数(java实现)
j package test1; //2018/11/30 //求100以内的所有素数 public class Main10 { public static void main(String[] a ...
- python求100以内素数
python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...
- Python3求m以内的素数、求m个数中最小的n个数
[本文出自天外归云的博客园] 题1:求m以内的素数(m>2) def find_all_primes_in(m): def prime(num): for i in range(2, num): ...
- python、C++经典算法题:打印100以内的素数
题目 打印100以内的素数 思路1 素数的特点: 素数一定是奇数 一个数如果是合数,那么它一定能够被2到这个合数的开平方内的某个素数整除(这个特点是提升效率的关键) 一个数如果不能被从2到它自身开平方 ...
- Java例题_27 100以内的素数
1 /*27 [程序 27 求素数] 2 题目:求 100 之内的素数 3 */ 4 5 /*分析 6 * 素数:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 7 * 同第二题: ...
随机推荐
- 【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)
这俩软件都不大,比较便携. FreePic2PDF: 我下载的来源:https://www.52pojie.cn/thread-1317140-1-1.html(包含下载链接https://www.l ...
- [HTB] 靶机学习(一)Heal
[HTB] 靶机学习(一)Heal 概要 学习hackthebox的第一天,本人为初学者,将以初学者的角度对靶机渗透进行学习,中途可能会插入一些跟实操关系不大的相关新概念的学习和解释,尽量做到详细,不 ...
- C# 中 WebSocket 与 SignalR:实时通信的两种选择
在现代 Web 应用中,实时通信变得越来越重要.无论是聊天应用.在线游戏.股票行情推送还是协作编辑工具,都需要服务器能够主动向客户端推送数据.在 .NET 生态系统中,WebSocket 和 Sign ...
- P6790 [SNOI2020] 生成树 题解
感觉很多题解都说的不是很清楚?如何将三操作与二操作合并起来一起处理好像都没有提到.(也有可能是我太菜了,看了半天才懂) 思路 考虑这个图一定是一个广义串并联图.为什么呢? 广义串并联图的定义是不存在一 ...
- 数据库事务回滚:FastAPI中的存档与读档大法
title: 数据库事务回滚:FastAPI中的存档与读档大法 date: 2025/05/10 00:18:52 updated: 2025/05/10 00:18:52 author: cmdra ...
- C# 之静态构造器与静态字段初始化器
public class Test { /// <summary> /// 静态字段初始化器会在调用静态构造器前运行. /// 如果类型没有静态构造器,字段会在类型被使用前或运行时中更早的 ...
- git 初始化项目、创建本地分支、本地分支与远程分支关联
在远程没有项目的场景下,可以通过如下步骤创建和关联远程分支: 在Git官网上点击New repository新建项目: 在本地新建一个同名文件(以demo为例),并初始化项目: 在demo目录打开gi ...
- 2021NOI 省选训练赛day2T1 A. 黑白沙漠
2021NOI 省选训练赛day2T1 A. 黑白沙漠 Problem 在一条长度有限的数轴 \([L,R]\) 上,有 \(N\) 栋建筑物.其中第 \(i\) 栋建筑物的坐标为 \(x_i\) , ...
- K8s新手系列之CronJob
概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/ CronJob控制器以 Job控制 ...
- pytorch入门 - AlexNet神经网络
AlexNet背景 AlexNet是2012年由Alex Krizhevsky.Ilya Sutskever和Geoffrey Hinton提出的深度卷积神经网络架构. 它在ImageNet大规模视觉 ...