8086寻址方式

article/2025/8/30 4:21:47

8086寻址方式


寻址方式总共有两大类:

按数据寻址

按地址寻址

1.数据寻址方式

MOV DST,SRC
  • 和数据有关的寻址方式

    1.立即寻址:

    • 操作数直接在源操作数中给出

      MOV AL,45H

      源操作数在指令中给出,立即数只能是源操作数

      立即数的长度和DST长度一致

    2.寄存器寻址

    • 操作数放在指定的寄存器中

      MOV AX,BX

      MOV AL,BH

      MOV AX,DX

      字节寄存器只有:AH,AL,BH,BL,CH,CL,DH,DL

      字寄存器有:AX,BX,CX,DX,SI,DI,BP,SP,CS,ES,DS,SS等

      CS不能用MOV指令改变,CS是代码段的寄存器

    3.直接寻址

    • 有效地址(偏移地址EA由指令直接给出)

      源操作数有两种形式:

      MOV AX,[1200H]

      MOV AX,VALUE ;VALUE是字类型的变量,变量的类型要与目的操作数的类型一致

      可以使用段跨越前缀 MOV AX,ES:[2000H]

    4.寄存器间接寻址

    • EA在基址寄存器(BX/BP)或变址寄存器(SI/DI)中

      MOV AX,[BX] ;PA = (DS)*16+(BX)

      MOV AX,ES:[BX] ;PA = (ES)*16+(BX)

      MOV AX,[BP] ;PA = (DS)*16+(BP)

      寄存器间址只能用这四个寄存器,不能使用别的寄存器

      适用于:数组,字符串,表格的处理

    5.寄存器相对寻址

    • EA = 间址寄存器(BX,BP,SI,DI)内容 + 8/16位偏移量(一般用标号表示)

      MOV AX,COUNT[SI] 或者

      MOV AX,[COUNT+SI]

      ;COUNT是固定的,SI相当于可变的下标,可以用来遍历数组,串,表格

    6.基址变址寻址

    • EX = 基址寄存器(BX/BP)+变址寄存器(SI/DI)

      MOV AX,[BX+DI] 或者

      MOV AX,[BX] [DI] 或者

      MOV AX,ES:[BX] [SI]

      适用于数组,串,表格处理

      必须是一个基址寄存器和一个变址寄存器的结合

      基址寄存器存起始地址,变址寄存器存可变的偏移量

    7.相对基址变址寻址

    • EA = 基址寄存器 + 变址寄存器 + 8/16位偏移量

      MOV AX,MASK[BX] [ SI] 或者

      MOV AX,MASK[BX+SI] 或者

      MOV AX,[MASK+BX+SI]

      偏移量一般用变量名表示,

      处理表格

    数据寻址方式练习:

    • 编写一段显示字符串STRING的程序-- DOS 2号功能调用只能给DL传递寄存器中的值,或者字符,ASCII,不能从内存中取

      1.寄存器间接寻址访问数据

      DATA SEGMENTSTR DB 'HAPPY NEW YEAR',0AH,0DH,'$'
      DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA
      START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET STRMOV CX,17NEXT:MOV DL,[BX]MOV AH,02HINT 21HINC BXLOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START
      

      2.寄存器相对寻址方式访问数据

      ;声明数据段
      DATA SEGMENT 
      STRING DB 'HAPPY NEW YEAR!',0AH,0DH,'$'
      COUNT DW 17			  ;STRING串的长度,$表示字符串结束的标志
      DATA ENDS
      ;声明代码段,数据段
      CODE SEGMENT
      ASSUME CS:CODE,DS:DATA	;绑定代码段和数据段到指定段寄存器
      START:MOV AX,DATAMOV DS,AX		   ;这两句是把DATA初始地址放到DS中,代表数据段定义结束; 寄存器相对寻址+循环MOV CX,COUNT	   ;设置循环次数,CX用来保存循环的次数,和LOOP一起使用MOV SI,OFFSET STRING  ;保存STRING的偏移地址,用来做串的下标,可变; 2号功能调用输出字符,SRC为字符的ASCII形式或者字符形式('A'),一次只能输出一个字符
      PRINT:MOV DL,STRING[SI]MOV AH,2INT 21HINC SI		    ;SI++,用来遍历STRINGLOOP PRINT		;LOOP指令执行分两步,_1.(CX)=(CX)-1,_2.判断CX中的值,不为0则跳转到标号处执行程序,如果为0,则跳出循环向下顺序执行程序CODE ENDS			;代码段结束
      END START
      

      3.相对基址变址寻址

      ;声明数据段
      DATA SEGMENT 
      STRING DB 'HAPPY NEW YEAR!',0AH,0DH,'$'
      COUNT DW 17			  			;STRING串的长度,$表示字符串结束的标志
      DATA ENDS
      ;声明代码段,数据段
      CODE SEGMENT
      ASSUME CS:CODE,DS:DATA	;绑定代码段和数据段到指定段寄存器,仅仅是声明,真正情况是CS系统自动绑定,ds,es,ss要用户自己手动写代码绑定
      START:; 让DATA指向DS数据段MOV AX,DATAMOV DS,AX		   				;这两句是把DATA初始地址放到DS中,代表数据段定义结束; 寄存器相对寻址+循环MOV CX,COUNT	   			;设置循环次数,CX用来保存循环的次数,和LOOP一起使用MOV BX,0  						;数组是一维空间的所以基址变址寄存器中只要一个变就行了MOV SI,OFFSET STRING  ;保存STRING的偏地址,用来做串的下标,可变; 2号功能调用输出字符,SRC为字符的ASCII形式或者字符形式('A'),一次只能输出一个字符
      PRINT:MOV DL,STRING[BX][SI]MOV AH,2INT 21HINC SI		  ;SI++,用来遍历STRINGLOOP PRINT	;LOOP指令执行分两步,_1.(CX)=(CX)-1,_2.判断CX中的值,不为0则跳转到标号处执行程序,如果为0,则跳出循环向下顺序执行程序;DOS是一个单用户单任务的OS,每次只能运行一个程序,运行完一个程序必须返回OS控制权给OS,不使用该语句,该程序会永远停留再这里,OS无法继续运行MOV AH,4CHINT 21HCODE ENDS			;代码段结束
      END START				;END表示汇编结束
      

