03_汇编语言(n个数找最大值)
程序要求:
先输入一个数n(0<n<=100),再输入n个无符号数K(0<=K<=65535),找出这n个数的最大值并输出
测试实例保证输入每个数之后,都会以回车结束
代码:
;程序要求:先输入一个数n(0<n<=100),再输入n个无符号数K(0<=K<=65535),找出这n个数的最大值并输出
;实例保证输入的每个数都以回车结束 STACK SEGMENT STACK 'STACK'
STAK DW DUP(?)
STACK ENDS DATA SEGMENT
MAX_NUM DW ?
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC
START: MOV AX,DATA
MOV DS,AX
CALL INPUT
MOV CX,BX ;循环次数为BX,赋值给CX
XOR AX,AX ;AX置0,保存最大值
NEXT_L: CALL INPUT
CMP AX,BX
JA JUMP
MOV AX,BX
JUMP: LOOP NEXT_L
MOV MAX_NUM,AX
MOV BX,MAX_NUM
CALL OUTPUT
MOV AH,4CH
INT 21H
MAIN ENDP INPUT PROC ;入口参数:无 出口参数:BX(因此不能超过65535)
PUSH AX
PUSH CX
PUSH DX
PUSH SI ;保存乘数
XOR BX,BX
XOR CX,CX
XOR DX,DX
MOV SI,
NEXT: MOV AH,
INT 21H ;接收键盘的数字
CMP AL,0DH ;判断是否是回车
JZ DONE ;JZ:等于则跳转
CMP AL,''
JB ERROR1 ;JB:小于则跳转
CMP AL,''
JA ERROR1 ;JA:大于则跳转
SUB AL,30H ;将ASCII码字符变为对应的数字
MOV CL,AL
MOV AX,BX
MUL SI
ADD AX,CX
MOV BX,AX
JMP NEXT ;继续接收下一个数据
ERROR1: MOV BX,0FFFFH
JMP EXIT
DONE: MOV DL,0AH
MOV AH,
INT 21H ;输出回车
MOV DL,0DH
MOV AH,
INT 21H
EXIT: POP SI
POP DX
POP CX
POP AX
RET ;子程序返回
INPUT ENDP OUTPUT PROC NEAR ;入口参数:BX 出口参数:无
PUSH AX ;保护寄存器
PUSH BX
PUSH CX
PUSH DX
PUSH SI
MOV SI, ;SI中是除数
XOR CX,CX
MOV AX,BX ;入口参数在BX中
NEXT1: MOV DX, ;DX存放余数,清零
DIV SI ;AX和DX组成的32位除以16位的SI,商保存在AX中,余数保存在DX中
PUSH DX
INC CX ;CX++,CX记录有多少位
CMP AX,
JNZ NEXT1 ;JNZ 不等于则跳转
OUTP: POP DX ;余数出栈
ADD DL,30H
MOV AH,
INT 21H
LOOP OUTP
POP SI ;恢复寄存器
POP DX
POP CX
POP BX
POP AX
RET ;子程序返回
OUTPUT ENDP
CODE ENDS
END START
03_汇编语言(n个数找最大值)的更多相关文章
- PTA 利用指针找最大值
6-6 利用指针找最大值 (10 分) 本题要求实现一个简单函数,找出两个数中的最大值. 函数接口定义: void findmax( int *px, int *py, int *pmax ); ...
- java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println(& ...
- POJ1064 Cable master 【二分找最大值】
题目:题目太长了! https://vjudge.net/problem/POJ-1064 题意分析:给了你N根长度为小数形式的棍子,再给出了你需要分的棍子的数量K,但要求你这K根棍子的长度必须是一样 ...
- [原创]java WEB学习笔记41:简单标签之带属性的自定义标签(输出指定文件,计算并输出两个数的最大值 demo)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Leetcode之深度优先搜索(DFS)专题-515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
Leetcode之深度优先搜索(DFS)专题-515. 在每个树行中找最大值(Find Largest Value in Each Tree Row) 深度优先搜索的解题详细介绍,点击 您需要在二叉树 ...
- python 可变数量参数 ( 多参数返回求 参数个数,最大值,最大值)
一. 自定义一串数字求 参数个数,最大值,最大值()---------方法一: def max(*a): m=a[0] p=a[0] n=0 for x in a: if x>m: m=x n+ ...
- LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
515. 在每个树行中找最大值 515. Find Largest Value in Each Tree Row 题目描述 You need to find the largest value in ...
- Java实现 LeetCode 515 在每个树行中找最大值
515. 在每个树行中找最大值 您需要在二叉树的每一行中找到最大的值. 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] /** * Definition for ...
- java代码求输入的三个数的最大值
package com.c2; import java.util.Random; import java.util.Scanner; //输入10个数,找出最大一个数,并打印出来. public cl ...
随机推荐
- Python入门笔记(20):Python函数(3):关于lambda
一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的.如下: """命名的foo函数&q ...
- 常用库nuget包集合
ColorConsole htmlagilitypack.1.4.9.5 经测试效率比 CsQueryLaster 高 csvhelper Extend Devlib系列一套 itextsharp l ...
- MVC控制器向View视图传值的三种方法
首先创建一个MVC的项目,其中需要一个控制器(TestController),三个视图(index,edit,detail) 1.项目结构如下:
- 怎样用C#代码知道是否已连接网络
有时,上传数据和下载数据都需要用到网络,但是不知道程序是否已连接到网络,下面是简单测试是否已连接网络的小功能 1.在winform窗体上添加一个按钮和多选框
- 关于spring配置文件properties的问题
我遇到的问题是我将properties放在src下面的包中不能被spring扫描到,会报配置文件找不到的错误.但是如果放在src目录下就能够被spring扫描到,现在还不知道为什么这样,记个笔记,留到 ...
- linux shell 编程
1,获取命令执行的结果,字符串拼接(脚本最常使用的功能) cmd_result=$(date +%Y%b%d) //使用变量获取命令执行的结果 或者 cmd_result=`date ...
- FlexPaper 2.2.1介绍与提取嵌入的文档
源起看到某个公司内网的公文使用FlexPaper组件来显示文档,在这儿是GoogleCode Project的主页, 还有现在的官方主页.目前FlexPaper是个开源项目,GPLv3 ...
- mysql 5.6.33发布
2016-09-06,mysql 5.6.33社区版发布,修复的bug越发减少,而且基本上都是较少使用的特性.
- css复习笔记
margin: 1. 当有三个值时第一个值为上,第二个值为左右,第三个值为下. 2.margin外边距折叠,水平没有,垂直会折叠,且折叠后以两者最大值为准.另外,当一个元素包裹另一元素时也会发生折叠. ...
- .NET 面试题整理
概念类 请你说说.NET中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类要多. 结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默认的构造函数和析构函 ...