北工大汇编——综合题(2)

news2024/11/22 9:37:44

题目要求

编写一个比赛得分程序。共有7 个评委,按百分制打分,计分
原则是去掉一个最高分和一个最低分,求平均值。要求:

  1. 评委的打分以十进制从键盘输入。
  2. 成绩以十进制给出,并保留 1位小数。
  3. 输入输出时屏幕上要有相应提示
    在这里插入图片描述

完整代码

DATAS SEGMENT
    ;此处输入数据段代码
    inputMsg db 'please input$'
    errMsg db 0ah, 0dh, 'please input 0-100$'
    finalMsg db 0ah, 0dh, 'the score is $'
    
    score DB 30H 
    	  DB 0 
   		  DB 30H DUP('$')
    
    realScore dw 0
    minScore dw 100
    maxScore dw 0
    count dw 0
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    mov ax, 0
    mov count, ax
    mov maxScore, ax
    mov ax, 100
    mov minScore, ax
    mov cx, 7
    
    input:
    	mov realScore, 0
    	mov dx, cx
    	add dx, '0'
    	mov ah, 02h
    	int 21h
    	
    	lea dx, inputMsg
    	mov ah, 09h
    	int 21h
    	
    	lea dx, score
    	mov ah, 0ah
    	int 21h
    	
    	MOV DX,0AH;回车换行
		MOV AH,02H
		INT 21H
		MOV DX,0DH
		MOV AH,02H
		INT 21H
		
		call checkInvalid
		
		loop input
		jmp output
		
	checkInvalid proc
		push cx
		mov al, score[1]
		cmp al, 3
		ja error
		
		mov si, 2
		mov cl, score[1]
		
		funcCheckInvalidLop:
			mov ax, 0
			mov al, score[si]
			sub al, '0'
			
			cmp al, 0
			jb error
			cmp al, 9
			ja error
			
			push ax
			
			mov ax, 10
			mul realScore
			mov realScore, ax
			
			pop ax
			
			add realScore, ax
			
			inc si
			loop funcCheckInvalidLop
			
		mov dx, 0
		mov ax, realScore
		cmp ax, 100
		ja error
		
		add count, ax
		
		cmp ax, minScore
		ja checkMax
		mov minScore, ax
		
		checkMax:
			cmp ax, maxScore
			jb funcCheckInvalidRet
			mov maxScore, ax
			
		funcCheckInvalidRet:
			pop cx
			ret
	
	checkInvalid endp
	
	
	
	output:
		lea dx, finalMsg
		mov ah, 09h
		int 21h
		
		mov dx, 0
		mov ax, count
    	sub ax, minScore
    	sub ax, maxScore
    	
    	mov bx, 5
    	div bx
    	;AX商,DX余数
    	
    	push dx
    	mov bx, 10
    	mov cl, 0
    	
    	funcOutputDivLop:
    		mov dx, 0
    		div bx
    		add dl, '0'
    		push dx
    		inc cl
    		cmp ax, 0
    		jne funcOutputDivLop
    		
    	funcOutputOutLop:
    		pop dx
    		mov ah, 02h
    		int 21h
    		
    		loop funcOutputOutLop
    		
    		mov dx, '.'
    		int 21h
    		
    		pop dx
    		sal dx, 1
    		add dx, '0'
    		int 21h
    		jmp exit
			
	error:
		lea dx, errMsg
    	mov ah, 09h
    	int 21h
    	
    exit:
    	
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

口袋参谋:淘宝宝贝秒卡首屏的方法!

​对于新手卖家来说,很多都不太明白,淘宝卡首屏是什么意思?其实卡首屏就是新品前期买家找不到的情况,通过卡首屏让他们快速找到宝贝。 通过卡首屏的方式,给买家账号注入产品标签,让买家进店前就是店铺的精…

「大数据-0.1」虚拟机VMware安装、配置、使用、创建大数据集群教程

目录 一、下载VMware Wworkstation Pro 16 二、安装VMware Wworkstation Pro 16 三、检查与设置VMware的网卡 1. 检查 2. 设置VMware网段 四、在VMware上安装Linux虚拟机 五、对安装好的虚拟机进行设置 1. 打开设置 2. 设置中文 3. 修改字体大小 4. 修改终端字体大小 5. 关闭虚…

【Vue】MVVM模型还没懂嘛

hello,我是小索奇,精心制作的Vue教程持续更新哈,想要学习&巩固&避坑就一起学习叭~ MVVM 模型 Vue虽然没有完全遵循MVVM模型,但Vue的设计也收到了它的启发在文档中也会使用VM(ViewModel的缩写)这个变…

终于搞清了:SPI、UART、I2C通信的区别与应用!

电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议。 之前有单独地分享了SPI、UART、I2C通信的文章,这篇对它们做一些对比。 串行 VS 并行 电子设备通过发送数据位从而实现相互交谈。位是…

JVM内存结构解析(图文详解)

JVM内存结构 共享 和 隔离 线程共享区域:方法区、堆、直接内存 线程隔离区域:虚拟机栈、本地方法栈、程序计数器 线程共享:定义一个变量或者一个方法,多线程都可以同时访问、修改这个方法或者变量 线程隔离:就是数…

iPhone恢复出厂设置,掌握2个方法!

