编程题目解析

news/2024/9/30 5:37:40

编程题目解析

假设数据项定义如下:
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.hjln.cn/news/45281.html

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

相关文章

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包…

LVS负载均衡集群

目录1.负载均衡群集的原理(1)群集的含义(2)群集的类型(3)LVS负载均衡的三种工作模式(4)LVS调度算法2.LVS-NAT模式部署3.理解LVS-DR工作原理(1)LVS-DR数据包流向分析(2)LVS-DR中的ARP问题4.LVS-DR模式部署 1.负载均衡群集的原理(1)群集的含义 Cluster,集群、群集…

全光万兆时代来临:信而泰如何助力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大模型 需要积极探索。 作者只用…