汇编语言lea指令取数组偏移地址

最近看到一条指令,x86汇编,

    LEA BX, 6[DI]
根据资料,它的含义是,某数组含20个元素,每个元素占一个字节,序号为0~19。设DI指向数组开头处,把序号为6的元素的偏移地址送到BX中;

lea指令,

Load effective address,取有效地址,也就是取偏移地址;
lea指令用于把源操作数的地址偏移量传送目的操作数。

不知道这条指令是不是对的,6[DI] 这种写法没见过;

不太熟悉汇编;下面dosbox,debug看一下;

assume cs: codesg,ds:datasg

datasg segment
arr1 db 1,2,3,4,5,6,7,8,9,11,22,33,44,55,0h  
datasg ends   
       
codesg segment
START:
MOV AX, datasg  
MOV DS, AX 
MOV DI, DS
LEA BX, 6[DI]    
codesg ends
    END START

它是说DI指向数组开头,数据段里只有一个数组arr1,把datasg赋给DS,DS现在应指向数组开头,再把DS赋给DI,现在DI应指向数组开头;

然后再执行 LEA BX, 6[DI] ;debug看一下bx寄存器的值;

代码保存为2.asm,可以构建出2.exe,所以代码的写法是可以的;

debug 2.exe,先打r看一下寄存器的值,此时程序还没开始执行,

然后打t, t, t,单步执行3条;各寄存器的值如上图,此时还没执行 LEA BX, 6[DI],BX寄存器的值是0,如上图;

然后再单步执行一条,看一下BX寄存器的值变为0770,

 

看上去没问题,还不熟悉,有时间继续;

另外我用emu8086编译了一个2.bin出来,

 

debug可能不能调试bin的可执行文件,debug装载2.bin以后,它出来的第一条指令不是我们的指令,是乱的,

 

 

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

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

相关文章

如何进行长截图的两种方法

前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…

BFS解决单源最短路问题

目录 迷宫中离入口最近的出口 最小基因变化 单词接龙 为高尔夫比赛砍树 迷宫中离入口最近的出口 题目 思路 使用宽度优先遍历解决这道题,需要一个二维数组标记是否被遍历过,也需要一个队列辅助完成宽度优先遍历,类似于水波纹一样&#x…

java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present

开发过程中开发一个java接口 controller层接收list集合传参,然后postman调用一直不成功,报错 使用RequestParam方式,如果postman 调用接口时报错required parameter XXX is not present 可能是(value“items”)跟你输…

线索获取:多渠道获客策略解析

在当今商业环境中,企业面临着激烈的市场竞争和不断变化的客户需求。在此背景下,销售线索作为销售活动的基础和起点,重要性更加凸显,尤其是在营销精耕的当下,做好线索的精细化管理成为企业获取竞争优势的关键环节之一。…

数据结构----队列

1 什么是队列? 只允许在两端进行插入和删除操作的线性表,在队尾插入,在队头删除 插入的一端,被称为"队尾",删除的一端被称为"队头" 在队列操作过程中,为了提高效率&#xff0…

《重生到现代之从零开始的C语言生活》—— 指针3

数组名的理解 在我们使用&arr[0]的方式拿到了数组第一个元素的地址,但是其实,数组名本来就地址,而且是数组首元素的地址 所以数组名就是数组首元素的地址 但是会有两个例外 sizeof(数组名),sizeof中单独放数组名&#xff0c…

[Linux] 查看系统资源 (持续更新中)

概述 在Linux中,有许多命令和工具可用于查看系统的资源使用情况。以下是一些常用的方式: top:top命令是最常见的实时系统监视工具之一。它显示了当前运行的进程列表,以及每个进程的CPU、内存使用情况、nice值等信息。top命令还会…

帆软报表,达梦数据库驱动上传失败

1、按照正常操作新建数据库连接,上传准备好的达梦驱动时,提示如图一需要修改SystemConfig.driverUpload为true才可以。 2、FineDB存储了数据决策系统中除平台属性配置以外的所有信息。详情请参见: FineDB 数据库简介。 3、因此管理员可通过…