当您的手机出现闪退、内存不足、严重卡顿等情况,或者是想将手机进行二手转让时,您可能需要通过将iphone恢复出厂设置来解决问题。但是恢复出厂设置后,手机上的所有数据都会被清除。iPhone怎么恢复出厂设置?本文将为您介绍两种简单…

混淆矩阵和数据不平衡 (2/3)

一、说明 当我们的数据标签具有比另一个类别更多的类别时,我们说我们有数据不平衡。 如果数据集数据不平恒,如何评估分类器的效果?如果分类器不好,如何改进分类器?本篇将讲述不平衡数据下,混淆矩阵的应用。…

许战海战略文库|品类缩量时代:制造型企业如何跨品类打造份额产品?

所有商业战略的本质是围绕着竞争优势与竞争效率展开的。早期,所有品牌立足于从局部竞争优势出发。因此,品牌创建初期大多立足于单个品类。后期增长受限,就要跨品类持续扩大竞争优势,将局部竞争优势转化为长期竞争优势,如果固化不前很难获得增…

玩转 gpgpu sim 02记 —— 构建了什么

1. 设置环境变量 编译gpgpu-sim 需要先运行脚本 setup_environment , source setup_environment, 注释如下,主要是设置一些 Makefile中会用到的环境变量 # see README before running this # 下面这句用来检测当前的shell环境是不是 bash 或者 sh 或者 …

GD32F303窗口看门狗在待机模式下运行

1.窗口看门狗 独立看门狗的时钟关闭不了,所以低功耗模式下需要定期唤醒喂狗,否则就会重启,比较麻烦。窗口看门狗使用的是APB1时钟,低功耗模式下时钟就停止了,所以不需要定期唤醒喂狗。但是窗口看门狗有喂狗的时间窗口&…

韩国市场最全开发攻略

2022年1月1日,RCEP正式生效施行,韩国也是首次跟中国缔结自贸条约,更低的关税,更灵活的贸易规则、更简洁的通关程序都将为中韩在贸易上继续发力增加了更多可施展的空间。这也将帮助更多的企业在东亚市场大展拳脚,推进整…

归并排序~

将一个无序系列,分成小系列,相邻两个小系列进行排序合并,再将两个相邻小系列排序合并,。。。。 int[] data {0,5,4,8,9,3,2,67,23} len 9 第一次每个元素一组 0,5,4,8,9,3,2,67,23 相邻排序合并 …

Vue框架分享与总结

总结开发中最常用的vue语法,以及对特定语法的理解。vue官网 文章目录 一、创建vue项目1、使用开发工具创建2、使用命令行创建3、vue框架结构4、Vue文件结构 二、Vue 常用模板语法1、v-if、v-show2、v-for3、v-on4、v-bind5、v-model 三、组件通信1、父组件给子组件传…

Bytebase 2.8.0 - ​全新升级的数据脱敏功能

🚀 新功能 全新升级的数据脱敏功能,提供更加细化的脱敏和访问权限配置。全新升级的 SQL 编辑器界面。库表同步功能支持 Oracle。支持设置公告。 🎄 改进 新增基于 MySQL parser 的数据脱敏内核。调整了侧边栏数据库列表,用最近…

Docker实战-第一章欢迎来到Docker世界

Docker基础 什么是Docker docker是包括一个命令行程序、后台守护进程和一组远程服务,它简化了安装、运行、发布和删除软件的工作。docker实现的基础是UNIX的容器技术。所以在docker出世之前已经有容器的概念,而且像谷歌一类公司也在探索自己的容器&…

关于taos数据库使用过程中突发“unable to establish connection”问题解决

项目使用的版本信息 1.taos的版本信息 3.0.4.1 2.jdbc的版本 3.2.1 3.druid连接池版本 1.2.11问题描述 Java应用服务连接,突然大量抛出如下的异常信息导致应用宕机: sql: select server_status(), desc: unable to establish connection和集团DBA沟通…

云原生微服务 第四章 Spring Cloud Netflix 之 Eureka

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 文章目录 系列文章目录[TOC](文章目录) 前言1、Eureka 两大组件2、Eureka 服务注册与发现3、案例3.1、创建主工程3.1.1、主…

(超详解)堆排序+(图解)

目录: 1:如何建堆(两种方法) 2:两种方法建堆的时间复杂度分析与计算 3:不同类型的排序方式我们应该如何建堆 文章正式开始: 1:如何建堆 在实现堆排序之前我们必须得建堆,才能够实现堆排序 首先在讲解如何建堆之前让我们先来回顾一…

保研复习-计算机组成原理

计算机组成原理 计算机组成冯诺依曼体系结构计算机系统的层次结构计算机的五大组成部件编译和解释的区别 CPUCPU的组成寄存器的类型指令类型指令功能指令执行过程 存储器存储器的层次结构寻址方式 输入和输出io方式有哪几种IO接口的基本结构 计算机组成 冯诺依曼体系结构 存储…

如何将你在树莓派上部署的 IoT 物联网 MQTT 服务发布到公网?

​ 上一章,你成功的在树莓派搭建了 EMQX 开源社区版,用来提供 MQTT 服务,并验证了设备端接入和消息通信。但你发现只能在局域网内访问 emqx.local 服务,而 IoT 设备分布在全国各地公共网络环境,这些设备该如何接入呢&a…