汇编语言(十二)之统计小于平均数的个数
在一个数组中找出并统计并该数组的平均数小的数的个数
程序运行:
代码:
datas segmentDATA dw 10h dup(1,2,3,4,-1,5,7,-99,29,-11,294,-21,45,6,57,-54)average dw 0countOfLowAverage dw 0outputAverage db 'average:AX=$'outputCountOfLowAverage db 0dh,0ah,'count of low average:BX=$'
datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks
main proc far
start:push dsmov ax,0hpush axmov ax,datas ;初始化dsmov ds,axmov cx,100h ;将DATA数组的长度移至cxmov bx,0 ;bx为DATA数组的索引mov si,0 ;si为数组和的低16位mov di,0 ;di为数组和的高16位s:mov ax,DATA[bx] ;将DATA数组的单元移至axcwd ;进行有符号扩展add si,ax ;求和adc di,dx add bx,type DATA ;数组索引移至下一个单元 loop smov cx,100h ;数组的长度mov ax,si ;将数组的求和移至dx,ax中mov dx,di idiv cx ;求平均值mov average,ax ;保存平均值于averagemov bx,0 ;计算小于平均值的数的个数mov si,0 ;数组的索引s1:cmp ax,DATA[si] ;比较平均值与数组元素的大小jng next ;平均值小于等于数组元素,则跳转inc bx ;平均值大于数组元素,计算器bx加1next:add si,type DATA ;数组的索引移至下一个单元loop s1 mov countOfLowAverage,bx ;保存小于平均值的数的个数;输出平均值的提示lea dx,outputAveragemov ah,9 int 21h ;输出平均值mov ax,averagecall print;输出小于平均值的数的个数的提示lea dx,outputCountOfLowAveragemov ah,9 int 21h ;输出小于平均值的数的个数mov ax,countOfLowAverage call printretmain endpprint proc near;保存寄存器的值push cxpush dxpush bx;保存axmov bx,axcmp bx,0 ;比较bx与0jnl notNegative ;bx为非负数,则跳转mov dl,'-' ;若bx为负数,则输出'-'mov ah,2int 21hneg bx ;取bx的绝对值mov ax,bx ;将bx移至axnotNegative:mov cx,0 ;cx记录ax十进制数的位数mov bx,10 ps:mov dx,0 ;dx置0,使得余数不干扰除法操作div bx ;除10取余push dx ;保存余数inc cx ;cx记录位数加1cmp ax,0 ;比较ax与0jne ps ;ax非0,则循环继续ps1:pop dx ;取出余数add dl,30h ;数值转化成数字字符mov ah,2 ;输出字符int 21hloop ps1 ;恢复寄存器的值pop bxpop dxpop cxret
print endp
codes endsend main
汇编语言(十二)之统计小于平均数的个数相关推荐
- Trick(十二)——统计 label(序列)各个标签值出现的次数以及出现次数最多的标签
求解的关键在引用计数,可以使用字典,也可以使用 collections 模块中的 Counter. 统计 label(序列)各个标签值出现的次数 统计 label(序列)各个标签值出现的次数,来计算 ...
- 汇编语言(二十三)之求一个数的补数
给定一个数,求该数的补数 程序运行: 代码: datas segmentNUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45HDB 67H,89H,0DEH,13H,24H,3 ...
- (篇九)C语言统计某个字母的个数、统计各种字符的个数、统计单词的个数
文章目录 一.统计某个字母的个数 二.统计各种字符的个数 三.统计单词的个数 本篇文章主要介绍在C语言中统计某个字母的个数.统计各种字符的个数和统计单词的个数:总之就是计数,-由于C语言中没有直接统计 ...
- 零基础带你学习MySQL—分组统计(十二)
零基础带你学习MySQL-分组统计(十二) 如何理解分组 ? 课后练习题
- 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理
第十二章--SQLServer统计信息(3)--发现过期统计信息并处理 原文: 第十二章--SQLServer统计信息(3)--发现过期统计信息并处理 前言: 统计信息是关于谓词中的数据分布的主要信息 ...
- 《汇编语言》王爽(第四版) 第十二章 实验12
文章目录 前言 一.思路分析 1.安装 2.设置中断向量 3.do0程序 4.测试 5.优化 二.最终成果 1.完整代码 2.效果图 总结 前言 本文是王爽老师<汇编语言>(第四版) 第十 ...
- 高校计算机软件著作权排名,山东省十二所高校计算机软件著作权登记数量统计.doc...
山东省十二所高等院校2005-2014年计算机软件著作权登记数据 通过对山东省十二所高校2005-2014年计算机软件著作权自愿登记数量进行统计,十二所高校共有812件计算机软件著作权进行了自愿登记, ...
- Oracle、Hive 统计三个月,六个月,九个月,十二个月的平局值
下面为统计截止2020-06-30,近三个月,六个月,十二个月的平均值 直接上代码 select * from (select a.cust_id, '2020-06-30' as dt1,a.dt, ...
- 二十八、统计机器翻译基础
二十八.统计机器翻译基础 由于本人喜欢在纸上手推原理,所以附上照片,欢迎提出建议
最新文章
- 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
- JSONP的学习(收集整理)
- RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1'
- java 扫描包框架_java – 在Android中实现类似Spring的包扫描
- DSP-F28335与AD7606的并行模式调试问题
- 《C语言》2022山西专升本C语言知识点
- 1.4亿在线背后-QQ IM后台架构的演化与启示(1)(2)
- Power Apps相关介绍
- C# Winform设置焦点
- 【ARCore 入门开发课程系列】ARCore 打造沉浸式体验全过程
- python 招聘 海盐_聚焦普高新课标 提升信息核心素养——海盐县初中信息技术Python课堂教学研讨活动在武原中学举行...
- strip指令——减小文件的大小(给文件脱衣服)
- AndroidNDK工程FFmpeg(一)-- Android使用FFmpeg--Shell脚本编写与执行编译FFmpeg库
- 数据分析指标体系搭建实战!
- ffmpeg截取mp3指定时间的内容
- Microsoft365账号登录安全保护:使用microsoft authenticator应用验证
- 详解(一)-ThreadPollExecutor-并发编程(Java)
- 50个2010年最常用的网站推广方法
- python docx tables_pythondocx保留格式替换表格内容
- Jzoj5449【NOIP2017提高A组冲刺11.4】Pacifist
热门文章
- [PAT乙级]1022 D进制的A+B
- 根据后序和中序求二叉树的层序
- python数据类型及使用方法_python 基本数据类型及方法
- 得到选择框句柄 怎么操作_知道借名买房有风险,只能选择借名买房该怎么操作?...
- html缩进标签quote,HTML blockquote 标签
- Java实现生产消费模型的5种方式
- Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 思维 + 差分
- P1537 弹珠 背包可行性dp
- cf1555 E. Boring Segments
- Music Problem