微机课件hsf微机第2章

上传人:E**** 文档编号:91041223 上传时间:2019-06-21 格式:PPT 页数:130 大小:1.34MB
返回 下载 相关 举报
微机课件hsf微机第2章_第1页
第1页 / 共130页
微机课件hsf微机第2章_第2页
第2页 / 共130页
微机课件hsf微机第2章_第3页
第3页 / 共130页
微机课件hsf微机第2章_第4页
第4页 / 共130页
微机课件hsf微机第2章_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《微机课件hsf微机第2章》由会员分享,可在线阅读,更多相关《微机课件hsf微机第2章(130页珍藏版)》请在金锄头文库上搜索。

1、第2章 8088/8086指令系统,主要内容 一、寻址方式 6大类寻址方式 二、8088/8086指令系统 6大组指令(传送、算术运算、逻辑运算、串操作、转移、控制等),2.1 8086/8088的寻址方式,一、指令 (Instruction):,指令通常以二进制代码的形式提供给计算机,这种指令称为机器指令。,指示计算机执行什么操作的命令。,二、指令包含的基本内容,1. 做什么操作,由指令的操作码字段规定。,2. 操作数的来源,操作数来自于什么地方。由指令的操作数字段规定。,操作数的来源可以是:,三、寻址方式,地址:数据和指令存放的位置。,数据存放的位置可以是寄存器、存储器或I/O端口,指令存

2、放的位置只能是存储器中的代码段。,寻址方式:寻找操作数(操作数地址)的方式,2.1.1 立即数寻址,操作数作为立即数就在指令中给出。,例:MOV AX,1234H,操作:把立即数1234H送寄存器AX中。,机器码:B8 34 12 (低字节在地址小的单元),AH,AL,AX,.,B8,34,12,.,代码段 (存储器中),操作码(B8),操作数(1234H) 立即数,一条指令,指令执行后,AX=1234H (原有的内容被新的内容替换)。,MOV AX,1234H,2.1.2 寄存器寻址,操作数在某个寄存器中。,例:INC BL,操作:使BL中内容加1后送回,若BL=00H,则执行后BL=01H

3、,BL=FFH,则执行后BL=00H (自动溢出),01,又如:MOV AX,BX MOV AL,BL,2.1.3 直接寻址,指令代码中给出操作数的偏移地址,即有效地址(EA)。它是一个16位的位移量数据,与操作码一起放在代码段中。在默认方式下,操作数存放在数据段(DS)。,例:MOV AX,1234H,机器码:A1 34 12,操作:把偏移量1234H作为EA,在数据段中找到相应的字单元,再将字单元的内容送AX。,本例执行完后,AX=3050H,EA=1234H,设DS=3000H,DS10H,=30000H,= 3000H10H,MOV AX, 1234H,注:,2.1.4 寄存器间接寻址

4、 操作数在存储器单元中, 操作数的偏移地址在指令中给出的16位寄存器(间址寄存器)中。 PA = ( DS )* 10H + ( BX ) 或 = ( DS )* 10H+ ( SI ) 或 = ( DS )* 10H + ( DI ) 或 = ( SS )* 10H + ( BP ),必须是SI、DI BX 、BP,寄存器间接寻址过程示意图,MOV AX,DI 设 (DS)=2000H, (DI)=5000H,2.1.5 变址寻址(寄存器相对寻址) 变址寻址和寄存器间接寻址类似,只是操作数的有效地址EA等于指令所指示的寄存器中的内容再加上指令中给定的816位的位移量。,变址寻址过程示意图,M

5、OV AX,DATABX 设(DS)=6000H, (BX)=1000H, DATA=08H,其它等效写法: MOV AX, BX+DATA MOV AX, DATA +BX,这里DATA是以符号表示的位移量。,2.1.6 基址加变址寻址 操作数的有效地址是一个基址寄存器( BX或BP)和一个变址寄存器(SI 或DI)的内容之和。 例:MOV AX , BXDI 其它等效写法: MOV AX , BX+DI,注意:指令中不允许同时出现两个基址寄存器或个变址寄存器。例如,以下指令是非法的: MOV AX,BXBP MOV AX,SIDI,基址加变址寻址过程示意图,MOV AX,BXDI 设(DS

6、) = 2000H,(BX) = 0256H,(DI) =6694H, (268EAH)=55H,(268EBH)=66H,Memory,268EAH,2.1.7 基址变址相对寻址 操作数的有效地址是一个基址寄存器和一个变址寄存器的内容,再加上指令中指定的8位或16位位移量之和。 PA= (DS)*10H+(BX)+ +位移量 或 PA= (SS)*10H + (BP)+ + 位移量 例:MOV AX,4BXDI 其它等效写法: MOV AX ,4BX+DI MOV AX ,BX+DI+4,(SI) (DI),(SI) (DI),MOV AX,4BXDI ( 设DS原值为2000H, BX原值

7、为1500H,DI原值为0300H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,21804H,基址变址相对寻址过程示意图,BX: 0001 0101 0000 0000 DI: 0000 0011 0000 0000 0000 0100 +),指出下列指令中源操作数的寻址方式,并求出其对应存储器操作数的物理地址。假设: (DS)=3000H,(ES)=2000H,(SS)=2500H,(SI)=0900H, (BX)=0100H,(BP)=0008H,数据变量DATA的偏移地址为0050H。 (1)MOV AX,0ABH (2)MOV AX,100H (3)MOV BX

