当前位置: 首页 > news >正文

重庆seo网站设计福田网站建设公司乐云seo

重庆seo网站设计,福田网站建设公司乐云seo,浙江网站建设哪家专业,东莞常平做网站公司概念 在计算机系统中,处理器操作和处理的是数值,那么,必定涉及数值从哪里来,处理后送到哪里去,这称为寻址方式(Addressing Mode)。 简单地说,寻址方式就是如何找到要操作的数据,以及如何找到存…

概念

在计算机系统中,处理器操作和处理的是数值,那么,必定涉及数值从哪里来,处理后送到哪里去,这称为寻址方式(Addressing Mode)。

简单地说,寻址方式就是如何找到要操作的数据,以及如何找到存放操作结果的地方

寄存器寻址

最简单的寻址方式是寄存器寻址。就是说,指令执行时,操作的数位于寄存器中,可以从寄存器里取得。

mov ax,cx
add bx,0xf000
inc dx

上述代码中

  • 第一条指令的两个操作数都是寄存器,是典型的寄存器寻址
  • 第二条指令的目的操作数是寄存器,因此,该操作数也是寄存器寻址

立即寻址

立即寻址又叫立即数寻址。也就是说,指令的操作数是一个立即数

add bx,0xf000
mov dx,label_a

以上,

  • 第一条指令的目的操作数采用了寄存器寻址方式,用于提供被加数;
    • 第二个操作数(源操作数)用于给出加数0xf000。这是一个直接给出的数值,不需要通过其他方式寻找,故称为立即数。这种寻址方式,称为立即寻址。
  • 在第二条指令中,目的操作数也采用的是寄存器寻址方式。
    • 尽管源操作数是一个标号,但是,标号是数值的等价形式,代表了它所在位置的汇编地址。因此,在编译阶段,它会被转化为一个立即数。因此,该指令的源操作数也采用了立即寻址方式

内存寻址

寄存器寻址的操作数位于寄存器中,立即寻址的操作数位于指令中,是指令的一部分。

传统上,这是两种速度较快的寻址方式。但是,它们也有局限性。

  • 一方面,我们不可能总是知道要操作的数是多少,因此也就不可能总是在指令中使用立即数;
  • 另一方面,寄存器的数量有限,不可能总指望在寄存器之间来回倒腾。

考虑到内存容量巨大,所以,在指令中使用内存地址,来操作内存中的数据,是最理想不过了。正是因为内存访问如此重要,处理器才拥有好几种内存寻址方式。

所谓的内存寻址方式,就是如何在指令中指定操作数的偏移地址,供处理器访问内存时使用,这个偏移地址也叫有效地址(Effective Address, EA)。

换句话说,内存寻址方式就是在指令中指定偏移地址(有效地址)如何计算。

直接寻址

在这种寻址方式中,偏移地址或者说有效地址是直接给出的,是一个用标号或者数字直接给出的具体数值

mov ax,[0x5c0f]
add word [0x0230],0x5000
xor byte [es:label_b],0x05

 但凡是表示内存地址的,都必须用中括号括起来

第一条指令中,源操作数使用的是直接寻址方式,当这条指令执行时,处理器将数据段寄存器DS的内容左移4位,加上这里的0x5c0f,形成20位物理地址。接着,从该物理地址处取得一个字,传送到寄存器AX中。

在第二条指令中,目的操作数采用的是直接寻址方式。当这条指令执行时,处理器用同样的方法,访问由段寄存器DS指向的数据段,并把指令中的立即数加到该段中偏移地址为0x0230的字单元里

基址寻址

所谓基址寻址,就是先指定一个基准位置,数据的偏移地址(有效地址)取决于它到基准位置的位移或者说距离(Displacement)

使用基址寻址,必须在指令的地址部分使用基址寄存器BX或者BP来提供一个基准地址

mov [bx],dx
add byte [bx],0x55

第一条指令中的目的操作数采用了基址寻址。

在指令执行时,处理器将数据段寄存器DS的内容左移4位,加上基址寄存器BX中的内容,形成20位的物理地址。然后,把寄存器DX中的内容传送到该地址处的字单元里。

第二条指令中的目的操作数也采用的是基址寻址。

指令执行时,将数据段寄存器DS的内容左移4位,加上寄存器BX中的内容,形成20位的物理地址。然后,将指令中的立即数0x55加到该地址处的字节单元里。