2.和地址有关的寻址方式 — 用来确定转移指令及CALL指令的转向地址

段内寻址

  • 段内直接寻址 JMP NEAR PATR NEXT
  • 段内间接寻址 JMP TABLE[BX]

段间寻址

  • 段间直接寻址 JMP FAR PTR NEXT
  • 段间间接寻址 JMP DWORD PTR [BX]

3.段寄存器的使用规定

在这里插入图片描述


http://chatgpt.dhexx.cn/article/8VxdJkSW.shtml

相关文章

数据寻址方式

以下例子中的寻址方式说的都是源操作数,因为目的操作数都用的是寄存器寻址,不再讨论 1.立即寻址 立即寻址是指令直接给出立即数本身作为操作数,立即数作为指令的一部分跟指令一起存在于代码段中,会被指令预取队列直接取到CPU中进…

IPv6 寻址方式简介

在计算机网络中,寻址模式是指在网络上托管地址的机制。IPv6 提供了多种类型的模式,可以通过这些模式对单个主机进行寻址。也可以同时对多个主机进行寻址或者寻址最近距离的主机。 单播寻址 在单播寻址方式中,IPv6 接口(主机&…

七种寻址方式(立即寻址、寄存器寻址)

七种寻址方式(立即寻址、寄存器寻址) 一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位…

8086寻址方式图解

目录 1:立即寻址 2:寄存器寻址 3:直接寻址(存储器直接寻址) 4:寄存器间接寻址(重点) 5:基址寻址(相对寻址) 6:变址寻址 &#x…

七种寻址方式

七种寻址方式(从该处学习转载,感谢,如有侵犯,请联系删除) 立即寻址 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数寻址方式通…

十种寻址方式

寻址方式 寻址方式分为指令寻址和数据寻址。 目录 寻址方式 一、指令寻址 二、数据寻址 1.立即寻址 2.直接寻址 3.隐含寻址 4.间接寻址 5.寄存器(直接)寻址 6.寄存器间接寻址 7.基址寻址 8.变址寻址 9、相对寻址 10、堆栈寻址 一、指令寻…

常用的图像特征提取方法

1. 灰度特征可提取:灰度平均值、方差 2.纹理特征提取 MATLAB程序: %%%特征提取 clear all; close all; clc;Ddir(E:\my_work\长光所\云图\数据集\云样本\*.jpg); cloud_featurezeros(length(D),5);for i1:length(D)imgimread([E:\my_work\长光所\云图\…

OpenCV图像特征提取

Camera系列文章 传感器融合是将多个传感器采集的数据进行融合处理,以更好感知周围环境;这里首先介绍Camera的相关内容,包括摄像头及图像知识基本介绍,OpenCV图像识别(特征提取,目标分类等)&…

(八)特征选择与特征提取

特征选择与特征提取 一、特征的选择 1、原始特征 在描述对象的时候 模式识别中把每个对象都量化为一组特征来描述,构建特征空间是解决模式识别问题的第一步,其中通过直接测量得到的特征称为原始特征。 如: - 人体的各种生理指标&#xff0…

机器学习之特征提取

机器学习之特征提取 1.为什么要特征提取 原始数据常常是高维的,其中包含了许多冗余信息或者十分稀疏或者计算量大,拿原始数据来训练可行,但是往往直接训练是低效的。所以特征提取往往是必要的。 注:特征提取主要是为了解决下面三…

【机器学习】特征提取

特征提取 目标 应用DictVectorizer实现对类别特征进行数值化、离散化 应用CountVectorizer实现对文本特征进行数值化 应用TfidfVectorizer实现对文本特征进行数值化 说出两种文本特征提取的方式区别 定义 特征提取是将任意数据(如文本或图像)转换…

特征选择与特征抽取

特征抽取和特征选择是DimensionalityReduction(降维)两种方法,但是这两个有相同点,也有不同点之处: 1. 概念: 特征抽取(Feature Extraction):Creatting a subset of new features by…

【特征提取】基于深度学习的特征提取和匹配方法介绍

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达本文转自 | AI深度学习视线精彩内容 计算机视觉需要图像预处理,比如特征提取,包括特征点,边缘和轮廓之类。以前做跟踪和3-D重建&#…

特征工程之特征提取

![ 什么是特征提取呢? 1 特征提取 1 将任意数据(如文本或图像)转换为可用于机器学习的数字特征 注:特征值化是为了计算机更好的去理解数据 字典特征提取(特征离散化) 文本特征提取 图像特征提取(深度学习将介绍&…

数据分析 | 特征提取

目录 特征提取 1 方差过滤(VarianceThreshold) 2 卡方过滤(chi2;SelectKBest) 3 F检验(f_classif;SelectKBest) 关注我【生物海洋计算机支线】,获得更多生物海洋学&…

特征提取的方法

机器学习系列:(三)特征提取与处理 特征提取与处理 上一章案例中的解释变量都是数值,比如匹萨的直接。而很多机器学习问题需要研究的对象可能是分类变量、文字甚至图像。本章,我们介绍提取这些变量特征的方法。这些技术是数据处理的前提——序…

图像特征提取(VGG和Resnet特征提取卷积过程详解)

图像特征提取(VGG和Resnet算法卷积过程详解) 第一章 图像特征提取认知 1.1常见算法原理和性能 众所周知,计算机不认识图像,只认识数字。为了使计算机能够“理解”图像,从而具有真正意义上的“视觉”,本章我们将研究…

特征提取方法

潜在语义索引 潜在语义索引(Latent Semantic Indexing,以下简称LSI),也叫Latent Semantic Analysis ,简称LSA。本文中称为LSI。LSI是一种主题模型,他是利用SVD奇异值分解方法来获得文本的主题的。奇异值分解详见点击打开链接。 …

特征提取方法简介

one-hot 表示一个词 bag-of-words 表示一段文本 tf-idf 用频率的手段来表征词语的重要性 text-rank 借鉴page-rank来表征词语的权重 从基于SVD纯数学分解词文档矩阵的LSA,到pLSA中用概率手段来表征文档形成过程并将词文档矩阵的求解结果赋予概率含义,再到…

特征选择和特征提取(一、概述)

特征选择和特征提取属于图像处理领域最基本的操作。 再这之前,我们先来了解一下卷积和滤波,像平时我们听到的CNN,就是使用卷积操进行图像的滤波操作,简单来说,滤波是图像处理的操作,而卷积是实现滤波的方法…