汇编语言作业(七)

  • 目录

    一、实验目的

    二、实验内容

    三、实验步骤以及结果

    四、实验总结


    一、实验目的

    1. 熟悉无符号数和有符号数乘法和除法指令的使用
    2. 掌握无符号位扩展指令的使用
    3. 掌握逻辑指令的使用
  • 二、实验内容

1、编写一个汇编程序,要求从键盘中输入一个小写字母,将其转换为对应的大写字母后输出。

例如输入: a       输出 A

提示: 观察大小写字符ascii值之间的规律,可以利用加减法运算,也可以利用逻辑运算进行操作  ,要求至少利用一种方法。

2.利用移位指令计算DX←3×AX+7×BX,假设为无符号数运算,无进位。

3.(选做)预习JC跳转指令,计算1+2+3+…1000, 并将结果存到以ans为开头的缓冲区中。

三、实验步骤以及结果

实验一

1、编写一个汇编程序,要求从键盘中输入一个小写字母,将其转换为对应的大写字母后输出。

例如输入: a       输出 A

提示: 观察大小写字符ascii值之间的规律,可以利用加减法运算,也可以利用逻辑运算进行操作  ,要求至少利用一种方法。

下面的代码实现了将小写字母转化成大写字母,而且若输入非小写字母,则输出

Error: Input is not a lowercase letter

核心代码:

stack segment stack

stack ends

dataseg segment
	inputChar db ?  ; 定义一个字节变量用于存储输入的字符
dataseg ends

code segment
assume cs:code, ds:dataseg, ss:stack

start:	; 读取小写字母  
        mov ah, 01h      ; 设置功能号,01h 为读取字符  
        int 21h          ; 调用 DOS 中断  
        mov inputChar, al ; 将读取到的字符存储到 inputChar  
  
        ; 检查是否为小写字母  
        cmp inputChar, 'a'  
        jb not_lowercase  ; 如果小于 'a',则不是小写字母  
        cmp inputChar, 'z'  
        ja not_lowercase  ; 如果大于 'z',则不是小写字母

		sub inputChar, 20h   ; 'a' - 'A' = 20h  
  
        ; 输出转换后的大写字母  
        mov ah, 02h      ; 设置功能号,02h 为显示字符  
        mov dl, inputChar ; 将转换后的字符放到 dl 寄存器  
        int 21h          ; 调用 DOS 中断  
        jmp exit_program  ; 跳转到程序结束  
  
        not_lowercase:  
        ; 如果不是小写字母,则输出错误信息  
        mov ah, 09h      ; 设置功能号,09h 为显示字符串  
        mov dx, offset errorMessage ; 设置要显示的字符串的地址  
        int 21h          ; 调用 DOS 中断  
  
        errorMessage db 'Error: Input is not a lowercase letter$'  
  
        exit_program:  
        mov ax, 4C00h    ; 设置 DOS 终止程序的功能号  
        int 21h          ; 调用 DOS 中断  
code ends
		end start

实验结果:

2.利用移位指令计算DX←3×AX+7×BX,假设为无符号数运算,无进位。

令AX=0123H,BX=2345H,理想结果是FA4CH(无符号数)

下面是最终结果,可见DX=FA4CH

下面是核心代码:

不足之处:没有考虑溢出情况。

  • 四、实验总结

    1. 实验12均完成,实验3未做
    2. 本次实验对相关的算术运算符认识更加深入。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python的Pillow(图像处理库)非常详细的学习笔记

Python的Pillow库是一个非常强大的图像处理库。 安装Pillow库: 在终端或命令行中输入以下命令来安装Pillow: pip install pillow 安装后查看是否安装成功以及当前版本 pip show Pillow 升级库: pip install pillow --upgrade 一些基…

【ARM Cache 及 MMU 系列文章 1.4 -- 如何判断 L3 Cache 是否实现?】

文章目录 Cluster Configuration Register代码实现什么是Single-Threaded Core?什么是PE(Processor Execution units)?Single-Threaded Core与PE的关系对比多线程(Multithreading)Cluster Configuration Register 同 L2 Cache 判断方法类似,ARMv9 中也提供了一个自定义…

for 、while循环

练习1:输入一个数,判断是否是完美数 完美数:正序和逆序的结果一致 练习2: * ** *** **** 练习3: **** *** ** * 练习4:输入一个数,计算最大公约数,以及最小公倍数 练习5&#xff…

程序设计实践--3

递推 一只小蜜蜂 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房&#xff0c;不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中&#xff0c;蜂房的结构如图所示。 输入描述 输入数据的第一行是一个整数N(1<n<1,000,000),表示测试实例的个数&#xff0c;然…

python-windows10普通笔记本跑bert mrpc数据样例0.1.048

python-windows10普通笔记本跑bert mrpc数据样例0.1.000 背景参考章节获取数据下载bert模型下载bert代码windows10的cpu进行训练进行预测注意事项TODOLIST背景 看了介绍说可以在gpu或者tpu上去微调,当前没环境,所以先在windows10上跑一跑,看是否能顺利进行,目标就是训练的…

Java的自动装箱和自动拆箱

自动装箱和拆箱在Java开发中的应用与注意事项 在Java开发中&#xff0c;自动装箱&#xff08;Autoboxing&#xff09;和自动拆箱&#xff08;Unboxing&#xff09;是指基本数据类型与其对应的包装类之间的自动转换。这些特性可以使代码更加简洁和易读&#xff0c;但在实际项目…

