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

相关文章

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu