首页 > 编程语言 >编程题目解析

编程题目解析

时间:2024-06-14 11:32:47浏览次数:22  
标签:题目 编程 MOV 地址 CX AX 解析 DATA1 DATA2

编程题目解析

假设数据项定义如下:
DATA1 DB 'HELLO! GOOD MORNING!'
DATA2 DB 20 DUP(?)
用串操作指令编写程序段,使其分别完成以下功能:
(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,AX
    MOV 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,DATA1
    LEA DI,DATA2
    MOV CX,20
    CLD
    REPE CMPSB 
`
    先取得偏移地址,将CX填入字符长度,设置比较方向为增地址方向
    如果相等就重复 REPE CMPSB,依次比较一个B,直到CX减到0,结束

`

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

    LEA SI,DATA1
    ADD SI,2
    LODSW 
`
取得偏移地址再操作,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 STOSW

LEA DI,DATA2
ADD DI,5
MOV CX,15   ;每次移动1B
CLD
REP STOSB

标签:题目,编程,MOV,地址,CX,AX,解析,DATA1,DATA2
From: https://www.cnblogs.com/lichenglin1023/p/18246627

相关文章

  • Linux DNS域名解析
    DNS系统的作用及类型整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,如www.google.com、mail.163.com等。很显然这种地址形式要比使用64.233.189.147、202.108.33.74的IP地址形式更加直观,且更容易被用户记住......
  • 浙大版PTA python程序设计 第七章题目解析
    一、判断题1.以"w"模式打开的文件无法进行读操作。  -正确。以"w"模式(写入模式)打开文件时,只允许写操作,不能进行读操作。如果尝试读操作会引发错误。2.Pandas库是用于图像处理的库。  -错误。Pandas库主要用于数据处理和分析,不是用于图像处理的。图像处理通常......
  • 简单的Makefile文件解析
    Makefile文件解析#commonmakefileheader#"$(变量)"、"$makefile内置变量"表示变量值DIR_INC=../../include #头文件相对路径DIR_BIN=../../bin #可执行文件的相对路径DIR_LIB=../../libs #库的相对路径TARGET =iat_online_record_sample #目标变量BIN_TA......
  • 实战分析Java的异步编程,并通过CompletableFuture进行高效调优
    一、写在开头在我们一开始讲多线程的时候,提到过异步与同步的概念,这里面我们再回顾一下:同步:调用方在调用某个方法后,等待被调用方返回结果;调用方在取得被调用方的返回值后,再继续运行。调用方顺序执行,同步等待被调用方的返回值,这就是阻塞式调用;异步:调用方在调用某个方法后,直接返......
  • Java性能优化:实用技巧与策略全解析
    引言在软件开发中,性能常常是衡量应用成功的关键因素之一。对于Java应用来说,有效的性能优化不仅可以提高用户满意度,还能降低运营成本。本文将探讨一些高效的Java性能优化技巧,并通过实际代码示例展示如何实施这些策略。垃圾回收优化垃圾收集(GC)是Java性能优化中最关键的部分。......
  • 利用CompletableFuture优化Java中的异步编程
    在现代应用开发中,异步编程是提高应用性能和用户体验的关键技术之一。Java从1.8版本开始引入了CompletableFuture,它为编写非阻塞的异步代码提供了强大的工具。本文将详细介绍CompletableFuture的使用方法,并通过具体代码示例来展示如何在实际项目中应用。什么是CompletableFutur......
  • 【Java】 深入解析Java安全异常:Error - trustAnchors parameter must be non-empty
    >>【痕迹】QQ+微信朋友圈和聊天记录分析工具>>(1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。>>(2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。>>(3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。>>下载地......
  • 高通SA8295P芯片技术规格详解与原理解析
    高通SA8295P芯片技术规格详解与原理解析高通SA8295P(骁龙8295)是一款专为汽车座舱设计的高性能SoC(系统级芯片),采用最新的5nm工艺,具备强大的计算能力、图形处理能力以及丰富的外设支持。以下是该芯片的详细技术规格和工作原理解析。1.处理器核心(CPU)Snapdragon™SA8295PS......
  • 03、DNS 域名解析服务
    3.1BIND域名服务基础        本节首先对DNS系统的作用及类型做一个简单回顾,并学习Linux操作系统中BIND域名服务的基础知识。3.1.1DNS系统的作用及类型        整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务......
  • 《Linux命令行与shell脚本编程大全(第3版)》读书笔记
    一、初识linuxshell1、什么是linuxLinux可划分为以下四部分:Linux内核、GNU工具(如shell)、图形化桌面环境、应用软件1)深入探究linux内核内核主要负责以下四种功能:系统内存管理、软件程序管理、硬件设备管理、文件系统管理2)GNU工具(1)核心GNU工具:GNU项目的主旨在于为Unix......