【中颖】SH79F9202 串口通信

头文件 uart.h #ifndef UART_H #define UART_H#include "SH79F9202.h" #include "LCD.h" #include "timer2.h" #include "timer5.h" #include "cpu.h" #include "key.h" #include "io.h" #include &qu…

八股文系列Spark

为什么Spark 比 MapReduce 更快 DAG相比hadoop的mapreduce在大多数情况下可以减少磁盘I/O次数 因为mapreduce计算模型只能包含一个map和一个reduce,所以reduce完后必须进行落盘&#xff0c;而DAG可以连续shuffle的&#xff0c;也就是说一个DAG可以完成好几个mapreduce&#xf…

使用#sortablejs插件对表格中拖拽行排序#Vue3#后端接口数据

使用#sortablejs对表格中拖拽行排序#Vue3#后端接口数据 *效果&#xff1a; 拖动表格行排序 首先安装插件sortable npm install sortablejs --save代码&#xff1a; <template><!-- sortable.js 进行表格排序 --><!-- 演示地址 --><div class"dem…

【全开源】驾校练车管理系统源码(FastAdmin+ThinkPHP)

&#x1f698;驾校练车管理系统&#xff1a;让学车之路更顺畅&#xff01;&#x1f4c8; 一款基于FastAdminThinkPHP开发的驾校管理系统&#xff0c;驾校管理系统(DSS)主要面向驾驶学校实现内部信息化管理&#xff0c;让驾校管理者和工作人员更高效、更快捷的完成枯燥无味的工…

网球运动目标检测跟踪

基于yolo作为目标检测器实现目标检测&#xff0c;使用跟踪器进行跟踪&#xff0c;实现如下功能。 得到视频中的网球运动员&#xff0c;测量他们的速度、击球速度和平均值&#xff0c;方便球友。

我们离成功有多远呢?只要能完成自己阶段性的目标就算是一次成功

做起一个账号&#xff0c;带好一个团队&#xff0c;经营好一家公司&#xff0c;似乎这些都能叫成功&#xff0c;成功的定义可大可小&#xff0c;而我认为只要能完成自己阶段性的目标就算是一次成功&#xff0c;毕竟每个人学历、背景、阅历、资源、认知都不同&#xff0c;很难同…

RV32M指令集

RV32M指令集 1、乘法运算2、除法运算1、乘法运算 MUL 指令(得到整数32位乘积(64位中的低32位)) MUL 指令用于执行两个带符号或无符号整数之间的乘法运算。其语法如下: mul rd, rs1, rs2 它将寄存器 rs1 和 rs2 中的值相乘,并将结果写入寄存器 rd 中。如果 rs1 和 rs2 都是有…

Fiddler抓包工具详细使用教程

各位做测试的同学想必对抓包工具fiddler并不陌生&#xff0c;但是很多同学可能没有总结过它的用法&#xff0c;下面我总结了fiddler一些常用的用法。 Web端抓包配置 打开Fiddler&#xff0c;Tools -> Fiddler Options -> HTTPS 配置完后记得要重启Fiddler 选中Decrpt …

2024年智能制造行业CRM研究(附需求清单、市场格局、选型建议)

在国家大力鼓励智能制造行业与数字化转型这个大背景下&#xff0c;我们选择了2024年智能制造行业数字化的几个关键趋势做深入解读&#xff0c;并对智能制造行业核心的数字化系统CRM进行了全面评估与排名。本文不仅提供了详尽的需求清单&#xff0c;帮助企业明确自身对CRM系统的…

linux笔记8--安装软件

文章目录 1. PMS和软件安装的介绍2. 安装、更新、卸载安装更新ubuntu20.04更新镜像源&#xff1a; 卸载 3. 其他发行版4. 安装第三方软件5. 推荐 1. PMS和软件安装的介绍 PMS(package management system的简称)&#xff1a;包管理系统 作用&#xff1a;方便用户进行软件安装(也…

catia展开模型树

1 直接点号 2 选中零件&#xff0c;右击--命令--将图居中即可 一般都是上面这样有选择性的展开 如果要一次性都展开那

DDei在线设计器-DDeiCore-图形插件

DDei-Core-图形 DDei-Core-图形插件包含了基础绘图形状与基础流程形状两个分组&#xff0c;大约100来个图形&#xff0c;能够满足很基本的框图、架构图、流程图的绘制。 图形以分组的形式组织&#xff0c;一个分组中包含多个图形&#xff0c;一个图形也能够同时存在于多个分组。…

一张试卷

目录 问题 1: 1.时间 题目描述1 输入1 输出1 样例输入1 样例输出1 提示1 代码1 问题 2: 超酷的电话号码 题目描述2 输入2 输出2 样例输入2 样例输出2 提示2 代码2 问题 3:3.爸爸的数学题 题目描述3 输入3 输出3 样例输入3 样例输出3 提示3 代码3 问题 4: 4. 营养膳食 题目描述4…

几首音乐怎么合成一首?值得推荐的四个几首音乐合成一首的方法

几首音乐怎么合成一首&#xff1f;合成几首音乐成一首新的作品是一项创造性而充满挑战的任务。通过将不同的音乐元素融合在一起&#xff0c;可以创造出独特的音乐体验&#xff0c;展示多样化的音乐风格和个性。将多首音乐合成一首可以创造出独特的音乐体验&#xff0c;融合不同…