80x86汇编语言 循环结构 找出最小的偶数并在屏幕上显示 求出数组的平均值显示在屏幕上
题目1
- 写一个完整的80X86汇编语言程序:键盘输入15个数据(转换成数值,存储到一维数组中,数值的长度为字),找出最小的偶数并在屏幕上显示,若没有偶数则显示“没有偶数!”。
.data
Number word 15 dup (?)
Mess byte “没有偶数!”
Input str1,10
Atoi, atod Ascii to double Ascii to Int
Atoi str1 ;ax
Atod str1 ;eax
Itoa str1,ax
Dtoa str1,eax
;求最小偶数
;作者:KUN.A.A
;date:2022/04/22.386
.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.hcr EQU 0dh ; carriage return character
LF EQU 0ah ; linefeed character.STACK 4096 ; reserve 4096-byte stack.DATA ; reserve storage for datacount WORD 1,0
Prompt1 BYTE "This program will find minest even number",0
Number BYTE 20 dup (?),0
Mess BYTE "Mei You Ou Shu",0
inputnum BYTE cr,Lf,"Enter Array",0
MaoHao BYTE ":",0
acount WORD 20 dup (?),0
result BYTE cr,Lf,"The minest even is:",0
minNum BYTE 20 dup (?),0
nbrArray WORD 100 dup (?),0.CODE ; start of main program code_start:output Prompt1mov ecx,15 ;循环15次lea ebx,nbrArray
loopg: output inputnumitoa acount,countinc countoutput acountoutput MaoHaoinput Number,20atod Numbermov [ebx],axadd ebx,2
loop loopgmov ecx,15lea ebx,nbrArray
FINDEVEN:mov al,[ebx] ;Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。test al,01H ;但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。jnz NEXT ;奇数跳转到NEXT,1与1相与为0mov dx,[ebx] ;偶数存入EDXjmp FINDMIN ;偶数跳转到FINDMIN
NEXT:add ebx,2 ;单字节加2取下一位
loop FINDEVEN;大于9FFFh的十六进制数据A000H、A001H...FFFEH、FFFFH等,在书写的时候都是以字母开头的。mov dx,0FFFFH ;而在汇编程序中,数据不能以字母开头,都要在前面加0。jmp EXIT ;没有偶数的时候跳转到EXIT输出没有偶数FINDMIN: ;找到最小偶数mov ecx,15 lea ebx,nbrArray
FIND:mov al,[ebx]test al,01Hjnz NEXT2 ;奇数跳转到NEXT2cmp dx,[ebx] ;判断偶数的大小jb NEXT2 ;小于也跳转到NEXT2 mov dx,[ebx]NEXT2:add ebx,2 ;下一个数字循环继续比较loop FINDoutput resultitoa minNum,dxoutput minNumjmp FINISHEXIT: ;没有偶数output Mess
FINISH: ;程序出口INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point publicEND ; end of source code
结果
有最小偶数2时
结果2:无偶数时
题目2
从键盘输入10个数据,存入一维数组中,并求出该数组的平均值显示在屏幕上。
;求平均值
;作者:KUN.A.A
;date:2022/04/22.386
.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.hcr EQU 0dh ; carriage return character
LF EQU 0ah ; linefeed character.STACK 4096 ; reserve 4096-byte stack.DATA ; reserve storage for datacount WORD 1,0
acount WORD 20 dup (?),0
Prompt1 BYTE "This program will Calculate average of 10 number",0
Number BYTE 20 dup (?),0
inputnum BYTE cr,Lf,"Enter Array",0
result BYTE cr,Lf,"The average is:",0
MaoHao BYTE ":",0
nbrArray DWORD 100 dup (?),0.CODE ; start of main program code_start:output Prompt1mov ecx,10 ;循环10次lea ebx,nbrArray ;取首地址
loop1:output inputnum ;说明语句itoa acount,countinc countoutput acount ;输出数组次序output MaoHao ;冒号输出input Number,20 ;输入数字atod Numbermov [ebx],eaxadd ebx,4 ;取数组下一位,双字加4
loop loop1mov ecx,10lea ebx,nbrArraymov edx,0 ;edx置0
loop2:add edx,[ebx] ;取数组数字加入edx和add ebx,4
loop loop2mov eax,edx ;总和放入eaxcdq ;字长扩展4倍方便除法mov ebx,10 ;除数放入ebxidiv ebx ;有符号除法dtoa nbrArray,eax ;商,即结果放入nbrArrayoutput result ;输出结果output nbrArrayINVOKE ExitProcess, 0 ; exit with return code 0PUBLIC _start ; make entry point public
END ; end of source code
结果:
test指令
test指令判断奇偶,将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。
lea指令
lea指令与EBX数组配合取数组首地址,并设置DUP数量防止运算时候溢出导致结果不符合预期。
80x86汇编语言 循环结构 找出最小的偶数并在屏幕上显示 求出数组的平均值显示在屏幕上相关推荐
- 循环结构——找各位数字中最大数
[问题描述] 编写程序找出一个正整数n的各位数字中最大的数字,n由键盘输入. [样例输入] 1423 [样例输出] 4 [样例说明] 1423有4位数字,分别是1.4.2.3,其中最大值是4 解析: ...
- 练练手:建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。
这个简单的小程序是对类的继承做的一个小巩固 要求如下: (1)形状类Shape (a)保护数据成员 double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩 ...
- 汇编语言实验5:循环结构程序设计
<汇编语言程序设计>实验报告 实验五 循环结构程序设计 1. 实验目的 2. 实验任务 3. 实验步骤 3.1 循环结构题目设计 3.2 编写代码 3.3 代码分析 3.4 运行测试 4. ...
- c加加高级语言循环结构,高级C语言循环结构程序设计.ppt
1,高级语言程序设计,孟宇龙计算机科学与技术学院mengyulong@,2,第5章循环结构程序设计,本章需要掌握的内容掌握3种基本循环.掌握多重循环.掌握continue和break的使用.编写循环结 ...
- c语言条件型循环结构报告,C语言循环结构实习报告 - 副本
认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号 一. 实验目的 (1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数. ⑵了 ...
- java中循环语句_Java语法基础之循环结构语句详解
一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...
- python循环结构教学设计_Python程序设计 循环结构说课稿
循环结构程序设计 -- 实现复杂计算程序 一.说教材 1. 教材地位分析 教材是由湖北省中小学教材编写组编写的义务教育教科书<信息技术> .其中<循 环结构程序设计>是初中信息 ...
- 7-226 sdut-C语言实验-矩阵输出(数组移位)7-227 sdut- C语言实验-计算1到n的和(循环结构)7-228 加法口诀表
目录 7-226 sdut-C语言实验-矩阵输出(数组移位) 7-227 sdut- C语言实验-计算1到n的和(循环结构) 7-228 加法口诀表 7-226 sdut-C语言实验-矩阵输出(数组移 ...
- 7-229 sdut-C语言实验- 排序7-227 sdut- C语言实验-计算1到n的和(循环结构)
目录 7-229 sdut-C语言实验- 排序 7-231 买文具 7-227 sdut- C语言实验-计算1到n的和(循环结构) 7-229 sdut-C语言实验- 排序 分数 16 全屏浏览题目 ...
最新文章
- 【组队学习】【25期】Datawhale组队学习内容介绍
- Logback中如何自定义灵活的日志过滤规则
- [雪峰磁针石博客]计算机视觉opcencv工具深度学习快速实战1人脸识别
- Forefront TMG2010中文版安装体验
- Spring Security OAuth2——自定义OAuth2第三方登录(Gitee)并与UsernamePassword登录关联解决方案
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1099:第n小的质数
- 【贪心】Stall Reservations(luogu 2859/poj 3190)
- 可还行?这款手机首获德国红点设计大奖
- c++如何判断两个字符串是否相同?_链表 | 如何判断两个单链表(无环)是否交叉...
- 使用PosixFilePermission的Java设置文件权限
- 浏览器中调用Linux程序,一个可以使用浏览器通过ssh连接linux的程序
- PS颜色校正(Photoshop颜色显示偏色)
- 如何防止135端口入侵
- VLAN详解系列:(6)VLAN间路由详解
- 【java网络】常用网络模型BIO
- python爬豆瓣影评代码_十行Python代码爬取豆瓣电影Top250信息
- 空气净化器哪个品牌口碑好 空气净化器除甲醛排行榜前十名
- 在线图片转为base64
- HyperLPR车牌识别技术算法之车牌精定位
- nodejs 安装模块失败 解决方法