汇编语言作业(七)

news2024/12/23 12:39:55
  • 目录

    一、实验目的

    二、实验内容

    三、实验步骤以及结果

    四、实验总结


    一、实验目的

    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. 本次实验对相关的算术运算符认识更加深入。

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

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

相关文章

性价比之选!W830NB降噪耳机高性能配置,探底价309元起

目录 一、降噪技术的革新:-45dB深度沉浸 二、超长续航,乐动不停歇 三、音质的极致追求:Hi-Res双金标认证 四、空间音频与低延迟游戏模式 五、人性化设计与智能互联 六、总结 在这个快节奏的时代,寻找一片属于自己的宁静空间…

TypeScript入门教程

今天,给大家分享一个自己总结的超详细的TypeScript入门教程电子书。从TypeScript的基础知识开始讲解,包括数据类型、变量、运算符、条件语句、循环结构等基本概念。接着,详细介绍TypeScript中的函数、类和接口等高级特性,以及如何…

理解查准率P、查全率R及Fβ度量怎么得来的

如果得到的是一组样本在两个算法上的一次预测结果,其中每个样本都被赋予了一个为正样本的概率(例如,通过逻辑回归或朴素贝叶斯分类器得到的概率估计),那么可以通过改变不同的阈值点来利用这些预测结果画出PR曲线。 如果…

Spring系统学习 -Spring IOC 的XML管理Bean之类类型属性赋值、数组类型属性赋值、集合类属性赋值

类类型属性赋值&#xff1a; 在XML配置中&#xff0c;可以使用 <property> 元素为类类型属性赋值。通过指定属性的名称和值&#xff0c;可以直接将其他Bean的实例引用注入到目标Bean的属性中。这种方式可以建立对象之间的关联关系。例如&#xff0c;可以将一个Address对象…

python项目(豆瓣电影)

目录 1、项目效果 2、项目源码 3、技术实现 4、总结 前言 我的这个项目是做的一个豆瓣电影爬取&#xff0c;爬取了豆瓣电影的TOP排行榜的数据 包括电影的名称 演员 评分 评价人数等等 运用了TK布局助手 布了4个界面 有登录 注册 首页 详情 注意&#xff1a;项目并没有连接数…

人工智能、机器学习、深度学习:技术革命的深度解析

目录 人工智能、机器学习、深度学习&#xff1a;技术革命的深度解析 引言 第一部分&#xff1a;人工智能的起源与演进 1.1 人工智能的定义 1.2 人工智能的历史 1.3 人工智能的关键概念 1.4 人工智能的应用领域 1.5 人工智能的未来发展 1.6 人工智能的代码案例 第二部…

计划任务 周期任务计划

周期任务计划 crontab 作用&#xff1a;实现周期重复的计划任务 服务&#xff1a;crond 启动crontab的服务 service crond start 自动启动 chkconfig crond on 例子&#xff1a; * * * * * touch date \\%F.log crontab的时间表示格式&#xff1a; 分钟&#xff1a;…

[2024-06]-[大模型]-[Ollama] 0-相关命令

常用的ollama命令[持续更新中] ollama更新&#xff1a; curl https://ollama.ai/install.sh |sh带着flash attention启动&#xff1a; OLLAMA_FLASH_ATTENTION1 ollama serve停止ollama服务&#xff1a; sudo systemctl stop ollama note&#xff1a;目前遇到sudo systemctl …

IBM,开始构建以量子为中心的超级计算机

6月6日&#xff0c;IBM与Pasqal宣布了一项重大合作!IBM和Pasqal打算合作开发一种以量子为中心的超级计算的通用方法并促进化学和材料科学的应用研究。IBM和Pasqal将与高性能计算领域的领先机构合作&#xff0c;为以量子为中心的超级计算奠定基础——将量子计算与先进的经典计算…

Python报表需求处理示例

