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

菲律宾做网站好吗网站群发推广软件

菲律宾做网站好吗,网站群发推广软件,黑客代码复制 装b,建筑公司有哪些部门和职位比例因子寻址: 比例因子寻址(也称为比例缩放索引寻址或基址加变址加比例因子寻址)是一种复杂的内存寻址方式,常用于数组和指针操作。它允许通过一个基址寄存器、一个变址寄存器和一个比例因子来计算内存地址。 语法 比例因子寻…

比例因子寻址

比例因子寻址(也称为比例缩放索引寻址或基址加变址加比例因子寻址)是一种复杂的内存寻址方式,常用于数组和指针操作。它允许通过一个基址寄存器、一个变址寄存器和一个比例因子来计算内存地址。

语法

比例因子寻址的通用格式为:

[base + index * scale + displacement]
  • base:基址。

  • index:变址寄存器(如 ESIEDI 等)。

  • scale:比例因子,可以是 1、2、4、8(根据数组元素数据类型决定)。

  • displacement:位移量,可以是一个立即数(常数)。

示例:使用循环来操作一个字节数组
.586
.model flat,stdcall
option casemap:none
​
.data
byte_arr db 13,23,14,25 ;定义数组
​
.code
main procxor ebx,ebx   ;xor异或指令;将 EBX 寄存器清零。mov eax,offset byte_arr  
loop_a:mov [eax + ebx * 1],bl  ;[eax + ebx * 1] 可以获取到字节数组每个元素的地址(ebx可以自加);若是字数组:[eax + ebx * 2],双字数组:[eax + ebx * 4]..根据数组元素类型选择数字(字节)inc blcmp ebx,4jl loop_a
main endp
end
代码执行过程
  1. 初始化 EBX 为 0 和 EAXbyte_arr 的地址。

  2. 进入循环,[eax + ebx * 1] 依次访问 byte_arr 的每个字节,将 BL 寄存器的值(从 0 开始递增)存储到数组的每个元素中。

  3. 循环结束后,byte_arr 的所有元素将被替换为 [0, 1, 2, 3]

代码段解释:
  • xor ebx,ebxEBX 寄存器清零,即 EBX = 0

  • mov eax,offset byte_arrbyte_arr 的地址加载到 EAX 寄存器。

  • loop_a: 是标签,表示循环的起始位置。

  • mov [eax + ebx * 1],blBL 寄存器的值存储到 byte_arr 数组中的相应位置。具体来说,[eax + ebx * 1] 计算数组 byte_arr 中的当前元素地址,并将 BL 的值存储到该位置。因为 EBX 从 0 开始,因此这将依次操作 byte_arr 的每个字节。(EBX32位寄存器,但是由于此时数组元素为1字节,8位数据;所以次数若是将ebx中的数据mov至数组元素中会造成数据溢出,所以只能movBL

  • inc blBL 寄存器的值加 1。

  • cmp ebx,4EBX 寄存器的值与 4 进行比较。

  • jl loop_a 如果 EBX 的值小于 4,则跳转到 loop_a,继续循环。

代码执行效果

byte_arr 将从原来的 [13, 23, 14, 25] 被修改为 [0, 1, 2, 3]

执行前数组内的数据:

执行后数组内的数据:

取数据

通过比例因子寻址取到地址后就可以使用LODS系列指令取数据。

LODS(Load String)指令是一条字符串操作指令,用于从数据段加载一个字节、一个字(16位),或者一个双字(32位)到累加器寄存器(AL, AX, EAX)。它使用源索引寄存器 ESI 来指示要加载的数据的地址,并根据方向标志位(DF)来决定 ESI 的增减。

语法
  • LODSB:从 [ESI] 加载一个字节到 AL,并根据 DF 更新 ESI

  • LODSW:从 [ESI] 加载一个字到 AX,并根据 DF 更新 ESI

  • LODSD:从 [ESI] 加载一个双字到 EAX,并根据 DF 更新 ESI

方向标志位(DF)
  • 如果 DF 为 0(使用 CLD 清除),ESI 递增。

  • 如果 DF 为 1(使用 STD 设置),ESI 递减。

示例:

使用 LODSB 指令从数组中逐字节加载数据。

.586
.model flat,stdcall
option casemap:none
​
.data
byte_arr db 13,23,14,25
​
.code
main proc
;取数据代码xor eax,eax     ;将 EAX 寄存器清零。mov esi,offset byte_arrmov ecx,4
lods_a:lodsb   ;根据ESI中的数组基地址,将数据加载至AL寄存器中loop lods_a
​
main endp
end 

xor eax,eax:将 EAX 寄存器清零。

mov esi,offset byte_arr:将数组 byte_arr 的地址加载到 ESI 寄存器。

mov ecx,4:将 ECX 寄存器设置为 4,表示要处理的字节数。

lods_a::标签,表示循环的起始位置。

lodsb:从 ESI 指向的地址加载一个字节到 AL 寄存器,并根据方向标志(DF)更新 ESI。默认情况下,ESI 会递增。

loop lods_a:将 ECX 寄存器的值减 1;如果 ECX 的值不为 0,则跳转到 lods_a,继续循环。

内存中的数组:

取出数据:

http://www.hkea.cn/news/551223/

相关文章:

  • 深圳不加班的互联网公司整站seo优化
  • 中国做的很好的食品网站肇庆疫情最新消息
  • 做时时彩网站微信seo关键词有话要多少钱
  • 陇南市建设局网站商务软文写作
  • 做学术研究的网站营销方案怎么写?
  • 专业网站设计公司有哪些秒收录关键词代发
  • 织梦网站模板源码下载真实有效的优化排名
  • 网站建设过程中什么最重要磁力链bt磁力天堂
  • html5企业网站案例鹤壁搜索引擎优化
  • 网站建设平台简介链接交换平台
  • 照片展示网站模板宁波seo咨询
  • 奉贤建设机械网站制作长沙网址seo
  • 上海企业网站模板建站常用的网络推广方法
  • 大连零基础网站建设教学培训济南seo优化公司
  • html 做网站案例简单网站推广建设
  • 践行新使命忠诚保大庆网站建设线上广告
  • 定制网站建设服务商商家联盟营销方案
  • 集团官网建设公司外贸seo推广公司
  • 佛山新网站制作平台网站诊断工具
  • 做PPT的网站canvawhois查询
  • 营销型网站建设吉林定制化网站建设
  • 个人网上公司注册流程图新站优化案例
  • 做se要明白网站明星百度指数排名
  • 网页微博草稿箱在哪西安seo推广优化
  • 嘉兴微信网站建设谷歌首页
  • 什么网站做海报b站不收费网站
  • 如何自己做个简单网站seo知识点
  • 有哪些做批发的网站有哪些手续百度推广优化是什么意思
  • 用阿里巴巴店铺做公司网站怎么样引擎搜索有哪些
  • 网页制作软件属于什么软件类别简述seo的优化流程