Kubectl基础命令使用

一.Kubectl 基础命令 格式: kubectl [command] [TYPE] [NAME] [FLAGS] kubectl 是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群。以下是一些常用的 kubectl 命令及其选项: 常用命令 获取资源 列出所有资源类型(Pods、De…

机器学习|什么是梯度下降(小白向)|探寻最优解之路

文章目录 前言一、什么是梯度下降?二、梯度下降法一般步骤1.确定一个小目标——预测函数2.找到差距——代价函数3.明确搜索方向——梯度计算4.一步要走多远?——学习率 三、梯度下降的分类批量梯度下降(Batch Gradient Descent)随…

2007-2022年上市公司资源节约数据

2007-2022年上市公司资源节约数据 1、时间:2007-2022年 2、来源:上市公司年报、社会责任报告、上市公司网站信息 3、指标:水资源节约、电力节约、原煤节约、天然气节约、汽油节约、柴油节约、集中供热节约、折算成统一标准煤共计节约 4、…

flume--数据从kafka到hdfs发生错误

解决: #1.将flume自带的依赖删除 mv /opt/installs/flume1.9/lib/guava-11.0.2.jar /opt/installs/flume1.9/lib/guava-11.0.2.jar.bak #2.将hadoop的依赖发送到flume下 cp /opt/installs/hadoop3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /opt/installs/f…

有哪些同声传译软件?精选5款实用工具

在浪漫之都巴黎,每一步都踏着历史与艺术的韵律。从埃菲尔铁塔下仰望的震撼,到塞纳河畔悠闲的咖啡时光,打卡巴黎地标已不再满足于传统方式。 如今,#打卡巴黎地标的方式nextlevel了#,科技与文化的碰撞开启了全新的体验篇…

『基础』线性代数-1行列式

行列式是什么-运算规则 排列:不同的 n 元排列共有 n! 个 逆序:小数排在大数后面,叫逆序;一个排列中逆序的总和叫做这个排列的逆序数,记为 τ ( j 1 , . . . , j n ) \tau(j_1,...,j_n) τ(j1​,...,jn​) 逆序数的计…

IP SSL证书的未来趋势:适应不断变化的安全挑战

随着网络攻击手段的不断进化和用户对隐私保护意识的增强,IP SSL证书作为保障网络安全的关键组件之一,也在不断地发展和完善。本文将探讨IP SSL证书的未来趋势,以及如何适应这些不断变化的安全挑战。 当前状况与挑战 网络安全意识提升&#…

LORA通信详解

LORA(Long Range Radio)是一种低功耗广域网(LPWAN)技术,专门设计用于物联网(IoT)设备的远距离通信。其长距离传输和低功耗特性使其在智能城市、环境监测、农业等领域中得到了广泛应用。 一、LOR…

音频分割软件有什么?最方便的音频分割软件分享给你

一段长音频就像是一本厚重的百科全书,而音频剪辑师的任务,就是要将这本书拆分成数个章节,每章都有其独立的主题和内容,这非常考验剪辑师们的音频分割技巧。 幸运的是,随着技术的发展,市面上出现了许多优秀…

每日一题——贪心算法

860. 柠檬水找零 - 力扣(LeetCode) 这道题目乍一看可能没有什么头绪,但是当你仔细想想就会明白一个道理,那就是,《论电子支付的重要性》哈哈哈哈,言归正传,其实很简单无非就是找钱,…

5个值得关注的AI模型比较平台

AI 正在以极快的速度发展,每周都有新的 AI 模型进入市场。就在一周前,Mixtral AI 发布了一款新模型 Mixtral 8x22B Instruct。它在 MMLU 等多个基准测试中在开源模型中保持了整整 26 小时的性能领先地位。紧接着,LLaMa 3 进入现场&#xff0c…

如何用Python构建高校爬虫与k-means算法实现专业评分可视化分析

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…