3.4 bp,si,di寄存器,寻址方式,寄存器总结

2024-03-18 03:04

本文主要是介绍3.4 bp,si,di寄存器,寻址方式,寄存器总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

汇编语言

1. [bx+idata]

  • 我们可以用[bx]来指明一个内存单元
  • 我们也可以用[bx+idata]来表示一个内存单元,它的偏移地址为bx中的数值加上idata

image.png

image.png

image.png

mount c d:masm
c:
debug
r
d 2000:1000
e 2000:1000
12 34 56 78
a
mov ax,2000
mov ds,ax
mov bx,1000
mov ax,[bx]
mov cx,[bx+1]
add cx,[bx+2]

2. si和di

  • si和di是8086CPU中和bx功能相近的寄存器
  • si和di不能够分成两个8位寄存器来使用
  • 下面3组指令实现了相同的功能
mov bx,0
mov ax,[bx]mov si,0
mov ax,[si]mov di,0
mov ax,[di]
  • 下面的3组指令也实现了相同的功能
mov bx,0
mov ax,[bx+123]mov si,0
mov ax,[si+123]mov di,0
mov ax,[di+123]

3. [bx+si]和[bx+di]

  • [bx+si]和[bx+di]的含义相似
  • [bx+si]和[bx+di]表示一个内存单元,它的偏移地址为(bx)+(si),即bx中的数值加上si中的数值

4. 不同的寻址方式的灵活应用

  1. [idata]用一个常量来表示地址,可用于直接定位一个内存单元
  2. [bx]用一个变量来表示内存地址,可用于简介定位一个内存单元
  3. [bx+idata]用一个变量和常量表示地址,可以一个起始地址的基础上用变量间接定位一个内存单元
  4. [bx+si]用两个变量表示地址
  5. [bx+si+idata]用两个变量和一个常量表示地址

5. bx、si、di和bp

  • 在[…]中,这4个寄存器可以单个出现,可以组合出现
  • 注意:bx和bp,si和di不能同时出现
  • 但是idata可以加,这个没关系
  • 只要在[…]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中

例如:

r ss
1000
d 1000:0000
12 34 56
a
mov ax,[bp+1]
t
//输出结果,ax = 5634
//没有显性给出段地址,使用默认地址即ss的值“1000”,再bp加上1,则地址为1000:0001

image.png

image.png

6. 寻址方式总结

image.png

image.png

这篇关于3.4 bp,si,di寄存器,寻址方式,寄存器总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820986

相关文章

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C# List.Sort四种重载总结

《C#List.Sort四种重载总结》本文详细分析了C#中List.Sort()方法的四种重载形式及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录1. Sort方法的四种重载2. 具体使用- List.Sort();- IComparable

java敏感词过滤的实现方式

《java敏感词过滤的实现方式》文章描述了如何搭建敏感词过滤系统来防御用户生成内容中的违规、广告或恶意言论,包括引入依赖、定义敏感词类、非敏感词类、替换词类和工具类等步骤,并指出资源文件应放在src/... 目录1.引入依赖2.定义自定义敏感词类3.定义自定义非敏感类4.定义自定义替换词类5.最后定义工具类

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序