第3章 80x86寻址方式和指令系统1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 80x86寻址方式和指令系统1

第3章 80x86指令系统和寻址方式 3.1 寻址方式 3.2 数据传送类指令 3.3 算术运算类指令 3.4 位操作类指令 3.5 串操作类指令 3.6 控制转移类指令 3.7 处理机控制类指令 指令系统的组成:操作码、操作数 指令格式: 操作码 操作数 ….操作数 操作码:指示计算机所要执行的操作,即指示计算机“做什么”。 操作数:指令在执行过程中所需的操作数,操作数可有一、二、三个。 3.1 寻址方式 3.1.1立即寻址 3.1.2寄存器寻址 3.1.3直接寻址 3.1.4寄存器间接寻址 3.1.5寄存器相对寻址(变址)寻址 3.1.6基址变址寻址 3.1.7相对基址变址寻址 3.1.8比例变址寻址 3.1.9基址比例变址寻址 3.1.10相对基址比例变址寻址 3.1.11跨段问题 2.1.12与转移地址有关的寻址 3.1.1 立即寻址 立即寻址方式中,指令操作码和操作数都在存储器代码段中。 汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数) 功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。 图形表示: 【例】 MOV CL,5 MOV AX,‘AB’ 【例】MOV AX, 10 执行后(AX)=? 该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。 图形表示: 执行:10→AX 执行后:(AX)=000AH 注:立即数不能用于单操作数指令,也不能用于目的操作数字段。 如: INC 2002H (X) MOV 5858H,AX (X) MOV AH,‘AB’ (X) 3.1.2 寄存器寻址 寄存器寻址方式的操作数在指令指明的寄存器中。 功能:操作数直接存放在寄存器R中。 寄存器的类型:AX、BX、CX、DX、SI、DI、SP、BP 8位操作数:AL、AH、BL、BH、CL、CH、DL、CH 32位操作数:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP 【例】 下列程序执行后,(AX)=?,(BX)=? MOV AX,1234H MOV BX,5678H ADD AX,BX 该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。 图形表示: 执行:1234H→AX 5678H→BX (AX)+(BX)→AX 执行后:(AX)=68ACH,(BX)=5678H 【例】 MOV AL,AH 【例】(P36~38 ) 除以上两种寻址方式外,其他寻址方式的操 作数都在除代码段以外的存储区域中。在汇编语 言中,内存地址采用逻辑地址的形式表示: 段基址:段内偏移地址 3.1.3 直接寻址 指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址。 在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。 【例】 假设有指令:MOV BX, [1234H],在执行时,(DS)=2000H,内存单元21234H的值为5213H。问该指令执行后,BX的值是什么? 解:根据直接寻址方式的寻址规则,把该指令的具体执行过程用图来表示。 从图中,可看出执行该指令要分三部分: 由于1234H是一个直接地址,它紧跟在指令的操作码之后,随取指令而被读出; 访问数据段的段寄存器是DS,所以,用DS的值和偏移量1234H相加,得存储单元的物理地址:21234H; 取单元21234H的值5213H,并按“高高低低”的原则存入寄存器BX中。 所以,在执行该指令后,BX的值就为5213H。 由于数据段的段寄存器默认为DS,如果要指定访问其它段 内的数据,可在指令中用段前缀的方式显式地书写出来。 下面指令的目标操作数就是带有段前缀的直接寻址方式。 MOV ES:[1000H], AX 直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值,该寻址方式可在64K字节的段内进行寻址。 注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。 【例】 SAL WORD PTR DS:[26H],1 ;把DS段内偏移地址为26H的字算术左移一

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档