编程题目解析

news/2024/12/27 18:55:09/文章来源:https://www.cnblogs.com/lichenglin1023/p/18246627

编程题目解析

假设数据项定义如下:
DATA1 DBHELLO!GOOD MORNING!
DATA2 DB20DUP(?)
用串操作指令编写程序段,使其分别完成以下功能:
(1)从左到右将DATA1中的字符串传送到DATA2中。
(2)传送完毕后,比较DATA1和DATA2中的内容是否相同:(3)把DATA1中的第3和第4字节装人AX。
(4)将AX的内容存人从DATA2+5开始的字节单元中。
img

(1)从左到右将DATA1中的字符串传送到DATA2中

    MOV AX,SEG DATA1    ;SEG是获取标号的段地址,OFFSET是获取标号的段间的地址,也就是偏移地址;MOV DS,AXMOV AX,SEG DATA2 MOV ES,AX    ;目标串就是在ES段,将ES段初始化LEA SI,DATA1 ;取偏移地址LEA DI,DATA2 ;取偏移地址MOV CX,20   ;串长度CLD REP MOVSB  ;相当于循环指令,直到CX减到0`串操作指令要求:(1) 源串默认在DS段(数据段),允许段重设,偏移地址为SI给出(2) 目标串默认再ES段(附加段),不允许段重设,因此必须先将ES段初始化,偏移地址由DI给出(3) 串长度值由CX给出(4) 操作方向与DF有关系 DF=0,按照增地址依次修改,DF=1,按照减地址依次修改(5) 可以使用重复前缀 REP `

(2)传送完毕后比较DATA1和DATA2中的内容是否相同

    LEA SI,DATA1LEA DI,DATA2MOV CX,20CLDREPE CMPSB 
`先取得偏移地址,将CX填入字符长度,设置比较方向为增地址方向如果相等就重复 REPE CMPSB,依次比较一个B,直到CX减到0,结束`

(3)把DATA1中的第3和第4字节装入AX

    LEA SI,DATA1ADD SI,2LODSW 
`
取得偏移地址再操作,SI开始存放的为字符串首地址,+2 之后变为第三个字符存放位置
LOADSW:将串装入AX或AL;STOS是将AX或AL串存入ES:DI指向的存储单元
`

(4)将AX的内容存入从DATA2+5开始的字节单元

LEA DI,DATA2
ADD DI,5
MOV CX,8   ; 20-5=15,0-15有16个,每次移动2B,移动8次就可以了
CLD
REP STOSWLEA DI,DATA2
ADD DI,5
MOV CX,15   ;每次移动1B
CLD
REP STOSB

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASCII字符表和说明

ASCII,全称 American Standard Code for Information Interchange,即美国信息互换标准代码ASCII,全称 American Standard Code for Information Interchange,即美国信息互换标准代码,特点如下:一个字符用一个字节存储。 每个字节的最高位为 0,剩下的 7 位二进制数来对每…

构建vivo小游戏时出现npm install -g的解决方案

我通过Unity开发了一款游戏,我们使用Vivo官方的插件构建了webgl项目我们需要在vscode中使用node.js和npm进行打包成rpk文件,所以我们需要安装node和npm(现在下载node.js基本上都有集成了npm) PS:需要先下载Vivo的官方minigame插件,下载后可以使用npm run build调用该插件…

sort命令对文件内容排序

如下,有一个ip文件,需要对其进行排序处理,方便直观查看 解决办法:sort -n -t . -k1,1 -k2,2 -k3,3 -k4,4 ip.txt-n #表示按数值排序 -t . #表示以 . 号为分隔符,进行分段处理 -k1,1 -k2,2 -k3,3 -k4,4 #表示对ip地址以.号结尾进行4部分排序 ip.txt …

如何创建一个自己的npm包

一、注册npm账号 前往npm官网注册自己的npm账号(有了的可以省略这步) 注册注意事项(账号要拼音全小写的,密码需要十位以上,包含大小写字母、数字、特殊字符,有错误的话点击创建的时候最后他才会统一在页面的最上方显示错误) 二、本地建立一个文件 本地建立一个自己的npm包…

全光万兆时代来临:信而泰如何助力F5G-A(50PONFTTR)技术发展

技术背景 F5G-A(Fifth Generation Fixed Network-Advanced,第五代固定网络接入)是固定网络技术的一次重大升级,代表了光纤网络技术的最新发展。F5G-A旨在提供更高的带宽、更低的延迟、更可靠的连接以及更广泛的应用场景。 F5G-A六大特征:新技术的发展也带来了更多的测试挑…

Bean Searcher v4.3.0 重大更新!

Bean Searcher 是一款专注高级查询的只读 ORM 开源项目。本次更新带来了大家期待已久的功能 ...往期阅读:我这样写代码,比直接使用 MyBatis 效率提高了 100 倍 最近火起的 Bean Searcher 与 MyBatis Plus 倒底有啥区别? Bean Searcher v3.8.0 一大波新特性来袭Bean Searcher…

探索2024年的软件开发

2024年6月了,目前的软件开发已经到了什么阶段了? 哪个阶段是开发的重难点?CI/CD吗?容器化/容器编排?GPU、TPU调度?提前小结: 1、CI/CD 是 现代化软件开发的核心。 公司有,独立开发者也应该有一套,可以大大提高开发效率。 2、代码生成LLM大模型 需要积极探索。 作者只用…

vscode process terminal 3221225506 终端打不开 默认打开powershell

可能旧的 版本,旧的文章不适用 可能内网环境,识别不了终端 现在的解决方式是,打开setting,搜索“”“powershell” ,定位到 ,修改default profile 选项为 Command Prompt附 网上的旧方法不适用 ,如 2021年的文章 https://blog.csdn.net/qq_40021015/article/details/113…

使用‘消除’技术绕过LLM的安全机制,不用训练就可以创建自己的nsfw模型

开源的大模型在理解和遵循指令方面都表现十分出色。但是这些模型都有审查的机制,在获得被认为是有害的输入的时候会拒绝执行指令,例如会返回“As an AI assistant, I cannot help you.”。这个安全功能对于防止误用至关重要,但它限制了模型的灵活性和响应能力。 在本文中,我…

转换协议字节

转换协议字节/// <summary>/// 转换协议字节帮助类/// </summary>public class ByteUtil{/// <summary>/// byte数组转换int/// </summary>/// <param name="src"></param>/// <param name="offset"></param…

硬件开发笔记(十八):核心板与底板之间的连接方式介绍说明:板对板连接器

前言核心板与底板之间的连接方式至少就有四种以上,包括且不限于:DIP直插、板对板连接器、邮票孔和金手指。 常用连方式介绍DIP直插DIP就是以前的元器件封装,直接DIP插入焊接,宿便找了个,如下图:  可以定制自己的,一般来说,没有高速电路问题不大,但是这种方式对于复杂…

大模型应用之路:从提示词到通用人工智能(AGI)

大模型在人工智能领域的应用正迅速扩展,从最初的提示词(Prompt)工程到追求通用人工智能(AGI)的宏伟目标,这一旅程充满了挑战与创新。本文将探索大模型在实际应用中的进展,以及它们如何为实现AGI铺平道路。 基于AI大模型的推理功能,结合了RAG(检索增强生成)、智能体(…