- 1、本文档共117页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 寻址方式和指令系统 2.1 寻址方式 2.2 数据传送类指令 2.3 算术运算类指令 2.4 位操作类指令 2.5 串操作类指令 2.6 控制转移类指令 2.7 处理机控制类指令 8086CPU的指令系统的基本指令 包括数据传送类指令、算术运算类指令、位操作类指令、串操作类指令、控制转移类指令、处理机控制类指令。后几节将分别介绍这些指令的语句格式和功能。 8086CPU的指令的共同的规律 l??大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。 语句格式:[标号:] 操作符 OPD, OPS [;注释] l??算术运算和位操作类指令的部分单操作数指令有相同的语句格式和操作规定。 语句格式:[标号:] 操作符 OPD [;注释] 2.1 寻址方式 2.1.1 寄存器寻址 2.1.2 寄存器间接寻址 2.1.3 变址寻址 2.1.4 基址加变址寻址 2.1.5 立即寻址 2.1.6 直接寻址 2.1.7 跨段问题 2.1.1 寄存器寻址 寄存器寻址方式的操作数在指令指明的寄存器中。 汇编格式:R 其中R表示寄存器名。 功能:操作数直接存放在寄存器R中。 图形表示: R 指令→操作数 【例2.1】 下列程序执行后,(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 2.1.2 寄存器间接寻址 寄存器间接寻址方式中,寄存器的内容为操作数的偏移地址EA,操作数在存储器中。 汇编格式:[R] 功能:操作数存放在存储器,寄存器R存放操作数的偏移地址EA。 执行指令:MOV AX ,[BP] 执行后:(AX)=?,(BP)=?,(SS)=?,(20030H)=? 图形表示如下: 2.1.3 变址寻址 变址寻址方式操作数的偏移地址EA为寄存器的内容加位移量,操作数在存储器中。 汇编格式:X[R](X表示位移量,是8位或16位二进制补码表示的有符号数) 功能:操作数存放在存储器,寄存器R的内容加位移量X为操作数的偏移地址EA。 图形表示如下: 偏移地址EA计算方法如下: 【例2.3】 设执行前: (AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H 执行指令:ADD 6[BX],AX 执行后:(AX)=?,(BX)=?,(DS)=?,(20036H)=? 图形表示如下: 2.1.4 基址加变址寻址 基址加变址寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容、位移量X三项之和,操作数在存储器中。 汇编格式:X [BR+IR] 功能:操作数存放在存储器,BR的内容加IR的内容加位移量X是操作数的偏移地址EA。 图形表示: 操作数偏移地址EA计算方法如下 2.1.5 立即寻址 立即寻址方式中,指令操作码和操作数都在存储器代码段中。 汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数) 功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。 图形表示: 【例2.5】 【例2.5】MOV AX, 10 执行后(AX)=? 该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。 图形表示: 执行:10→AX 执行后:(AX)=000AH 2.1.6 直接寻址 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA] 。 功能:指令下一字单元的内容是操作数的偏移地址EA。 图形表示: 【例2.6】 【例2.6】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。 执行指令:MOV AX ,BUF 执行后:(AX)=? 图形表示: 执行:(32000H)→AX 执行后:(AX)=4545H 2.1.7 跨段问题 按前述规定:若选用BP作间址基址寄存器、变址寄存器或基址
文档评论(0)