std在汇编语言是什么指令_汇编语言STD CLD的用法

STD CLD@TOC

在计 算机中,大部分数据存放在主存 中,8086CPU提供了一组处理主存中连续存放的数据串的指令——串操作指令。串操作指令中,源操作数用寄存器SI寻址,默认在数据段DS中,但允许段 超越;目的操作数用寄存器DI寻址,默认在附加段ES中,不允许段超越。每执行一次串操作指令,作为源地址指针的SI和作为目的地址指针的DI将自动修 改:+/-1(对于字节串)或+/-2(对于字串)。地址指针时增加还是减少取决于方向标志DF。在系统初始化后或者执行指令CLD指令后,DF=0,此 时地址指针增1或2;在执行指令STD后,DF=1,此时地址指针减1或2。

1、串传送指令MOVS

MOVSB ;字节串传送:ES:[DI]←DS:[SI],SI←SI+/-1,DI←DI+/-1

MOVSW ;字串传送:ES:[DI]←DS:[SI],SI←SI+/-2,DI←DI+/-2

MOVS 目的串名,源串名 ;这种格式需要使用前缀WORD PTR或BYTE PTR指明

例:将数据段SOURCE指示的100个字节数据传送到附加段DESTINATION指示的主存区

MOV SI,OFFSET SOURCE

MOV DI,OFFSET DESTINATION

MOV CX,100

CLD

AGAIN: MOVSB

DEC CX

JNZ AGAIN

2、串存储指令STOS

STOSB ;字节串存储:ES:[DI]←AL,DI←DI+/-1

STOSW ;字串存储:ES:[DI]←AX,DI←DI+/-2

船存储指令将AL或AX寄存器的内容存入由DI指定的附加段主存单元中,并根据DF和传送单位修改DI寄存器。STOS不影响标志。

3、串读取指令LODS

LODSB ;字节串读取:AL←DS:[SI],SI←SI+/-1

LODSW ;字串读取:AX←DS:[SI],SI←SI+/=2

LODS指令和STOS指令功能互逆,它将SI寄存器指向的主存单元的内容送至AL或AX寄存器,并相应修改SI使其指向下一个元素。不影响标志。

4、串比较指令CMPS

CMPSB ;字节串比较:DS:[SI]-ES:[DI],SI←SI+/-1,DI←DI+/-1

CMPSW ;字串比较:DS:[SI]-ES:[DI],SI←SI+/-2,DI←DI+/-2

船比较指令的功能是比较源串与目的串是否相同,并根据其减法结果设置标志位;指令在每次比较后修改SI和DI寄存器的值,使之指向下一个元素。

5、串扫描指令SCAS

SCASB ;字节串扫描:

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值