8、,SI (4)MOV AL,DATABX (5)MOV CL,BXSI (6)MOV DATASI,BX (7)MOV BX,BPSI,2.2 8088/8086指令系统,8088/8086指令按功能分为六大类。,通用传送指令,基本传送指令MOV 堆栈操作指令PUSH、POP 数据交换指令XCHG 查表指令XLAT,地址传送指令LEA、LDS、LES 标志传送指令LAHF、SAHF、PUSHF、POPF 输入输出指令IN、OUT,2.2.1 数据传送指令,数据传送指令能够完成下列操作数的传送任务。,立即数,存储器,段寄存器 CS,DS,ES,SS,通用寄存器组 AX,BX,CX,DX BP,S

9、P,SI,DI,(CS不能作目的),1. 通用数据传送指令,(1) MOV d, s,功能:将源操作数s复制到目标操作数d,源保持不变,目标被源代替。,例如:MOV AL , BL MOV DS , AX MOV DI ,AX,注: d, s不能同时为存储器,错误指令:MOV BX,SI , d不能为立即数,错误指令:MOV 1234H,AX , d, s必须同时为字节型或字型,错误指令:MOV AX,BL ,IP和段寄存器CS不能作为目的操作数 错误指令:MOV CS,AX ,MOV d, s,例2-1内存中的情况如图所示。写出指令执行后,各寄存器中的内容为多少? MOV AX,1000H

10、MOV DS,AX MOV AX,0 MOV BX,2 MOV CX,1 MOV AL,2,例2-2 设(DS)=3000H,偏移地址为0100H,要将该存储单元内的一个字节数据传送到偏移地址为2000H的存储单元中。利用寄存器间接寻址来寻找操作数时的程序段。,1. 在寄存器间接寻址和寄存器相对寻址方式中,若操作数的基地址以BX寻址,则段地址应采用段寄存器是 。 2. 存储器操作数寻址方式有哪几种? 3. 在指令MOV AX,2000H中,源操作数的物理地址为( ) A.(ES)16+2000H B. (DS)16+2000H C.(SS)16+2000H,4. 设有关寄存器及存储单元的内容如

11、下: (DS)=4000H,(BX)=0200H,(AX)=1200H,(SI)=0002H,(40200H)=12H,(40201H)=34H,(40202H)=56H,(40203H)=78H,(41200H)=2AH,(41201H)=4CH,(41202H)=0B7H,(41203H)=65H 试说明单独执行下列各条指令后,相关寄存器或存储单元内容的变化。 (1)MOV AX,1800H (2)MOV DX,BX (3)MOV BX,1200H (4)MOV AX,1000HBX (5)MOV BXSI,AL (6)MOV CL,1000HBXSI,(2)堆 栈 操作指令,堆栈以“先进

12、后出”原则组织起来的连续的存储空间。 堆栈操作以字为单位。固定以SS:SP为指针指示栈顶,出、入堆栈的操作均针对栈顶单元进行。80X86的堆栈生长方向为“向下增长” 。,入栈,指针减 出栈,指针加,压栈指令PUSH PUSH s;SP2 SP, 源操作数压入堆栈保存。,出栈指令POP POP d;SP所指堆栈的内容送目的地址d。 SP+2 SP,例:PUSH BX;把BX内容压入堆栈,设 SS=2000H,SP=0040H,BX=2340H,则执行后,2340H被保存到堆栈,同时SP=003EH,BX内容不变,2003FH,压栈操作示例,出栈操作示例,设有SS=3200H,SP=07FEH,S

13、P=SP+1 32800H,POP BX,SP=SP+1 327FFH,SP=07FEH 327FEH,SP0800H,BX1122H,注:s和d只能为16位寄存器或存储器,PUSH/POP指令执行过程 假定将10000H1000FH这段空间作堆栈用。说明下列程序段的功能。 MOV AX,1234H PUSH AX MOV BX,5678H PUSH BX POP AX POP BX,(3) 交换指令XCHG,功能:将源操作数、目的操作数的内容互相交换,指令执 行后源、目的操作数同时被改变 指令形式:XCHG OPRD1 , OPRD2 ; (OPRD1 )(OPRD2) 不影响标志位,。,交

14、换指令对操作数有如下要求: 两个操作数字长必须相同,可以是字节交换,也可以是字交换,可以在寄存器与寄存器、寄存器与存储器之间交换,但是不能在存储单元与存储单元器之间交换。,例如: XCHG AL,CL XCHG AX,BX XCHG DI,DX,寄存器,存储器,CS、IP不能作为操作数。,2. 累加器专用传送指令,功能:从指定端口输入数据至累加器Acc (AL或AX),IN Acc, 8位I/O地址,(1)输入/输出指令(IN/OUT),例如: IN AL,80H IN AX,20H,OUT 8位I/O地址, Acc,功能:将累加器的数据输出至指定端口。,例如:OUT 20H,AL OUT 8

15、0H,AX,IN Acc, DX,功能:从DX指示的端口输入数据至累加器Acc , DX=065535,例如: MOV DX,300H IN AL,DX,OUT DX,Acc,功能:将累加器的数据输出到DX所指示的端口。,注: 16位端口地址必须送入DX中。, 若采用AX,则表示16位数据传送(输入/输出),例如: MOV DX,800H OUT DX,AX,(2)查表转换指令XLAT,指令功能:将AL中的值(码)转换为内存表格中 的某一值后,再送回AL中。 指令形式: XLAT ;(AL)(BX)+ (AL) 或 XLAT 转换表,注:a. 表首相对于段起始地址的偏移量预先送入BX中;,b. 待查找的表内某单元相对于表首的偏移量送入AL中;,c. 以EA=BX+AL在表中(数据段)查找,将查得的数据再送回AL中。,十进制数的七段显示码,【例】已知十进制数09的七段LED显示码对照表如下表所示。试用XLAT指令求数字6的七段显示码。,TABLE DB 40H , 79H , 24H , 30H , 19H DB 12H , 02H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号