单一文件下&#xff0c;相关主题的共128张字段结构相似的表&#xff0c;对一种需求用Excel手工编辑相当麻烦&#xff0c;下面介绍一种python做自动化报表示例及代码流程。 每张表均有相同的字段结构&#xff0c;因此可对该文件下所有表格同时操作&#xff0c;大大提高了计算效率…

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

万字长文讲解如何快速搭建一个Spring Cloud项目

文章目录 概念基本概念微服务七大组件 初始化Maven父工程整合注册中心组件整合远程调用与负载均衡组件组件整合网关组件整合配置中心组件以gateway模块为例 整合分布式事务组件操作数据库模拟创建订单和扣减库存整合Seata 整合熔断降级组件整合链路追踪组件源码地址参考来源 概…

Rust : windows下protobuf和压缩传输方案

此前dbpystream库是用python开发 web api。今天在rust中试用一下protobuf。 本文关键词&#xff1a;编译器、protobuf、proto文件、序列化、zstd压缩&#xff0c;build。 一、 protobuf编译器下载 具体见相关文章。没有编译器&#xff0c;protobuf无法运行。 windows参见&am…

多年不见,我美少女又回来了!

各位&#xff0c;可能很多人都不记得我了&#xff0c;上学的时候喜欢记学习笔记&#xff0c;好多学弟学妹们经常来我的博客看笔记&#xff0c;对于学习也有帮助。 时过境迁&#xff0c;生活中的琐事和繁忙的工作&#xff0c;真的自顾不暇… 还记得之前说要转型给大家分享内容运…

量产导入 | DFT和ATE概述

什么是DFT DFT(Design for Test),即可测性设计。 一切为了芯片流片后测试所加入的逻辑设计,都叫DFT。 DFT只是为了测试芯片制造过程中有没有缺陷,而不是用来验证芯片功能的,芯片功能的完善应该应该是在芯片开发过程用先进验证方法学去做的。 芯片制造过程相当复杂,工艺缺陷…

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时&#xff0c;若发现程序运行时间越长&#xff0c;占用内存越大直至崩溃&#xff0c;通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因&#xff0c;包括数组和字符串处理、未释放的资源、循环中的对象创建等&#xff0c;并提供具体的解决方…

SamSung PM9B1 1TB性能实测

** SamSung PM9B1 1TB性能实测 ** 一颗主控一颗NAND FLASH 单面器件布局&#xff0c;PMIC集成电源芯片DC\DC模组 PCIE Gen4.0X4 性能3673MB2954MB 工作状态功耗4.1w左右&#xff0c;待机状态功耗1.2W左右 全盘读速度2000MB左右 H2缓内速度1.2G H2缓外速度730MB H2读速度1.3G …

牛客little w and Discretization

玩一下样例发现&#xff0c;只要找到mex就可以知道有((1-mex)的值)所在的位置离散化后和原本的值是一样的&#xff0c;所以询问区间的长度-&#xff08;1-mex&#xff09;有几个值就是答案&#xff0c;数据范围3e5&#xff0c;莫队值域分块求区间mex,计算1-mex有几个位置属于这…

mmdeploy环境部署流程

参考&#xff1a;mmdeploy/docs/zh_cn/01-how-to-build/linux-x86_64.md at main open-mmlab/mmdeploy (github.com) 从零入门《openmmlab》mmdeploy[1]环境安装及简单上手_哔哩哔哩_bilibili 我的环境&#xff1a; docker容器&#xff0c;ubuntu20.04&#xff0c;cuda11.7…

迁移学习助力机器学习实践应用

大家好&#xff0c;迁移学习是一种技术&#xff0c;能使机器利用从以前任务中获得的知识来提高对新任务的泛化能力。作为ChatGPT和Google Gemini等模型的核心原理&#xff0c;迁移学习在长文档总结、复杂文章撰写、旅行规划以及诗歌和歌曲创作等重要任务中发挥着关键作用。 本…