欢迎来到天天文库
浏览记录
ID:38957585
大小:1.29 MB
页数:165页
时间:2019-06-22
《微机原理与接口技术3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章指令系统与汇编语言程序设计学习8088/8086指令系统的原因指令的兼容性应用的广泛性资料容易查找3.1概述指令——控制计算机完成指定操作、并能够被计算机所识别的命令机器指令——指令的二进制代码形式。例如:CD21H(1100110100100001)汇编指令——助记符形式的指令。例如:INT21H指令系统——CPU所有指令及其使用规则的集合指令按功能分为六大类(92种)数据传送类;算术运算类;逻辑运算和移位;串操作;控制转移类;处理器控制。3.1.1指令的基本构成操作码[操作数],[操作数]说明要执行的是什么操作操作对象,可以有0个、1个或2个目的源指
2、令举例:ADDAX,[SI+6]MOVAX,BX操作码操作数INC[BX]HLT部分8088常用指令指令类型助记符数据传送数据传送MOV,PUSH/POP,XCHG等地址传送LEA,LDS,LES输入输出IN,OUT算术运算加法ADD,ADC,INC减法SUB,SBB,DEC,NEG,CMP乘/除法MUL,IMUL,DIV,IDIV逻辑AND,OR,NOT,XOR,TEST移位SHL/SHR/SAR,ROL/ROR,RCL/RCR串操作MOVS,CMPS,SCAS,LODS,STOS控制转移JMP,JXX,LOOP,CALL/RET,INT/IRET8088/80
3、86的操作数分为3类立即数操作数寄存器操作数存贮器操作数1、立即数(常数)不因指令的执行而发生变化取值范围如下表:8位16位无符号数00H-FFH(0-255)0000H-FFFFH(0-65535)带符号数80H-7FH(-128~127)8000H-7FFFH(-32768~32767)立即数只能用作源操作数在指令中,立即数操作数只能用作源操作数,而不能当目标操作数用。如:MOVAX,3ACFH正确MOV3ACFH,AX错误2、寄存器操作数放在8个通用寄存器或4个段寄存器中的操作数8个通用寄存器AX、BX、CX、DXSP、BP、SI、DI4个段寄存器
4、CS、DS、SS、ES可用作源操作数,也可用作目的操作数两个控制寄存器IP、FR不可能作操作数寄存器的使用只能存放字操作数段寄存器存放当前操作数的段基地址SIDIBPSPCSDSESSS3、存储器操作数存储器操作数字节字双字124类型存储单元个数说明存储器操作数在指令中既可作源操作数,也可作目的操作数。但对大多数指令言,不允许源和目的操作数同时为存贮器操作数(唯串操作时,源及目的操作数可同时为存贮器操作数)。为寻找存贮器操作数,首先必须确定该操作数所在段,即先确定段寄存器。若指令中没有指明所用段寄存器,则CPU采用默认段寄存器。P50表2-33.1.2指令的执行时
5、间一条指令的执行时间=∑取指令取操作数执行指令传送结果单位用时钟周期数表示结论:1)尽量使用寄存器作为操作数2)若有可能,用移位代替乘除法3)尽量使用简单的寻址方式P963.28086的寻址方式寻址方式——寻找操作数的方法寻找操作数的地址(一般指源操作数)寻找要执行的下一条指令的地址在8086指令系统中,说明操作数所在地址的寻址方式可分为8种:①立即寻址⑤寄存器相对寻址②直接寻址⑥基址-变址寻址③寄存器寻址⑦相对的基址-变址寻址④寄存器间接寻址⑧隐含寻址1.立即寻址操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为立即数。立
6、即寻址只能用于源操作数如果是16位数,则高位字节存放在高地址中,低位字节存放在低地址中。指令操作码操作数(立即数)程序举例内容地址二进制CS段数据代表含义00HMOVAL,710110000MOVAL,n01H00000111n=702HADDAL,1000000100ADDAL,n03H00001010N=1004HHLT11110100HLT::::::DXCXBXAX通用寄存器组SIDIBPSPDLDHCLCHBLBHALAH内部通信寄存器IPESSSDSCS4321指令队列ALU地址加法器暂存寄存器FLAGSEU控制部件总线控制逻辑ALU数据总线16
7、位地址总线20位数据总线20位段寄存器执行单元EU总线接口单元BIU8088总线MOVAX,3102HCS段中……31H02HB8H…………内存指令队列B8H02H31H……BIUEUAX31H02H指令操作例MOVAX,3102H执行后,(AH)=31H,(AL)=02H立即数操作码低8位高8位存储器MOV操作码02H31HAHAL代码段代码段立即寻址指令在存储器中的存放形式AX2直接寻址指令中直接给出操作数的16位偏移地址偏移地址也称为有效地址(EA,EffectiveAddress)默认的段寄存器为DS,但也可以显式地指定其他段寄存器——称为段超越前缀偏移地
8、址也可用符
此文档下载收益归作者所有