- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                第3章 Pentium的指令系统  本章要点 Pentium寻址方式和指令系统: 汇编语言的寻址方式 传送指令、算术运算指令、逻辑运算指令和移位指令的用法、串操作指令、控制转移指令 汇编语言源程序的规范格式 伪指令及其使用  第3章  Pentium的指令系统 3.1 Pentium的寻址方式 3.2 Pentium的指令系统 3.3 汇编语言中的标记、表达式和伪指令 3.1 Pentium的寻址方式 汇编语言指令要解决的两个问题:  要指出进行什么操作——操作符; 要指出操作数和操作结果放在何处——寻址方式。  3.1 Pentium的寻址方式 立即数寻址 寄存器寻址 存储器寻址 输入/输出端口寻址 1、立即数寻址  操作数就在指令中提供,叫立即数寻址方式。   比如: 			MOV	AL,80H                    MOV	AX,1090H		  2、寄存器寻址  操作数放在寄存器中,指令中给出寄存器名   ——寄存器寻址方式。 比如: 		INC	CX	 		ROL	AH,1           MOV ECX,EAX	 3、存储器寻址  数据在存储器中,偏移地址(有效地址EA)由指令给出——存储器寻址。 EA=基址+变址x比例因子+位移量 寻址计算方法 存储器寻址 (1) 直接寻址方式 	  如:INC WORD PTR[500H]		 (2) 寄存器间接寻址方式 	  如:MOV[ECX],EDX 任何32位通用寄存器(BX、BP、SI、DI) SP、ESP、BP、EBP(BP)默认段为SS,其他寄存器默认段为DS (3) 寄存器相对寻址方式     如:MOV ECX,[EAX+24] 存储器寻址 (4) 基址变址寻址方式 	  如:MOV EAX,[ESI][EBX]     (5) 相对基址变址寻址方式 	  如:ADD  EDX,[ESI][EBP+100H] 		 存储器寻址 (6) 相对的带比例因子的变址寻址方式 	  如:IMUL	EBX,[ESI*4+7] (7) 基址加带比例因子的变址寻址方式 	  如:MOV  ECX,[EDI*8][EAX] (8) 相对的基址加带比例因子的变址寻址方式 	  如:MOV  EAX,[EDI*4][EBP+80]	 4、输入/输出端口寻址 I/O直接寻址 I/O端口地址直接在指令中提供     例:IN AL,82H             OUT 80H,AX I/O间接寻址 在DX寄存器中设置好I/O端口地址    例:IN AL,DX            OUT DX,AX    3.2 Pentium的指令系统  传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 调用/转移/循环控制/中断指令 标志操作和处理器控制指令 条件测试和字节设置指令 位处理指令 系统管理指令 支持高级语言指令 1. 传送指令 通用传送指令 : MOV MOVZX MOVSX 堆栈操作指令 : PUSH POP PUSHA POPA PUSHAD POPAD 交换指令 : XCHG BSWAP 输入/输出指令 : IN OUT  换码指令 : XLAT XLATB  地址传送指令 : LEA LDS LES LSS LFS LGS 标志传送指令 : LAHF SAHF PUSHF POPF PUSHFD POPFD   1. 传送指令 输入指令IN 长格式:IN? AL,PORT(字节)                IN? AX,PORT(字) 执行的操作:(AL)←(PORT)(字节) ????????????          (AX)←(PORT+1,PORT)(字) 短格式:IN? AL,DX (字节) ?????????     ?IN? AX,DX(字) 执行的操作:AL←((DX))(字节) ??????????       AX←((DX)+1,DX)(字) 输入/输出指令IN/OUT 8086支持64K个I/O端口,地址范围0000 ~FFFFH。 前256个端口(0 ~FFH)可以直接在指令中指定,即长格式(直接寻址)。 当端口号=256时,只能使用短格式(间接寻址)。   1. 传送指令 MOV CX,[1000H] MOV WORD PTR[SI],6070H PUSH AX PUSH [BX+DI] XCHG BX,CX XCHG [2530H],AX IN AL,60H OUT 61H,AX IN AL,DX OUT DX,AX 1. 传送指令 XLAT LEA AX,[3820H] LDS DI,[2530H] LES DX,[1000H]     举例: 堆栈存放了字符串的首地址,SUB子程序中在调用显示字符串子程序DI
                 原创力文档
原创力文档 
                        

文档评论(0)