当前位置:文档之家› 微机原理指令系统学习

微机原理指令系统学习


• 数据传送(Data Transter)
• 算术运算(Arithmetic)
• 逻辑运算(Logic)
• 程序控制(Program Control)
2020/6/24
5
寻址方式:是指令中用于说明如何寻找 操作数的方法。
计算机中操作数常存放在以下几个地方:
指令代码中,存放常量;MOV AX, 2070H
寄存器中:MOV AX, BX
内存中: MOV AX, [2000H]
I/O端口中(仅对IN/OUT指令): IN AL, 40H
2020/6/24
;将 扩展段中偏移地址为0020H单元中的内容传 送到AL中去
MOV SS:[0100H], BX
;将 BX中的内容传送到堆栈段中偏移地址为 0100H、0101H的单元中去
2020/6/24
12
四、 寄存器间接寻址
操作数存放在内存中,但其偏移地址存放在指令 中给出的寄存器中。
BX中存放操作数
MOV AX, [BX]
MOV AX, BX ;将 BX中的内容传送到AX中去
MOV AL, BH ;将 BH中的内容传送到AL中去
MOV CL, AX 错误! 不匹配
2020/6/24
8
2020/6/24
9
三、 直接寻址 操作数存放在内存中,在指令中给出存放单元的 偏移地址,如果不加说明,操作数默认在数据段。
物理地址: (DS)×16+指令中给的16位偏移地址
6
8086/8088的基本寻址方式有六种:
寄存器寻址 ;操作数存放在寄存器中 立即寻址 ;操作数存放在内存代码段 直接寻址 ;操作数存放在内存 寄存器间接寻址;操作数存放在内存 变址寻址 ;操作数存放在内存 基址加变址寻址 ;操作数存放在内存
2020/6/24
7
一、 寄存器寻址 操作数放在CPU内部的寄存器中,可以是8位 或16位寄存器,注意源操作数和目的操作数的 位数应一致。
物理地址: (DS)×16+计算出的偏移地址
2、BP作为基地址
物理地址: (SS)×16+计算出的偏移地址
2020/6/24
21
MOV AX, [BX+SI+0200H]
;欲传送的操作数在数据段中,其偏移地址是BX寄 存器中的内容加上SI寄存器中的内容加上0200H
MOV AX, VAL[BX+SI]
;此时传送的操作数在数据段中,其偏移地址是 SI寄存器中的内容加上0200H 变址寻址可以有多种格式:
MOV AX, [BX+0A00H]
MOV AX, TAB[DI] 如:MOV AX, 0200H+[BX]
假设DS:3000H, BX: 1000H 则操作数所在地址:
高8位: 31201H 低8位: 31200H
2、对BP间接寻址
物理地址: (SS)×16+BP中给的16位偏移地址
2020/6/24
14
2020/6/24
15
例1:MOV AX, ES:[BX]
;传送的操作数在附加段中,偏移地址存放在BX 中。
例2:MOV [BP], BX ;将BX中的内容传送到堆栈段中,其目的地的偏 移地址存放在BP中。
MOV AX, 0200H[BX][SI]
MOV AX, 0200H[BX][BP];错误
MOV AX, 0200H[SI][DI];错误
MOV AX, COUNT[BP+SI]
;欲取的数据在堆栈段
2020/6/24
22
2020/6/24
23
2.2 8086/8088指令系统
8088/8086指令系统可以分为以下六个功能组:
微型计算机原理及应用
2020/6/24
1
第二章 8086/8088指令系统
2020/6/24
2
2.1 寻址方式
2.2 8086/8088指令系统
2.2.1 数据传送指令
2.2.2 算术运算指令
2.2.3 逻辑运算和移位指令
2.2.4 程序控制指令
2.2.5 串操作指令
2.2.6 标志处理与CPU控制指令
MOV AX, [0020H]
;将 数据段偏移地址为0020H的地址中的内容传 送到AX中去,相当于: MOV AX, DS:[0020H]
注意:书写时加方括号。
2020/6/24
10
2020/6/24
11
也可以指向内存中其他段的数据,这时要在相 应的偏移地址前加段超越符和“ :”。
MOV AL, ES:[0020H]
例3: MOV [CX], 2000H ;错,不能对CX间接寻址
2020/6/24
16
五、 变址寻址 操作数在内存中,由指定的寄存器内容,加上指 令中给出的8位或16位偏移量作为操作数的偏移地 址,计算方法:
偏移地址=寄存器内容+指令中给定的偏移量
同样,作为变址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。
的偏移地址
其中,作为间接寻址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。
2020/6/24
Hale Waihona Puke 13注意:用BP间接寻址,操作数默认在堆栈段, 用其余3个寄存器时,操作数默认在数据段。
1、对DI、SI、BX间接寻址 物理地址:
(DS)×16+DI/SI/BX中给的16位偏移地址
2020/6/24
19
六、 基址加变址寻址 操作数存放在内存中,但其偏移地址是由三部分 相加而成:
基址寄存器内容+变址寄存器内容+偏移量
基址寄存器只有2个:BX,默认的操作数在数据段; BP,默认的操作数在堆栈段。
变址寄存器只有2个:SI和DI。
偏移量同样由指令给出。
2020/6/24
20
1、BX作为基地址
2020/6/24
3
2.1 8086/8088寻址方式
指令格式:
操作码 操作数…
操作码:计算机所要执行的操作,或指出操 作类型,是一种助记符。
操作数:操作的对象,可以是操作数本身或
存放操作数的内存(I/O端口)地址或其它有关
操作数的信息 。
2020/6/24
4
汇编语言是一种符号语言,它用助记符 来表示操作码,用符号或符号地址来表 示操作数或操作数地址,它与机器指令 是一一对应的。
2020/6/24
17
注意:用BP变址寻址,操作数默认在堆栈段, 用其余3个寄存器时,操作数默认在数据段。
1、对DI、SI、BX变址寻址
物理地址: (DS)×16+计算出的偏移地址
2、对BP变址寻址
物理地址: (SS)×16+计算出的偏移地址
2020/6/24
18
MOV DH, [SI+0200H]
相关主题