基址寻址的动机是采用“基地址+位移”的方式计算有效地址

 在基址寻址方式中,基址寄存器也可以是BP

mov ax,[bp]

这条指令的源操作数采用了基址寻址方式。但是,与前面的指令相比,它采用是基址寄存器BP,在形成20位的物理地址时,默认的段寄存器是SS。也就是说,它经常用于访问栈。

这条指令执行时,处理器将栈段寄存器SS的内容左移4位,加上寄存器BP的内容,形成20位的物理地址,并将该地址处的一个字传送到寄存器AX中

变址寻址

变址寻址类似于基址寻址,唯一不同之处在于这种寻址方式使用的是变址寄存器(或称索引寄存器)SI和DI

mov [si],dx
add ax,[di]
xor word [si],0x8000

和基址寻址一样,当带有这种操作数的指令执行时,除非使用了段超越前缀,处理器会访问由段寄存器DS指向的数据段,偏移地址由寄存器SI或者DI提供。

同样的,变址寻址方式也允许带一个偏移量:

mov [si+0x100],al
and type [di+label_a],0x80

以上第二条指令中,尽管使用的是标号,但本质上属于一个编译阶段确定的数值

基址变址寻址

使用基址变址的操作数可以使用一个基址寄存器(BX或者BP)​,外加一个变址寄存器(SI或者DI)​。

在这种寻址方式下,

  • 基址寄存器BX或者BP是固定不变的,是真正作为基地址来使用的
  • 变址寄存器SI或者DI是可变的,用来提供位移

它的基本形式是这样的:

mov ax,[bx+si]
add word [bx+di],0x3000

以上,第一条指令的源操作数采用了基址变址寻址。当处理器执行这条指令时,把数据段寄存器DS的内容左移4位,加上基址寄存器BX的内容,再加上变址寄存器SI的内容,共同形成20位的物理地址。然后,从该地址处取得一个字,传送到寄存器AX中。

第二条指令与第一条指令类似,只不过是加法指令,它的目的操作数采用了基址变址寻址,源操作数采用的是立即寻址。这条指令执行时,处理器访问由段寄存器DS指向的数据段,加上由BX和DI相加形成的偏移地址,共同形成20位的物理地址,然后将立即数0x3000加到该地址处的字单元里。

以下是使用基址变址寻址实现的代码,其功能是将一个字符串进行翻转

http://www.yayakq.cn/news/561419/

相关文章:

  • 云南凡科建站哪家好wordpress把评论改为留言
  • 如何建设优化一个网站北京手机网站开发费用
  • 局域网建网站的详细步骤全国网站制作公司
  • 辽宁公司网站建设微信公众号推广怎么收费
  • 新老网站做301跳转深圳市网络seo推广平台
  • 鹤城建设集团网站策划会展网站建设
  • 网站后台编辑不了甘肃建设项目公示网站
  • 设计网站考虑哪些因素郑州制作网站电话133
  • 石家庄市里的网站公司自助建网站哪个便宜
  • 重庆网站建设公司的网站上海微信小程序网站建设
  • php做网站 价格建设门户网站系统的必要性
  • 阿里巴巴吧做网站wordpress简单相册
  • 营销型网站结构图软件开发包括哪些阶段
  • dede企业网站带留言板后台查询网店详情页模板
  • 网站备案后应该做什么做复刻衣服买网站
  • 信阳建设企业网站智慧团建系统网站
  • 唐山网站建设赫鸣科技网站打不开404
  • 我的世界找建筑网站网站设置请求桌面网站
  • 东莞气缸东莞网站建设网站开发如何修改字体
  • 网站制作工作室东莞浩智网站建设公司
  • 东莞市网站建设品牌拓者8室内设计网
  • 桂林出网站wordpress获取标签名
  • 专业网站设计学校网页制作软件序列号
  • 网站制作的基础网站开发行业知识新闻
  • 相亲网站上做it的骗术网站采集信息怎么做
  • 中式建筑网站平面设计公司排名前十
  • 网站做统计分析有哪些中文域名网站
  • 带后台网站建设wordpress模板大全
  • 个人网站制作多少钱哪个网站能接效果图做
  • 一个网站需要哪些备案上市公司网站建设方案