微型计算机技术与应用第3章Pentium的指令系统课件.ppt
《微型计算机技术与应用第3章Pentium的指令系统课件.ppt》由会员分享,可在线阅读,更多相关《微型计算机技术与应用第3章Pentium的指令系统课件.ppt(123页珍藏版)》请在三一办公上搜索。
1、第3章 Pentium的 指令系统,博学 审问 慎思 明辨 笃行,2,2023/3/9,第3章 Pentium的指令系统,3.1 Pentium的寻址方式 3.2 Pentium的指令系统 3.3 汇编语言中的标记、表达式和伪指令,教学重点:寻址方式;传送指令中的堆栈指令、交换指令、换码指令、输入/输出指令;算术运算指令中的比较指令;串操作指令;转移指令;中断调用示例;规范程序;伪指令DB、DW、PTR。,第3章 Pentium的指令系统,3,2023/3/9,指令的基本格式:MOV AX,1235H(双操作数)INC CX(单操作数)寻址方式:说明操作数所在地址(来源)的方法,操作码,操作数
2、或操作数地址,指令的两个问题:指出进行什么操作 涉及的操作数和操作结果放在何处,第3章 Pentium的指令系统,3.1 Pentium的寻址方式,4,2023/3/9,操作数直接存放在指令中,紧跟在操作码之后,MOVAL,80H MOVAX,1090H MOVEAX,10002000H,(Immediate addressing),作为指令的一部分,直接存放在代码段里,这种操作数称为立即数。立即数可以是位或16、32位的。高位字节放在高地址,低位字节放在低地址。使用场合:经常用于给寄存器赋初值。注意:只能用于源操作数字段,不能用于目的操作数字段。,第3章 Pentium的指令系统,3.1.1
3、 立即数寻址,5,2023/3/9,例:MOV AL,05H 指令执行后:(AL)=05H,例:MOV AX,3064H 指令执行后:(AX)=3064H,立即寻址方式,机器代码:1011 0000 0000 0101操作码:B0立即数:05H,机器代码:1011 1000 0110 0100 0011 0000 操作码:B8立即数:3064H,第3章 Pentium的指令系统,例:,6,2023/3/9,7,2023/3/9,8,2023/3/9,(Register addressing)INCCX ROLAH,1 MOV ECX,EAX,操作数在寄存器中,指令只须指定寄存器号。,这种寻址方
4、式因为操作数在寄存器中,操作在CPU内部,不执行总线周期,不需要访问存储器,因此运算速度较高。既可用于源操作数,也可用于目的操作数。,32位通用寄存器:EAX EBX ECX EDX 16位通用寄存器:AX BX CX DX 8位通用寄存器:AH AL BH BL,第3章 Pentium的指令系统,3.1.2 寄存器寻址,9,2023/3/9,指令执行前:(AX)3064(SS)1234 MOV SS,AX 指令执行后:(AX)保持不变。(SS)3064H,指令执行前:,指令执行后:,SS,AX,3064H,3064H,1234H,3064H,寄存器寻址方式,第3章 Pentium的指令系统,
5、例:,10,2023/3/9,第3章 Pentium的指令系统,11,2023/3/9,第3章 Pentium的指令系统,12,2023/3/9,I/O直接寻址:地址在指令中直接提供(0255)INAL,82H OUT80H,AX INEAX,80HI/O间接寻址:利用DX设置端口地址(065535)MOV DX,80H INAL,DX OUTDX,AX OUTDX,EAX,第3章 Pentium的指令系统,3.1.3 输入/输出端口寻址,13,2023/3/9,3.1.4 存储器寻址,操作数在主内存中,通过存储器地址指示,1.直接寻址(Direct addressing)MOV AX,107
6、0HMOV EAX,ES:1000H,注意:(1)直接寻址方式适用于处理单个变量。(2)直接寻址方式隐含的段寄存器是 DS,8086/8088允许段跨越,即允许使用 CS SS ES作为段寄存器,这时,必须在指令中特别标明。(3)IBM PC机中规定双操作数指令必须有一个操作数使用寄存器方式,这就是常常先要把一个变量送到寄存器去的原因。,第3章 Pentium的指令系统,14,2023/3/9,则:(AX)=3050H,直接寻址方式,MOV AX,3100H(DS)=6000H(63100H)=3050H,必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。,第3章 Pentium的指
7、令系统,例:,15,2023/3/9,第3章 Pentium的指令系统,16,2023/3/9,第3章 Pentium的指令系统,17,2023/3/9,2.寄存器间接寻址(Register indirect addressing)操作数的有效地址存放在寄存器中(寄存器内容偏移地址)MOVAX,BX MOV EAX,EBX,注:若选择BP、SP、ESP、EBP寄存器作为间接寻址 操作数在堆栈段区域中,用SS寄存器的内容作为段地址。在指令中可以指定段跨越前缀来取得其他段中的数据。例:MOV ES:DI,AX MOV DX,DS:BP,操作数在存储器存储单元中,第3章 Pentium的指令系统,1
8、8,2023/3/9,MOV BX,DI(DS)=6000H(DI)=2000H PA=62000H(62000H)=50A0H(BX)=50A0H,寄存器间接寻址方式 MOV BX,DI,第3章 Pentium的指令系统,例:,19,2023/3/9,MOV BP,AX执行前:(SS)=1000H,(BP)=3000H,(AX)=1234H执行后:PA=13000H(13000H)=1234H,寄存器间接寻址方式 MOV BP,AX,若选择BP寄存器作为间接寻址,操作数在堆栈段区域中,用SS寄存器的内容作为段地址。操作数物理地址:PA=16d(SS)+(BP),第3章 Pentium的指令系
9、统,例:,20,2023/3/9,第3章 Pentium的指令系统,21,2023/3/9,第3章 Pentium的指令系统,22,2023/3/9,3.寄存器相对寻址(Register relative addressing)操作数的有效地址是一个基址或变址寄存器的内容和指令中指定的8位或16、32位位移量之和。MOV AX,SI+100H4.基址加变址的寻址(Based indexed addressing)操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和,基址寄存器名和变址寄存器名均有指令指定。MOVAX,BX+SI MOV EDX,EBX+ESI MOVEDX,EBX ESI
10、,第3章 Pentium的指令系统,23,2023/3/9,寄存器相对寻址方式MOV AX,COUNTBP,OP,OP,40H,20H,.,.,48H,55H,.,55H,48H,存储器,操,作,码,位移量,COUNT,代,码,段,堆,栈,段,55040H,50000H,AH,AL,第3章 Pentium的指令系统,例:,MOV AX,COUNT BPMOV AX,COUNT+BPMOV AX,COUNT+BP COUNT为16位位移量。指令执行前:(SS)=5000H,(BP)=3000H,COUNT=2040H,(AX)=1234H指令执行后:EA=5040HPA=55040H(55040
11、H)=5548H(AX)=5548H,24,2023/3/9,MOV AX,BXSI或 MOV AX,BX+SI执行指令前:(DS)=3200H,(BX)=0456H,(SI)=1094H(334EAH)=4567H执行指令后:EA=14EAH PA=334EAH(AX)=4567H,基址加变址寻址方式 MOV AX,BX+SI,第3章 Pentium的指令系统,例:,25,2023/3/9,第3章 Pentium的指令系统,26,2023/3/9,第3章 Pentium的指令系统,27,2023/3/9,第3章 Pentium的指令系统,28,2023/3/9,第3章 Pentium的指令系
12、统,29,2023/3/9,5 相对的基址加变址寻址(Relative based indexed addressing)MOV AX,BP+SI+0050,操作数有效地址是一个基址寄存器和一个变址寄存器的内容和8位或16、32位位移量之和。,第3章 Pentium的指令系统,30,2023/3/9,MOV AX,MASKBXDIMOV AX,MASK BX+DIMOV AX,MASX+BX+DI执行指令前:(DS)=3000H(BX)=1346H(DI)=0500HMASK=1234H(32A7AH)=4050H执行指令后:EA=2A7AHPA=32A7AH(AX)=4050H,相对基址加变
13、址MOV AX,MASK+BX+DI,第3章 Pentium的指令系统,例:,31,2023/3/9,32,2023/3/9,33,2023/3/9,32位有效地址基址寄存器(变址寄存器*比例)位移量,其中的4个组成部分是:基址寄存器任何8个32位通用寄存器之一;变址寄存器除ESP之外的任何32位通用寄存器之一;比例可以是1248(因为操作数的长度可以是1248字节);位移量可以是816、32位值。,32位存储器寻址方式的组成公式为:,第3章 Pentium的指令系统,34,2023/3/9,设DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=
14、00001000H,EBX=00002000H。假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式,源操作数所在逻辑段。(1)MOV AL,1234H(2)MOV EDX,BX(3)MOV CL,ES:BX100H(4)MOV SI,EBX(5)MOV AH,BUFBXSI(6)MOV EAX,BP1234H,习 题,第3章 Pentium的指令系统,35,2023/3/9,3.2 Pentium的指令系统,Pentium的指令分为如下几类:传送指令;串操作指令;算术运算指令;逻辑运算和移位指令;转移和调用指令;标志操作和处理器指令;控制指令;条
15、件测试和字节设置指令;系统管理指令;支持高级语言的指令。,第3章 Pentium的指令系统,36,2023/3/9,3.2.1 传送指令,功能:负责把数据、地址或立即数在寄存器、存储单元、I/O端口 之间传送。特点:计算机最基本、最重要的一种操作,使用比例最高。种类(分七种):通用传送指令 堆栈操作指令指令 交换指令 输入/输出指令 换码指令 地址传送指令 标志传送指令,第3章 Pentium的指令系统,37,2023/3/9,通用传送指令(General Purpose Transfer),1)MOV DEST,SRC,两个操作数的数位相同,功 能:把一个字节(B)或一个字(W)、一个双字(
16、DW)操作数由源传送至目的。源操作数可以是 通用寄存器、段寄存器、立即数、内存单元;目的操作数可以是 通用寄存器、段寄存器(除CS)、内存单元,源操作数不是立即数时,两操作数之一必为寄存器。源操作数与目的操作数的类型要一致。不能用立即数、CS和IP(EIP)做目的操作数。不允许在段寄存器之间、内存单元之间直接传送数据。,第3章 Pentium的指令系统,38,2023/3/9,2)扩展传送指令 MOVZX DEST,SRC MOVSX DEST,SRC,两个操作数的数位不相同,例:MOV BL,80H MOVSX AX,BL;AX=FF80H(符号扩展)MOVZX AX,BL;AX=0080H
17、(零扩展)MOVSX EAX,BL;AX=FFFF FF80H MOVZX EAX,BL;AX=0000 0080H,目的操作数为通用寄存器(16位或32位)源操作数长度必须小于目的操作数长度,为通用寄存器或 存储器操作数(8位或16位)所有的传送操作不影响标志位,第3章 Pentium的指令系统,39,2023/3/9,符号扩展:符号扩展是指用一个操作数的符号位(即最高位)形成另一个操作数,那么所形成的后一个操作数的 各位是全0(正数)或全1(负数)。符号扩展不改变数据大小对于数据64H(表示数据100),其最高位D7为0,符号扩展后高8位都是0,成为0064H(仍表示数据100)对于数据f
18、f00H(表示有符号数256),其最高位D15为1,符号扩展后高16位都是1,成为ffffff00H(仍表示有符号数256),40,2023/3/9,2.堆栈操作指令(Stack),堆栈按照先进后出原则组织的一段内存区域特点:只有一个出入口,出入口用堆栈指针SP来表示。SP在任何时候都是指向堆栈当前的栈顶。下推式的(规定堆栈设置在堆栈段内)改变SP 的内容,随着推入堆栈内容增加,SP的值减少。,.,(SP)-2,(SP)-1,(SP),堆,栈,段,Word 1,Word 2,Word 3,Word 4,Word 5,Stack,PUSH,POP,第3章 Pentium的指令系统,41,2023
19、/3/9,存放CPU寄存器或存储器中暂时不使用的数据,使用数据时将其弹出;调用子程序,或响应中断时都要用到堆栈。调用子程序(或过程)或发生中断时要保护断点的地址,子程序或中断返回时恢复断点。,子程序:在一个实际程序中,有些操作要执行多次,把要重复执行操作编为子程序。也常把一些常用的操作编成标准化、通用化的子程序。,第3章 Pentium的指令系统,堆栈用途:,42,2023/3/9,入栈指令:PUSH src;(SP)(SP)-2/(SP)-4 出栈指令:POP dest;(SP)(SP)+2/(SP)+4,PUSH EAX PUSH CS PUSH BX+DI PUSH 0870H PUSH
20、 DWORD PTR EBX+ESI POP BX POP ES POP EAX,堆栈操作都按字、双字操作。PUSH,POP 指令的操作数可能有三种:寄存器(通用寄存器,地址指针,变址寄存器),段寄存器(CS除外,PUSH CS 合法,POP CS 非法),存储器。PUSH,POP指令应该成对使用,保持原有状态。,POP不能用立即寻址方式 POP 1234H,第3章 Pentium的指令系统,43,2023/3/9,假设(AX)=2107 H,执行 PUSH AX,(SP),低地址,高地址,(SP),07H 21H,低地址,高地址,进栈方向,*,*,*,*,PUSH AX 执行前,PUSH A
21、X 执行后,(SP)-2,第3章 Pentium的指令系统,例:,44,2023/3/9,POP BX,(SP),低地址,高地址,(SP),07H 21H,低地址,高地址,出栈方向,07H21H,(BX)2107H(SP)(SP)+2,POP BX 执行前,POP BX 执行后,*,*,*,*,第3章 Pentium的指令系统,例:,45,2023/3/9,PUSHA POPAPUSHADPOPAD,堆栈成组操作指令:,将8个16位通用寄存器的内容按AX、CX、DX、BX、SP、BP、SI、DI的次序推入推栈,SP-16,从推栈中弹出8个16位数据分别按DI、SI、BP、SP、BX、DX、CX
22、、AX的次序送入寄存器中,SP+16,将8个32位通用寄存器的内容按EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI的次序推入推栈,SP-32,从推栈中弹出8个32位数据分别按EDI、ESI、EBP、ESP、EBX、EDX、ECX、EAX的次序送入寄存器中,SP+32,第3章 Pentium的指令系统,46,2023/3/9,XCHG dest,src,3.交换指令(Exchange),功 能:一个字节、字、双字源操作数与目的操作数相交换。可以实现:寄存器之间、寄存器和存储器之间,存储器之间(两个存储单元之间)不能交换;两个操作数中必须有一个在寄存器中;段寄存器、IP、EIP不能
23、作为一个操作数;不影响标志位。,第3章 Pentium的指令系统,47,2023/3/9,处理器执行空操作该指令,需要化费时间,在主存中也要占用一个字节空间,实现短时间延时,临时占用代码空间,特殊应用:,空操作指令 NOP XCHG EAX,EAX,第3章 Pentium的指令系统,48,2023/3/9,BSWAP 32位寄存器,BSWAP EAX,EAX=67452301H,寄存器内部字节交换指令,EAX=01234567H,,操作:将32位寄存器的4个字节通过两两交换实现反序排列使数据次序按字节为单位反过来,以改变数据的存放方式。,例:,第3章 Pentium的指令系统,49,2023/
24、3/9,4./5.累加器专用传送指令(只限于使用EAX、AX或AL),1)输入/输出指令,IN ac,PORT OUT PORT,ac,两操作数分别是端口地址内容和累加器内容(AL或AX或EAX)寻址:直接寻址(8位端口地址,0255)PORT=0FFH 间接寻址(16位端口地址由DX指定,寻址64K)PORTFFH 每个端口数据长度均为8位,第3章 Pentium的指令系统,50,2023/3/9,直接的I/O指令 IN AL,50H IN AX,70H IN EAX,70H OUT 80H,AX间接的I/O指令:MOV DX,80H IN AL,DX IN AX,DX IN EAX,DX
25、OUTDX,AX OUTDX,EAX,第3章 Pentium的指令系统,51,2023/3/9,2)换码指令(Translate 字节转换指令),XLAT;(AL)(BX)+(AL)XLATB;(AL)(EBX)+(AL),功 能:将一种字节代码转换成另一种字节代码 隐含规定将代码表格的首地址存入BX/EBX中,将AL存放待查某编码在表格内的偏移量。把BX/EBX和AL的内容相加作为有效地址,并 据此读出其内存单元的内容送AL中。,第3章 Pentium的指令系统,52,2023/3/9,格雷码编码规则如下:0110001000112001013001104010015010106011007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 应用 Pentium 指令系统 课件
链接地址:https://www.31ppt.com/p-3048275.html