求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以内的素数相关推荐

  1. Python求100以内的素数和并输出

    #求100以内的素数并输出 def isPrime(num):for i in range(2,num):if num%i == 0:return Falsereturn True sum = 2#1 ...

  2. 2、求100以内的素数之和。(20分)

    题目: /* 2.求100以内的素数之和.(20分) */ 代码: public class Two207 {public static void main(String[] args) {int s ...

  3. 用筛选法求100以内的素数(数组)

    用筛选法求100以内的素数,要求使用数组. #include "stdafx.h" #include<iostream> using namespace std; in ...

  4. Python练习:求100以内的素数和

    描述 求100以内的素数之和并输出. 输入格式 该题目没有输入 输入输出示例   输入 输出 示例 1 无(红色字体不是OJ的输入) 说明:直接输出100以内的素数之和.(红色字体不是OJ的输出) 代 ...

  5. PTA求100以内的素数

    7-3 求100以内的素数 (15 分) 求100以内的全部素数,每行输出10个.素数就是只能被1和自身整除的正整数,1不是素数,2是素数.要求定义和调用函数prime(m)判断m是否为素数,当m为素 ...

  6. 【C语言】 利用筛选法求100以内的素数

    算法思路: 原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数.如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉. 代码如下: //C语言 筛选法求100以内的素 ...

  7. C语言:用筛选法求100以内的素数

    用筛选法求100以内的素数 素数:即质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 筛选法:1不是素数,划去:2是素数,留下,将2的倍数划去:3没被划去,将3的倍数划去: ...

  8. 求100以内的素数(质数)用python

    标题求100以内的素数用python 逻辑:2<x<101,遍历一遍[2,101]之间的数,然后对每个数,进行整除,素数只能被整除一次 代码如下: # -*-author:jackzhan ...

  9. 求100以内的素数(c语言)

    求100以内的素数(c语言) 素数的概念 素数:该数除1及其本身不再有其它的因数 2为最小的素数 代码: #include<stdio.h> void main(){for(int num ...

最新文章

  1. 什么样的技术将在后大流行的世界里兴起
  2. 可持久化Trie+堆优化 OR Trie树上求XOR第K大 ---- P5283 [十二省联考2019]异或粽子
  3. 在Win7下建立新账户的方法
  4. Xmodem恢复交换机IOS
  5. utf-8编码用于asp出现乱码的问题--从数据库调用的是乱码
  6. Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
  7. Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  8. 做PPT使用的矢量图标网站
  9. kibana笔记 -- KQL
  10. 使用Postman访问k8s RESTful API
  11. 今日金融词汇---BP
  12. arch linux添加用户,Arch Linux配置教程
  13. WebCollector 爬虫解析
  14. uniapp 使用canvas 画图连线
  15. 计算机程序工作日志,工作日志软件
  16. Linux的hdparm工具参数详解:硬盘检查、测速、设定、优化
  17. 钢条切割问题-动态规划-c语言实现
  18. 个人拥有云服务器能用来干啥好玩的?
  19. Maven使用第一行红叉报错
  20. Omni/USDT钱包对接PHP开发包

热门文章

  1. MySQL仿淘宝页面评论评分统计SQL
  2. 【C++】虚函数指针和虚函数列表
  3. 阿里巴巴开发手册(官方认定手册)
  4. 阿里巴巴java开发规范
  5. Android Studio 4.0 稳定版发布了
  6. python可视化——django驾驶舱的实现(下)
  7. 红细胞膜包载粉防己碱PLGA纳米粒(RPTNs)|肿瘤细胞膜多柔比星PLGA纳米粒
  8. 操作系统实验:Linux下的进程控制实验
  9. The use of FS/GS registers
  10. nginx php 0xc0000409,卡巴斯基2016导致爱奇艺PPS影音客户端播放故障