微机原理第3章 8086指系统.ppt





《微机原理第3章 8086指系统.ppt》由会员分享,可在线阅读,更多相关《微机原理第3章 8086指系统.ppt(175页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理及应用微机原理及应用微机原理及应用微机原理及应用第第3 3章章 指令系统指令系统2023/4/21第第 3 3 章章 指令系统指令系统主要内容主要内容学习目的学习目的知识点知识点重点难点重点难点28086/80888086/8088指令系统指令系统基本数据类型;基本数据类型;主要内容主要内容计算机指令格式;计算机指令格式;213480868086寻址方式;寻址方式;31掌握指令的寻址方式;2了解指令的机器语言格式;3掌握8086/8088的指令系统;学习目的学习目的4n3.1 80863.1 8086数据类型和指令码格式数据类型和指令码格式n3.2 80863.2 8086操作数寻址方
2、式操作数寻址方式n3.3 3.3 程序转移地址的寻址方式程序转移地址的寻址方式n3.4 80863.4 8086指令系统指令系统n3.5 3.5 数据传送指令数据传送指令n3.6 3.6 算术运算指令算术运算指令n3.7 3.7 逻辑运算和移位指令逻辑运算和移位指令n3.8 3.8 串处理指令串处理指令n3.9 3.9 程序转移指令程序转移指令n3.10 3.10 处理器控制指令处理器控制指令知识点知识点51指令的寻址方式;2指令系统;重点重点6十进制调整指令;串操作指令;难点难点73.1 数据类型数据类型nIA32结构的基本数据类型结构的基本数据类型q字节:8位q字:16位,2个字节q双字:
3、32位,4个字节q四字:64位,8个字节(80486CPU引入)q双四字:128位,16个字节(Pentium III)n数据在内存中的字节顺序数据在内存中的字节顺序q80X86多字节数据的存放原则是低位字节在低端地址,高位字节在高端地址。83.1 数据类型数据类型n字、双字、四字和双四字的对齐字、双字、四字和双四字的对齐q字、双字、四字和双四字不需要对齐至自然边界n自然边界:偶数编号的地址自然边界:偶数编号的地址n对其的理由:处理器只需一次存储器访问,否则需要访问对其的理由:处理器只需一次存储器访问,否则需要访问两次。两次。例:例:1234H存在存在1000H单元:数据在内存中的顺序为:单元
4、:数据在内存中的顺序为:34H12H1000H单元单元1001H单元单元93.1 数据类型数据类型n数字数据类型数字数据类型q整数n无符号整数无符号整数n带符号整数带符号整数q浮点数据类型n单精度浮点数单精度浮点数n双精度浮点数双精度浮点数q指针数据类型:指针是内存单元地址n近指针:近指针:32位位n远指针:远指针:64位位103.1 数据类型数据类型n位字段数据类型位字段数据类型q一个位字段(见图3-5)是连续的位序列。它能在内存中任何字节的任一位位置开始并能包含最多至32位。n串数据类型串数据类型q串是位、字节、字或双字的连续序列。位串能从任一字节的任一位开始并能包含多至232-1位。字节
5、串能包含字节、字或双字。113.2 8086指令系统指令系统n指令及指令系统指令及指令系统q指令控制计算机完成指定操作的命令q机器指令指令的二进制代码形式。例如:CD21Hq汇编指令助记符形式的指令。例如:INT 21Hq指令系统CPU所有指令及其使用规则的集合123.2 8086指令系统指令系统n8088/8086指令系统:q指令向后兼容(指令向后兼容(x86系列)系列)q应用广泛应用广泛,资料易于寻找资料易于寻找133.2 8086指令系统指令系统(1)数据传送类;)数据传送类;(2)算术运算类;)算术运算类;(3)逻辑运算和移位;)逻辑运算和移位;(4)串操作;)串操作;(5)控制转移类
6、;)控制转移类;(6)处理器控制。)处理器控制。14部分部分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
7、,INT/IRET153.2.1 指令的基本构成指令的基本构成说明说明要执行要执行的是什么操的是什么操作作操作对象,可操作对象,可以有以有0个、个、1个个或或2个个目的目的源源Label:标号16举例举例ADD AX,SI+6MOV AX,BX操作码 操作数INC BXHLTLoading:173.2.2 8086 CPU指令格式指令格式汇编指令汇编指令:用助记符表示机器指令的操作码和操:用助记符表示机器指令的操作码和操作数,例如上面指令的汇编指令是作数,例如上面指令的汇编指令是 MOV AL,62HMOV AL,62H机器指令机器指令:计算机能识别和执行的指令的二进制:计算机能识别和执行的指
8、令的二进制代码。如:代码。如:10110000011000101011000001100010183.2.2 8086 CPU指令格式指令格式n8086 CPU指令格式指令格式立即数立即数位移量位移量寄存器寄存器方式方式操作码操作码1-21-2字字节节低低字字节节1-21-2字字节节1 1字节字节(寻址方式)(寻址方式)1 1字节字节高高字字节节高高字字节节低低字字节节r/mr/m3 3位位regreg3 3位位modmod2 2位位opcodeopcode193.2.3 8086的操作数的操作数1 1、立即数、立即数8位位16位位无符号数无符号数00H-FFH(0-255)0000H-FFF
9、FH(0-65535)带符号数带符号数80H-7FH(-128127)8000H-7FFFH(-3276832767)MOV AX,0FA00H;正确正确MOV 8000H,DX;错误错误203.2.3 8086的操作数的操作数2 2、寄存器操作数、寄存器操作数213.2.3 8086的操作数的操作数只能存放字操作数只能存放字操作数段寄存器存放段寄存器存放当前操作数的当前操作数的段基地址段基地址不允许将立即数传送到段寄存器不允许将立即数传送到段寄存器SIDIBPSPCSDSESSS223.2.3 8086的操作数的操作数3 3、存储器操作数、存储器操作数存储器操作数存储器操作数字节字节字字双字
10、双字124类型类型存储单元个数存储单元个数一般一般不允许不允许两个两个操作数同时为存储器操作数操作数同时为存储器操作数MOV AX,BX233.3 8086操作数的寻址方式操作数的寻址方式n寻址方式寻找操作数的方法q 寻找操作数的地址(一般指源操寻找操作数的地址(一般指源操作数)作数)q 寻找要执行的下一条指令的地址寻找要执行的下一条指令的地址243.3 8086操作数的寻址方式操作数的寻址方式n计算机中操作数数按存放的方法分为:计算机中操作数数按存放的方法分为:q立即数(指令中)q寄存器数q存储器数qI/O端口操作数操作数寻址方式寻址方式立即数立即数立即数寻址立即数寻址寄存器数寄存器数寄存器
11、寻址寄存器寻址相对基址变址寻址相对基址变址寻址存储器数存储器数直接寻址直接寻址寄存器间接寻址寄存器间接寻址基址变址寻址基址变址寻址变址寻址变址寻址端口寻址端口寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址253.3.1 立即数寻址立即数寻址操作数操作数(为一常数为一常数)直接直接由指令给出由指令给出:例例:MOV AL,80 H MOV AX,1090 H MOV CX,100错误例:错误例:MOV 2A00H,AX ;1090H AH AL263.3.2 寄存器寻址寄存器寻址操作数在寄存器中。操作数在寄存器中。MOV AH,BL MOV AX,BX MOV CX,AX错误例:错误例:MOV
12、 AX,BL ;字长不同字长不同 MOV ES:AX,DX ;寄存器与段无关寄存器与段无关273.3.3 存储器操作数寻址方式存储器操作数寻址方式1 1、规定段寄存器规定段寄存器283.3.3 存储器操作数寻址方式存储器操作数寻址方式任何内存任何内存实际地址实际地址都由两部分组成:都由两部分组成:实际地址实际地址段基址段内偏移地址(此单元与段基段基址段内偏移地址(此单元与段基址的距离)址的距离)段内的段内的偏移地址偏移地址又称为又称为有效地址(有效地址(EA):8086:EA基地址寄存器内容索引位移量基地址寄存器内容索引位移量2 2、规定偏移量、规定偏移量293.3.3 存储器操作数寻址方式存
13、储器操作数寻址方式BX SIBP DIEA=8 或 16 位移量+EA=8 或16 位移量BX BP SI DI +8086CPU,有效地址有效地址EA计算计算:303.3.3 存储器操作数寻址方式存储器操作数寻址方式 操作数在存储器中,其地址由指令提供操作数在存储器中,其地址由指令提供。例例:MOV AXMOV AX,1070 H 1070 H DS=2000 H DS=2000 H,物理地址为:,物理地址为:PA=20000H+1070H=21070 HPA=20000H+1070H=21070 H A1H70H10H.代码段代码段 20 H 30 H 数据段数据段2000:1070200
14、0:10712000:1072AH ALAX直接寻址直接寻址1313.3.3 存储器操作数寻址方式存储器操作数寻址方式操作数的偏移地址(有效地址EA)放在寄存器中只有SI、DI、BX和BP可作间址寄存器例:例:MOV AX,BX MOV CL,CS:DI错误例错误例:MOV AX,DX MOV CL,AX寄存器间接寻址寄存器间接寻址 2323.3.3 存储器操作数寻址方式存储器操作数寻址方式例:例:MOV AL,BX+5;若若DS=6000H,BX=2000H,寄存器相对寻址寄存器相对寻址3333.3.3 存储器操作数寻址方式存储器操作数寻址方式nEA=间址寄存器的内容加上一个间址寄存器的内容
15、加上一个8/16位的位移位的位移量量EA=(BX)(BP)(SI)(DI)+8位16位位移量 343.3.3 存储器操作数寻址方式存储器操作数寻址方式例:例:MOV AXMOV AX,BX+SIBX+SIBX=2000H,SI=0006HBX=2000H,SI=0006H基址变址寻址方式基址变址寻址方式4353.3.3 存储器操作数寻址方式存储器操作数寻址方式nEA=一个基址寄存器的内容一个基址寄存器的内容+一个变址寄存器一个变址寄存器EA=(BX)(BP)+(SI)(DI)同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现363.3.3 存储器操作数寻址方式存储器操作数寻址方式例:例:
16、MOV AH,BX+DI+1234H相对基址变址寻址相对基址变址寻址5373.3.3 存储器操作数寻址方式存储器操作数寻址方式nEA=一个基址寄存器的内容一个基址寄存器的内容+一个变址寄存器一个变址寄存器+一个相对位移量一个相对位移量EA=(BX)(BP)+(SI)(DI)+8位16位位移量 383.3.4 I/O3.3.4 I/O端口寻址端口寻址I/OI/O端口寻址(当端口寻址(当I/OI/O端口按独立的端口按独立的I/OI/O空间编址时)空间编址时)1 1、直接端口寻址:、直接端口寻址:指令直接提供8位端口地址。例例:IN AL,63H;(AL)(63H)IN AL,63H;(AL)(63
17、H)从从I/OI/O地址地址号为号为6363H H的端口中读取数据送到的端口中读取数据送到ALAL中中 393.3.4 I/O3.3.4 I/O端口寻址端口寻址例例:IN AL,DX;(AL)(DX)OUT DX,AL;将AL中的内容输出到地址由DX寄存器内容所指定的端口中2 2、间接端口寻址方式:间接端口寻址方式:由DX寄存器给出16位端口地址。403.4 IA-32通用指令通用指令8086汇编指令系统,分为汇编指令系统,分为6类:类:n数据传送指令数据传送指令n算术运算指令算术运算指令n逻辑运算、移位逻辑运算、移位n串操作指令串操作指令n控制转移指令控制转移指令n处理器控制指令处理器控制指
18、令413.4.1 3.4.1 数据传送指令数据传送指令 80868086指令系统指令系统操作数符号表示操作数符号表示 DST:目的操作数 SRC:源操作数 TARGET:循环、转移和调用指令操作数 reg:寄存器操作数,字节或字 reg8:寄存器操作数,字节 reg16:寄存器操作数,字 mem:存储器操作数,字节或字 mem8:字节型存储器操作数 mem16:字型存储器操作数 mem32:双字型存储器操作数 acc:累加器AL或AX423.4.1 数据传送指令数据传送指令1 1、MOV MOV destdest,srcsrc;destsrcdestsrc 传送的是字节还是字取决于指令中涉及的
19、寄传送的是字节还是字取决于指令中涉及的寄存器是存器是8 8位还是位还是1616位。位。具体来说可实现:具体来说可实现:MOV mem/reg1MOV mem/reg1,mem/reg2mem/reg2 指令中两操作数中至少有一个为寄存器指令中两操作数中至少有一个为寄存器 例例:MOV:MOVCLCL,DLDL MOV MOVAXAX,BXBXMOVMOVSISI,CXCXMOVMOVCLCL,BX+5BX+5433.4.1 数据传送指令数据传送指令 MOV MOV regreg,data ;data ;立即数送寄存器 MOV MOV memmem,data ;data ;立即数送存储单元 MO
20、V accMOV acc,memmem ;存储单元送累加器 MOV MOV memmem,acc ;acc ;累加器送存储单元 MOV MOV segregsegreg,mem/regmem/reg;存储单元/寄存器送 段寄存器 MOV MOV mem/regmem/reg,segregsegreg;段寄存器送存储单 元/寄存器443.4.1 数据传送指令数据传送指令nMOV指令使用规则:指令使用规则:qIP不能作目的寄存器q不允许memmemq不允许segregsegregq立即数不允许作为目的操作数q不允许segreg立即数q源操作数与目的操作数类型要一致453.4.1 数据传送指令数据传
21、送指令n几个不能传送的解决办法:用几个不能传送的解决办法:用AX作桥梁作桥梁q存储器存储器:MOV AXMOV AX,MEM1MEM1 MOV MEM2 MOV MEM2,AXAXq段寄存器段寄存器:MOV AXMOV AX,DSDS MOV ES MOV ES,AXAXq段寄存器立即数:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX463.4.1 数据传送指令数据传送指令2 2、堆栈操作指令、堆栈操作指令什么是堆栈?按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位以字为单位进行压入弹出操作。为什么要设置堆栈?为什么要按“后进先出”方式工作?参见下
22、图47主程序IP继续执行主程序执行子程序转子程序压栈弹出返回主程序主程序IPIP(下)继续执行主程序转子程序1返回主程序IP执行子程序 2返回子程序1IP(下)执行子程序1继续执行子程序1(a)(b)子程序调用示意图(a)主程序调子程序;(b)子程序嵌套示意图压栈弹出IP(下)483.4.1 数据传送指令数据传送指令n规定由规定由SSSS指示堆栈段的段基址,堆栈指针指示堆栈段的段基址,堆栈指针SPSP始始终指向堆栈的顶部,终指向堆栈的顶部,SPSP的初值规定了所用堆栈的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。区的大小。堆栈的最高地址叫栈底。SPSS堆栈段堆栈段进栈方向退栈方向栈底栈底
23、栈顶栈顶49 2.12.1压栈指令压栈指令 PUSH src ;src为为16位操作数位操作数 例:例:PUSHAX;将;将AX内容压栈内容压栈 执行操作:(执行操作:(SP)-1高字节高字节AH (SP)-2低字节低字节AL (SP)(SP)-23.4.1 数据传送指令数据传送指令50设(AX)=1020H,执行示意图如图低地址存储区(SS段)执行前(AX)=1020(SP)存储区(SS段)进栈方向执行后2010(AL)(AH)2-8PUSH AX指令执行示意图指令执行示意图(SP)-2(SP)高地址低地址高地址(SP)-13.4.1 数据传送指令数据传送指令513.4.1 数据传送指令数据
24、传送指令压栈指令的格式为:压栈指令的格式为:PUSHPUSH regreg PUSH PUSH mem/regmem/reg PUSH PUSH segregsegreg例如:例如:PUSH AXPUSH AX PUSH BX PUSH BX PUSH DS PUSH DS 注意进栈方向是注意进栈方向是高地址高地址向向低地址低地址发展。发展。523.4.1 数据传送指令数据传送指令2.2 2.2 弹出指令弹出指令 POPPOPdestdest例:例:POPPOPBXBX;将栈顶内容弹至;将栈顶内容弹至BXBX 执行操作:(执行操作:(BLBL)(SPSP)(BHBH)(SPSP)+1+1 (S
25、PSP)(SPSP)+2+2533.4.1 数据传送指令数据传送指令低地址存储区(SS段)出栈方向执行前2010(SP)存储区(SS段)执行后(BX)=1020(SP)BX2010高地址低地址高地址POP BX指令执行示意图指令执行示意图543.4.1 数据传送指令数据传送指令堆栈指令使用时应注意几点:堆栈操作总是按堆栈操作总是按字字进行进行不能从栈顶弹出一个字给不能从栈顶弹出一个字给CSCS堆栈指针为堆栈指针为SS:SPSS:SP,SPSP永远指向栈顶永远指向栈顶SPSP自动进行增减量(自动进行增减量(-2-2,+2+2)553.4.1 数据传送指令数据传送指令3 3、交换指令、交换指令XC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理第3章 8086指系统 微机 原理 8086 系统

限制150内