博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一些汇编指令
阅读量:4505 次
发布时间:2019-06-08

本文共 724 字,大约阅读时间需要 2 分钟。

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].

转载于:https://www.cnblogs.com/LinKArftc/p/5734671.html

你可能感兴趣的文章
生成CFree 5.0 注册码
查看>>
磁力链接
查看>>
【问题解决方案】之 关于某江加密视频swf专用播放器仍无法播放的问题
查看>>
2014,码农梦想,先从态度开始!
查看>>
常用板子
查看>>
linux中安装eclipse--CnetOS6.5
查看>>
应用层拒绝服务攻击
查看>>
JavaScript学习总结(五)——jQuery插件开发与发布
查看>>
广度优先(迷宫找人)
查看>>
word2vec 评测 window_different
查看>>
我觉得二专很OK-2
查看>>
poj 2777
查看>>
最新版本GIT安装
查看>>
Python微信
查看>>
Oracle 存储过程起步
查看>>
python变量和作用域
查看>>
将AJAX返回值纵向排序赋值给Table标签
查看>>
MacOS下brew的安装和使用 lua环境搭建 lua http请求
查看>>
Java自学成长路线(转载)
查看>>
UITableView的section header view悬停的方法
查看>>