首页 > 其他分享 >对于stosd的理解

对于stosd的理解

时间:2022-08-21 15:14:06浏览次数:69  
标签:stosd 对于 app edi mov 理解 方向 标记

在TSS相关的代码中,发现通常会有这样一段:

    mov edi,[app_i_param]

    add edi,[app_mem_pos]
    mov ecx,256/4
    cld
    rep stosd
    mov esi,[esp+4]
    cmp esi,0
    jz no_app_params

    。。。。。。。。。。。。。。。

cld会清除方向标记,而std会设置方向标记。

方向标志用于影响字符串指令偏移指针寄存器的方向。这些指令可以与REP前缀一起使用以重复操作。

简而言之,当方向标记为0时,指令将通过在每次迭代后递增指向数据的指针(eax放入要拷贝的内容,edi是递增的,将eax中的内容放入edi指向的地址中,ecx逐步递减为0)

stosd最后一个字母是d表示每次四个字节。

 

标签:stosd,对于,app,edi,mov,理解,方向,标记
From: https://www.cnblogs.com/menuetos32/p/16610028.html

相关文章

  • 解决 MyBatis Generator 对于自动更新Timestamp的值为null问题
    在generatorConfig.xml中使用columnOverride属性,参考文档链接,如下:<tabletableName="%"><generatedKeycolumn="id"sqlStatement="MySql"identity="true"/>......
  • RabbitMQ 入门系列:2、基础含义理解:链接、通道、队列、交换机
    系列目录RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。RabbitMQ入门系列:3、基础含义:持久化、......
  • 谈谈你对Promise的理解
    一、Promise是什么?理解 抽象表达:Promise是一门新的技术(ES6规范)Promise是JS中进行异步编程的新解决方案(备注:旧方案是单纯使用回调函数) 具体表达......
  • 事件循环:微任务和宏任务在v8中实现的简单理解
    微任务在js中,当使用promise,会将当前任务加入事件执行的微任务队列,有且只有这一种方法可以,因为当使用了promise,在JS引擎中会触发VM::queueMicrotask,会向m_microtaskQueue队......
  • 我对DDD领域驱动设计的理解
    本片随笔仅记录自己目前对DDD的理解与实践,后续会持续关注DDD,持续更新1.DDD是什么DDD是领域驱动设计的简称,那什么是领域呢,领域就是业务,比如,制药领域,金融领域,电商领域等等......
  • Eureka 理解
    生活中的例子:就好比网约车出现以前,人们出门叫车只能叫出租车。一些私家车想做出租却没有资格,被称为黑车。而很多人想要约车,但是无奈出租车太少不方便。私家车很多却不敢拦......
  • 通过一个具体的例子理解 npm 的 peerDependency
    假设我们有两个npmmoduleA和B,A是B的plugin.如果ABAP的package.json里将B定义成其dependency:{"dependencies":{"B":"1.2.0"}}那么我们......
  • 深入理解Redis 数据结构—字典
    字典,又称为符号表、关联数组或映射,是一种用于保存键值对的抽象数据结构。在字典中,一个键可以和一个值进行关联,这些关联的键和值称为键值对。键值对中键是唯一的,我们可以......
  • 2020-阅读理解-Text 1
    Text1AgroupofLabourMPs,amongthemYvetteCooper,arebringinginthenewyearwithacalltoinstituteaUK“townofculture”award.Theproposalisth......
  • 透过inode来理解硬链接和软链接
    什么是inode?每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括:对应的文件文件字节数文件数据块的位置文件的inode号码文件的硬链接数文件的读写权限文......