汇编语言(2016级)实验5 子程序与条件转移

2024-03-03 05:58

本文主要是介绍汇编语言(2016级)实验5 子程序与条件转移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验5 子程序与条件转移

1. 实验目的

会利用条件转移指令循环和控制结构解决问题
训练程序中要加注释

2. 实验内容

任务1-求最大值
  在BUFFER处给出了多个无符号数,请找出其中的最大值,放至MAX指定的存储单元中。

data  segmentbuffer dw 35098, 17758, 54582, 61504, 46054, 58513, 4409, 7902, 14255dw 40623, 47645, 15575, 51572, 18110, 26511, 14880, 5921, 31999dw 2893, 21056, 16574, 147, 25532, 33336, 5251, 64269, 31514, 23670dw 53335, 49581, 57895, 25689, 51697, 58198, 27548, 54151, 41373dw 44382, 23511, 39326, 56955, 51911max dw  ?
data ends

  已知标号为BUFFER的数组后直接就是标号为MAX的单元,数组中元素的个数由程序计算,不得人工数。
  要求在程序中给出足够多的注释。
  给定的数据中,最大者为64269(FB0DH)。
参考解答

任务2-成绩统计
  下面提供了100名同学AS课成的成绩,请编程序统计其中90~100、60~89、60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。

 data segmentbuf db 85, 72, 79, 90, 79, 54, 63, 66, 83, 79, 71, 77, 77, 65, 89, 93db 69, 96, 72, 98, 60, 78, 69, 68, 80, 65, 91, 64, 90, 90, 64, 90db 99, 55, 84, 56, 80, 54, 55, 66, 53, 54, 83, 61, 52, 92, 66, 51db 95, 81, 51, 100, 70, 65, 50, 74, 91, 57, 95, 66, 54, 50, 73, 59db 78, 80, 92, 78, 89, 78, 99, 100, 82, 92, 59, 71, 74, 81, 93, 74db 98, 57, 57, 96, 76, 79, 57, 67, 52, 84, 87, 54, 67, 72, 59, 75db 64, 89, 77, 80resut db 3 dup(0) 
data ends

  要求在程序中给出足够多的注释。
参考解答

任务3-保留字符串中的大写字母
  在数据区,给定用0作为结束的字符串,请补充完成子程序,只保留字符串中的大写字母,并在最后一个大写字母后记录0作为所有大写字母构成的新字符串的结束。(以下面程序数据区中给出的字符串,最后得到的字符串为YTU后加0)

assume cs:cseg, ds:dseg, ss:sseg
sseg   segment  stackdw  100h  dup  (?)
sseg   ends
dseg   segmentdb 'YanTai University 264005', 0
dseg   ends
cseg   segment
start: mov  ax, dsegmov  ds, axmov  ax, ssegmov  ss, axmov  sp, 100hmov bx, 0call getUppermov  ax, 4c00hint   21h;子程序名:getUpper
;功    能:对从DS:bx开始,以0结束的字符串,只保留大写字母,并仍以0结束
;入口参数:DS和BX寄存器中保存字符串的起始地址
;出口参数:无
getUpper  proc; 在这里写出你的代码ret
getUpper  endp
cseg  endsend   start

参考解答

任务4:冒泡排序(选做)
  在数据区,给出了学生人数及汇编语言课程的成绩,请将成绩排序并保存在原数据区。
  下面给出部分代码,要求完成排序子程序。
  程序中给出的数据段,包括20位同学的成绩,每名同学的数据占1字节。
参考程序段:

assume cs:cseg, ds:dseg, ss:sseg
sseg segment  stackdw 100H dup (?)
sseg ends
dseg segmentdb 20db 98,61,57,82,89,73,61,58,53,54db 84,78,70,64,84,63,76,84,83,86
dseg ends
cseg segmentstart: mov ax, dsegmov ds, axmov cl, ds:[0]mov ch, 0      ;cx中存储要排序数的个数mov bx, 1      ;要排序数的起始偏移地址call sortmov ax, 4c00hint   21h
;子程序名:sort
;功    能:对从(DS):(bx)开始的(cx)个字节排序
;入口参数:(DS):(BX)保存数据的起始地址
;        (cx)中是要排序的数据个数
;出口参数:无
sort proc;这儿写子程序
sort endpcseg ends
end start

参考解答

这篇关于汇编语言(2016级)实验5 子程序与条件转移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768665

相关文章

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

Nacos客户端本地缓存和故障转移方式

《Nacos客户端本地缓存和故障转移方式》Nacos客户端在从Server获得服务时,若出现故障,会通过ServiceInfoHolder和FailoverReactor进行故障转移,ServiceI... 目录1. ServiceInfoHolder本地缓存目录2. FailoverReactorinit

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco