zoukankan      html  css  js  c++  java
  • 一些汇编指令

    1、cli 关闭中断

    2、cld

      与cld相对应的指令是std,二者均是用来操作方向标志位DF(Direction Flag)。cld使DF 复位,即是让DF=0,std使DF置位,即DF=1.这两个指令用于串操作指令中。通过执行cld或std指令可以控制方向标志DF,决定内存地址是增大(DF=0,向高地址增加)还是减小(DF=1,向地地址减小)。

            串操作指令寻址方式有点特殊:

            源操作数和目的操作数分别使用寄存器(e)si和(e)di进行间接寻址;没执行一次串操作,源指针(e)si和目的指针(e)di将自动进行修改:±1、±2、±4,其对应的分别是字节操作、字操作和双字操作。注:intel文档使用MOVSD传送双字,而GNU文档使用MOVSL传送双字。

    例如:
           MOVSB //字节串传送 DF=0, SI = SI + 1 , DI = DI + 1 ;DF = 1 , SI = SI - 1 , DI = DI - 1;字串传送和双字串传送类似。
    执行操作:[DI] = [SI] ,将位于DS段的由SI所指出的存储单元的字节或字传送到位于ES段的由DI 所指出的存储单元,再修改SI和DI, 从而指向下一个元素. 
           在执行该指令之前,必须预置SI和DI的初值,用STD或CLD设置DF值.
    MOVS DST , SRC //同上,不常用,DST和SRC只是用来用类型检查,并不允许使用其它寻址方式来确定操作数.
    1.目的串必须在附加段中,即必须是ES:[DI]
    2.源串允许使用段跨越前缀来修饰,但偏移地址必须是[SI].

  • 相关阅读:
    Java之static理解
    linux安装vsftpd
    JS获取当前时间戳的三个方法
    git常用操作
    npm更新包
    springboot的mvn与gradle启动方式
    mac nginx compile
    [文摘]那些一心想要离开 BAT 的人,后来怎么样了?
    excel 常用法
    chrome 快捷键
  • 原文地址:https://www.cnblogs.com/LinKArftc/p/5734671.html
Copyright © 2011-2022 走看看