微机原理与接口技术 ( 5~6章 (8086指令系统) 西安交通大学 --吴宁)

5.指令和指令系统


基本概念

1.指令:         控制计算机完成某种操作的命令
2.指令系统:     处理器所能识别的所有指令的集合
3.指令的兼容性: 同一系列机的指令都是兼容的

指令寻址方式

1.立即数寻址

例: MOV AX,1200H


2.寄存器寻址

例: MOV AX,BX

3.存储器操作数寻址方式

    --------------------------------------------------
    
    
    1.直接寻址
        
        例: MOV AX,[1200H]
        
        直接寻址下默认操作数在数据段,但允许段重设
        
            例: MOV AX,ES:[1200H]
            
            
    --------------------------------------------------
    
    
    2.寄存器间接寻址(for 循环)
        
        有四个通用寄存器可存放数据的偏移地址:BX,BP,SI,DI
            ps:BX,SI,DI默认在数据段,BP默认在堆栈段
        
        例: MOV BX,1200H
            MOV AX,[BX]     等同于 MOV AX,[1200H]
            
    
    --------------------------------------------------
    
    
    3.寄存器相对寻址(for 一维数组)
        
        例: MOV AX,[BX+DATA]       DATA为位移量
        
        
    --------------------------------------------------
    
    
    4.基址,变址寻址
        
        基址寄存器内容 + 变址寄存器内容
          BX(数据段)
          BP(堆栈段)
        
        例: MOV SI,1100H
            MOV BX,SI
            MOV AX,[BX + SI]    (AX:[2200H])
           
            
    --------------------------------------------------
    
    
    5.基址,变址,相对寻址
    
        例: MOV DI,1100H
            MOV BP,DI
            MOV AL,[BP][DI]5
            
            
    --------------------------------------------------

6. 8086指令系统


一般数据传送指令 (MOV)

注意点:
    1.两操作数字长必须相同
    2.两操作数不允许同时为存储器操作数
    3.两操作数不允许同时为段寄存器
    4.在原操作数是立即数时,目标操作数不允许为段寄存器
    5.IP 和 CS 不作为目标操作数,FLAGS 一般也不作为操作数在指令中出现

堆栈操作指令

1.先进后出
2.以字为单位(16位)
    
压栈指令: PUSH OPRD    
出栈指令: POP  OPRD

OPRD为16位寄存器或者存储器的两个单元

3.注意点:

    1.指令操作数必须是16位
    2.操作数可以是寄存器或存储器单元,但不能是立即数
    3.不能从栈顶弹出一个字给CS

交换指令

格式: XCHG REG ,MEM/REG
注:
    1.两操作数必须有一个是寄存器操作数
    2.不允许使用段寄存器

查表指令 (零操作数/单操作数)

格式:    XLAT
注:
    1.用 BX 的内容代表一维数组首地址, AL 内容为数组内位移量, BX + AL 得到要查找元素的偏移地址
    
操作:将 BX + AL所指单元的内容送给 AL

字位扩展指令 (零操作数指令)

将符号数的符号位扩展到高位

格式  CBW  :  
    
    将AL内容扩展到AX    (8位->16位)
    
        若最高位 = 1,执行后 AH =FFH
        若最高位 = 0,执行后 AH =00H

格式  CWD  :
    
    将AX内容扩展到 DX AX    (16位->32位)
        
        若最高位 = 1,执行后 AH =FFFFH
        若最高位 = 0,执行后 AH =0000H

输入输出指令

I/O端口:    用于存储数据,可以直接
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值