首页 > 编程知识 正文

微机原理三大总线,微机原理三级项目自动温控系统设计

时间:2023-05-06 06:53:56 阅读:205600 作者:8

第三章 指令系统与数据指令 1.指令系统基本概念 (1)指令与指令系统

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

(2)指令格式 操作码[操作数][操作数]操作指令目标操作数源操作数执行何种操作指令执行的对象零操作数指令: 操作码单操作数指令: 操作码 操作数双操作数指令: 操作码 操作数,操作数多操作数指令: 三操作数及以上 (3)指令中的操作数

1、立即数操作数

立即数本身是参加操作的数据,可以是8位或16位,只能作为源操作数。

例:

MOV AX,1234HMOV BL,22H

立即数无法作为目标操作数
立即数可以是无符号或带符合数,数值符合其取值范围。

2、寄存器操作数

参加运算的数存放在指令给出的寄存器中,可以是16位或8位。

例:

MOV AX,BXMOV DL,CH

存储器操作数

参加运算的数存放在存储器的某一个或某两个单元中表现形式:[ ]
[ ]里放操作数在内存中的偏移地址
指令的操作数出现【 】,表示要寻址的数在内存中。

注意上图:当目标操作数为AL时,只取了一个单元的数,而当目的操作数为AX时,取了两个单元的数。
2.指令的寻址方式

操作数可能的来源或运算结果可能的去处:

由指令指令直接给出寄存器内存单元

寻址操作数的、所在地址的方法可以有三种大类型

指令直接给出的方式存放于寄存器中的寻址方式存放于存储器中的寻址方式 立即寻址 立即寻址仅适合于源操作数,即源操作数是参加操作的数据本身。由指令直接给出运算的数据(操作数是立即数)。为常数形式或字符形式。立即数只表示运算的数据,无地址含义。 寄存器寻址 参加操作的操作数在CPU的通用寄存器中例:此种寻址方式中的寄存器主要是通用寄存器,不含控制寄存器,段寄存器限制使用。 存储器操作数 指令操作的对象在内存中,表现形式为:[ ]指令中给出运算对象在内存某个逻辑段中的偏移地址:[偏移地址]逻辑段的段基地址通过默认或重设方式给出。存储器操作数的字长本身不确定,其字长取决于指令中另一个寄存器操作数,或通过其他方式指定字长。 1、直接寻址

指令中直接给出操作数的偏移地址

例:MOV AX,[1200H]

直接寻址方式下,操作数默认为在数据段,但允许段重设,即由指令给出所在逻辑段。

例:MOV AX,ES:[1200H] ;ES为段重设符。

2、寄存器间接寻址 操作数存放在内存中,数据在内存中的偏移地址为方括号中通用寄存器的内容。仅有4个通用寄存器可用于存放数据的偏移地址(间接寄存器——>BX,BP,SI,DI)间接寻址的一般格式:[ 间址寄存器 ]

寄存器间接寻址由寄存器间接给出操作数的偏移地址;存放偏移地址的寄存器称为间址寄存器(BX,BP,SI,DI)操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:BX,SI,DI——>默认在数据段BP——>默认在堆栈段也可以段重设 3.寄存器相对寻址

4、基址、变址寻址

操作数的偏移地址为:一个基址寄存器的内容+一个变址寄存器的内容;

操作数的段地址由选择的基址寄存器决定

基址寄存器为BX,默认在数据段基址寄存器为BP,默认在堆栈段

基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。

例:

5、基址、变址、相对寻址 操作数的偏移地址为:基址寄存器内容+变址寄存器内容+位移量操作数的段地址由选择的基址寄存器决定。基址变址相对寻址方式主要用于二维表格操作。

隐含寻址

指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。例:MUL BL指令执行:AL*BL——>AX

数据传送指令 8086指令系统

从功能上包括六大类:

数据传送算术运算逻辑运算和移位串操作程序控制处理器控制 数据传送类指令 通用数据传送指令输入输出指令地址传送指令标志传送指令

除标志传送指令外,其他指令的执行对标志位不产生影响。

一、通用数据传送指令 1、一般数据传送指令 一般传送指令MOV格式:MOV dest,src操作:src——> dest例:MOV AL,BL

注意点

两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器;IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现;

一般数据传送指令应用例

将(*)的ASCLL码2AH送入内存数据段1000H开始的100个单元中。

题目分析:

确定首地址确定数据长度写一次数据修改单元地址修改长度值判断写完否?未完继续写入,否则结束 MOV DI,1000HMOV CX,64H;循环100次MOV AL,2AHAGAIN: MOV [DI],ALINC DI;DI+1DEC CX;CX-1JNZ AGAIN;CX!=0则继续HLT 2、堆栈操作指令

堆栈操作的原则

先进后出以字为单位

堆栈操作指令

压栈指令:PUSH OPRD(16位寄存器或存储器两单元)出栈指令:POP OPRD

压栈指令PUSH

指令执行过程:

SP-2——>SP操作数高字节——>SP+1操作数低字节——>SP

出栈指令POP

指令执行过程:

SP——>操作数低字节SP+1——>操作数高字节SP<——SP+2

堆栈操作指令说明

指令的操作数必须是16位;操作数可以是寄存器或存储器两单元,但不能是立即数;不能从栈顶弹出一个字给CS;PUSH和POP指令在程序中一般成对出现;PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。 3、交换指令

格式:XCHG REG, MEM/REG

注:

两操作数必须有一个是寄存器操作数。不允许使用段寄存器。

XCHG AX,BXXCHG [2000],CL 4、查表指令(了解即可) 格式:XLAT说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址。操作:将BX+AL所指单元的内容送AL。 5、字节扩展指令 将符号数的符号位扩展到高位;指令为零操作数指令,采用隐含寻址,隐含的操作数为 AX及AX,DX。无符号数的扩展规则为在高位补0。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。