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

网站开发汇报ppt番禺网站建设品牌好

网站开发汇报ppt,番禺网站建设品牌好,注册公司代理记账报税,芜湖网站建设网站制作公司X86(32位)汇编指令与机器码转换原理 1 32位寻址形式下的ModR/M字节2 汇编指令转机器码2.1 mov ecx,[eaxebx*2]2.1.1 查Opcode和ModR/M2.1.2 查SIB 2.2 mov ecx,[eaxebx*210h]2.3 mov ecx,[eaxebx*200000100h] 本文属于《 X86指令基础系列教程》之一&…

X86(32位)汇编指令与机器码转换原理

  • 1 32位寻址形式下的ModR/M字节
  • 2 汇编指令转机器码
    • 2.1 mov ecx,[eax+ebx*2]
      • 2.1.1 查Opcode和ModR/M
      • 2.1.2 查SIB
    • 2.2 mov ecx,[eax+ebx*2+10h]
    • 2.3 mov ecx,[eax+ebx*2+00000100h]

本文属于《 X86指令基础系列教程》之一,欢迎查看其它文章。

在X86 32位架构下,指令格式定义中,新增了SIB字节。SIB(Scale, Index, Base)字节的意义是用于指定一种复杂的寻址方式(按比例变址寻址),在《CPU寄存器与寻址方式》中已经介绍过了。

1 32位寻址形式下的ModR/M字节

ModR/M字节具体值,组成情况,如下图所示。
在这里插入图片描述
上表查询方法,已在8086 CPU章节介绍过,不再赘述。
把表格中每一类寻址方式,都举一个例子,进行描述,如下:

序号寻址方式ModR/M汇编例子备注
1disp3200101mov ecx,[00000100h]参考8086 CPU
2[EAX]00000mov ecx,[eax]参考8086 CPU
3[- -][- -]00100mov ecx,[eax+ebx*2]SIB寻址
4disp8[EAX]01000mov ecx,[eax+10h]参考8086 CPU
5disp8[- -][- -]01100mov ecx,[eax+ebx*2+10h]SIB寻址
6disp32[EAX]10000mov ecx,[eax+00000100h]参考8086 CPU
7disp32[- -][- -]10100mov ecx,[eax+ebx*2+00000100h]SIB寻址

本文主要对32位架构下,新增的寻址方式,进行讲解。
这些寻址方式中,我们主要讲解[- -][- -]、disp8[- -][- -]、disp32[- -][- -]三种,本质其实他们属于一种,都是SIB寻址。

2 汇编指令转机器码

2.1 mov ecx,[eax+ebx*2]

2.1.1 查Opcode和ModR/M

mov ecx,[eax+ebx*2],表示将eax寄存器中地址+ebx寄存器中地址*2,指向的内存单元,存储到ecx寄存器中。
查询指令手册,与MOV r32,r/m32指令相符,其操作码为8B /r,/r表示这条指令具有ModR/M字段。
在这里插入图片描述
因此,我们查询ModR/M表,以[- -][- -]为行,以ecx为列,交汇处0C表示ModR/M值。
我们回顾一下机器码的组成,如下图所示:
在这里插入图片描述
当前指令不存在Instruction Prefixes、Displacement和Immediate,我们已经知晓Opcode和ModR/M,因此还需要查询SIB。

2.1.2 查SIB

指令中[eax+ebx*2],其含义如下:
在这里插入图片描述
因此Scale为2,Index为ebx,Base为eax,无Displacement,我们查询SIB表,如下:
在这里插入图片描述
以Scale和Index为行(ebx*2),以Base为列(eax),交汇处58表示SIB值(Scale=01,Index=011,Base=000)。
因此指令的机器码组成,如下所示:

汇编指令操作码ModR/MSIB机器码
mov ecx,[eax+ebx*2]8B0C588B0C58

2.2 mov ecx,[eax+ebx*2+10h]

mov ecx,[eax+ebx*2+10h],表示将eax寄存器中地址+ebx寄存器中地址*2+10h,指向的内存单元,存储到ecx寄存器中。
查询指令手册,与MOV r32,r/m32指令相符,其操作码为8B /r,/r表示这条指令具有ModR/M字段。

我们查询ModR/M表,以disp8[- -][- -]为行,以ecx为列,交汇处4C表示ModR/M值。

在这里插入图片描述
因此Scale为2,Index为ebx,Base为eax,Displacement为10h,我们查询SIB表,以Scale和Index为行(ebx*2),以Base为列(eax),交汇处58表示SIB值。
因此指令的机器码组成,如下所示:

汇编指令操作码ModR/MSIB偏移机器码
mov ecx,[eax+ebx*2+10h]8B4C58108B4C5810

2.3 mov ecx,[eax+ebx*2+00000100h]

mov ecx,[eax+ebx*2+00000100h],表示将eax寄存器中地址+ebx寄存器中地址*2+00000100h,指向的内存单元,存储到ecx寄存器中。
查询指令手册,与MOV r32,r/m32指令相符,其操作码为8B /r,/r表示这条指令具有ModR/M字段。

我们查询ModR/M表,以disp32[- -][- -]为行,以ecx为列,交汇处8C表示ModR/M值。

在这里插入图片描述
因此Scale为2,Index为ebx,Base为eax,Displacement为00000100h,我们查询SIB表,以Scale和Index为行(ebx*2),以Base为列(eax),交汇处58表示SIB值。
因此指令的机器码组成,如下所示:

汇编指令操作码ModR/MSIB偏移机器码
mov ecx,[eax+ebx*2+00000100h]8B8C58000001008B8C5800010000

X86 32位汇编,间接寻址不用段寄存器了,直接地址就可以寻址4GB空间。,未完待续。。

http://www.15wanjia.com/news/172637.html

相关文章:

  • 网站 硬件方案海外专用服务器
  • 互联网网站建设月总结部门网站建设自查报告
  • 饰品网站模板黄冈做网站的公司哪家好
  • 欧美免费视频网站模板深圳建网站兴田德润实惠
  • 做自媒体网站需要注册什么公司wordpress更换网站
  • 音乐网站开发背景及意义深圳建筑工程交易服务中心网
  • 哪些知名网站用wordpress网页设计与网站建设书籍
  • 建设银行自贡分行网站微信开放平台是什么
  • 京东的网站建设介绍住房城市建设网站
  • 免费下载ppt的网站正邦设计有限公司
  • 企业英文网站建设如何进入网站后台管理网站
  • 网站后台如何登陆网站有收录但是没排名
  • 广西医院响应式网站建设方案微信代运营合作方案
  • 万由nas做网站网站是怎么做的吗
  • 网站开发技术课程设计说明书海南专业网站运营托管
  • 乾安网站建设哪家好四平市网站建设
  • seo网站快速排名外包域名备案做电影网站
  • 网站开发相关的教材书籍台州市建设规划局网站6
  • 公司建的是网页还是网站网站首页素材
  • 安庆建设机械网站江苏省建设工程信息一体化平台
  • 网站制作工作室哪家比较好大连做网站哪家便宜
  • 网站后台管理规定wordpress 插件大全
  • 设计师品牌 网站百度怎么注册店面地址
  • 临沂网站建设模板做推广的公司一般都叫什么
  • mvc6电商网站开发实战东莞网站制作企业网站
  • 网站的详细设计网站开发工具选用原则
  • 怎么免费搭建网站中山今科网站建设
  • 外贸网站设计的公司承德市住房和城乡建设局官网
  • 企业建设网站没有服务器管理系统中计算机应用实践考试
  • 上海虹口网站建设公司网络运维工程师实习报告