8086CPU指令系统 串操作指令和处理机控制指令

前言:公号 「编程有料」后台回复 “大礼包” 即可获取近1000本助力你编程之路的电子书

串操作指令

什么叫数据串,什么叫串操作呢?

数据串是存储器中一块字节或字的存储区域,其长度可以是1字节一64K字节。

串操作就是对数据串中每个元素所进行的操作,这种操作通常是组合操作,能完成几条指令的功能。

1,常见的串操作指令

  • 1,串传送指令MOVSB/MOVSW

    格式:MOVSB/MOVSW
    功能:将源串指针所指单元的一个数据(字节或字)传送到目的串指针所指单元中,指针作相应变化。

在这里插入图片描述

另外一个指令:重复 REP

格式:REP 串操作指令

功能:使串操作指令重复执行CX指定的次数
说明:若CX≠0则重复执行串指令,并置CX←CX-1,直到CX=0为止。REP指令主要用于串传送和串写入指令前。

一个例题:将内存100H:200H开始的100个字节送到300H:400H开始的内存单元中。

分析:
(1)源串起始地址:100H:200H →DS:[SI]
(2)目的串起始地址:300H:400H→ES:[DI]
(3)串长度:100cX
(4)方向标志:地址增加→DF=0
程序如下:
MOV AX,100H
MOV DS,AX	;源串段地址
Mov SI,200H	;源串指针
MOV AX,300H
MOV ES,AX	;目的串段地址
MOV DI,400H	;目的串指针
Mov CX,100	;串长度
CLD	;地址增量
REP MOVSB	;这条指令很重要

  • 2,串比较指令 CMPSB/CMPSW

    格式: CMPSB/CMPSW

在这里插入图片描述

  • 相等则重复 REPE/REPZ

    格式:REPE/REPZ 串操作指令

    功能:若串操作指令执行结果相等,且CX 指定次数未到,则重复执行串指令,直到结果不相等,或CX 指定次数已到则停止。

    说明:若ZF=1且CX-1→CX≠0则重复执行串指令,直到ZF=0或CX一1→cX=0为止。REPE指令主要用于串比较和串搜索指令前。

  • 不相等则重复 REPNE/REPNZ

    格式:REPNE/REPNZ串操作指令

    功能:若串操作指令执行结果不相等,且CX指定次数未到,则重复执行串指令,直到结果相等,或CX指定次数已到则停止。

    说明:若ZF=O且CX-1→CX≠0 则重复执行串指令,直到ZF=1或CX一1→cX=0为止。REPNE指令主要用于串比较和串搜索指令前。

  • 3,串搜索指令 SCASB/SCASW

    格式: SCASB/SCASW

    功能:将累加器(AL或AX)内容与目的串指针DI 所指单元的一个数据(字节或字)相减但结果不回送,只影响标志位,指针作相应变化。

在这里插入图片描述

处理机控制指令

处理机控制指令用于控制处理器某些功能

1,标志位操作指令

  • 进位标志CF
    • CLC ;CF=0
    • STC ;CF=1
    • CMC ;CF=-CF
  • 方向标志DF
    • CLD ;DF=0
    • STD ;DF=1
  • 中断标志IF
    • CLI ;IF=0
    • STI ; IF=0

2,同步控制指令

  • (1)等待指令 WAIT

    格式:WAIT

    功能:使CPU进入空闲等待状态。在等待状态时,每隔5个时钟周期对TEST非的状态进行一次测试,若 TEST非 =0,则退出WAIT,开始执行下一条指令。在等待期间,处理器也接受中断,但从中断返回后,又进入WAIT执行状态。

  • (2)封锁总线指令LOCK

    格式:LOCK 指令

    功能:封锁总线使其他处理器不能使用总线

    说明:LOCK是可以加在任何指令前面的单字节前缀指令,它使处理器在执行该指令期间保持一个总线封锁信号LOCK非,使其他处理器不能使用总线。这样可以在多处理器系统中,实现对共享资源的存取控制。

  • (3)交权指令ESC

    格式:ESC 外部操作码,源操作数

    说明:要求协处理器完成某种任务。ESC是在最大模式下使用的一条指令,主要用在CPU与外部处理器(如协处理器8087)配合工作的情形。CPU执行该指令时,可使外部协处理器获得一个操作码和一个操作数,并使用8086的寻址方式。

3,暂停及空操作指令

  • 暂停指令 HLT

    格式:HLT

    功能:使CPU进入暂停状态

  • 空操作指令 NOP

    格式:NOP
    功能:不执行任何操作,只是占用了CPU用来获取该指令的4个时钟周期时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阔升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值