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 ...
随机推荐
- 搜索 --- 数独求解 POJ 2676 Sudoku
Sudoku Problem's Link: http://poj.org/problem?id=2676 Mean: 略 analyse: 记录所有空位置,判断当前空位置是否可以填某个数,然后直 ...
- C#文件和文件夹输入输出流代码
1.建立一个文本文件 public class FileClass { public static void Main() { WriteToFile(); } static void WriteTo ...
- MarkDown学习记录
一.基本语法 1.标题 建议在#后面加一个空格 2.列表 注意:符号和文字之间加上一个字符的空格 3.引用 4.链接 5.图片 6.粗体与斜体 7.代码框 8.分隔符 二.参考文章 http://ww ...
- 【C#进阶系列】00 序
老早就被各种推荐<CLR via C#>这本书了,然而一直没去学. 因为工作中所需要的.NET功底目前算是足以应付了,而前端却不熟,所以跑去学了一段时间前端的知识. 终于算是把前端方面的基 ...
- ActiveReports 9 新功能:可视化查询设计器(VQD)介绍
在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍可视化数据查询设计器,无需手动编写任何SQL语句,主要内容如 ...
- innerHTML和outerHTML有什么区别
一.区别:1)innerHTML: 从对象的起始位置到终止位置的全部内容,不包括Html标签.2)outerHTML: 除了包含innerHTML的全部内容外, 还包含对象标签本身. 二.例子1: & ...
- servlet中的转发和重定向问题
重定向和请求转发在学习servlet的时候很容易混淆,故在此特意记录. 1. 重定向---------sendRedirect()方法 Servlet响应请求有两种方式,一个是重定向,返回一个页面给客 ...
- mysql init-file参数中语句限制
mysql 启动选项中的init-file文件的内容目测只能是dml语句,不能包含ddl,否则执行就会报错,但不影响启动本身..太扯了..
- styleCop
1styleCop安装 安装参考 2和VS集成 要和vs集成一定要在安装时把MSBuild files那个选项选中的,否则安装后是不会和VS集成集成的. 3styleCop使用 User Guide ...
- ASP.NET MVC 微信公共平台开发之获取用户消息并处理
ASP.NET MVC 微信公共平台开发 获取用户消息并处理 获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信 ...