- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8086指令系统(最后有练习题)
第3章 8086指令系统;8086CPU的指令系统的基本指令 ;3.1 8086的寻址方式;3.1.1 数据的寻址方式;3.1.1 数据的寻址方式;1.立即寻址;2 . 寄存器寻址; ;3 . 直接寻址;【例3-3】 ;4 寄存器间接寻址;偏移地址EA计算方法如下:;执行指令MOV AX,[BP],问执行后(AX)=?
Step1:计算地址SS*16+BP=20030H
Step2:找内容(20030H)=1234H
所以执行后:(AX)=1234H
;5 寄存器相对寻址;5 寄存器相对寻址;偏移地址EA计算方法如下:;【例3-5】设执行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H
执行指令:ADD [BX+6],AX
问执行后:(AX)=?,(BX)=?,(DS)=?,
(20036H)=?
执行:(20036H)+(AX) →20036H
执行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。
;6.基址变址寻址;6.基址变址寻址;7 相对基址变址寻址;操作数偏移地址EA计算方法如下:;8 跨段问题;【例3-6】跨段前缀示例。 ; 用来确定转移指令及CALL指令的转向地址。;表示转移距离(称为位移量)的操作符:
SHORT 短转移,位移量在-128~127字节之间。
JMP SHORT NEXT
NEAR 近转移,在同一段内转移,
位移量在-32768~32767字节范围内。
JMP NEAR PTR AGAIN
FAR 远转移,表示转移距离超过±32K字节,
或是在不同段之间转移。
JMP FAR PTR WAIT;
转向的有效地址EA =
转向地址 = 16d ? (CS) + (IP)新;特点:转向的有效地址EA是一个寄存器或存储单元的内容。
物理地址 = 16d ? (CS) + EA
例3-8 (BX)=1256H (SI)=528EH TABLE=20A2H
(DS)=2000H (232F8H)=3280H (264E4H)=2450H
JMP BX ; (IP)←1256H
JMP TABLE[BX] ; (IP)←3280H
JMP [BX][SI] ; (IP)←2450H
;
用指令中提供的转向段地址和偏移地址取代CS和IP
物理地址 = 16d ? (CS) + (IP)
例3-9:
;
用存储器中的两个相继字的内容取代CS和IP。
(存储单元的地址可用除立即数和寄存器以外的任何一种数据寻址方式得到)
物理地址 = 16 ? (DS) + EA
例: JMP DWORD PTR [INTERS+BX]
;3.1.3 对端口的寻址方式 ;1.直接寻址
是由指令直接给出所要找的端口地址,端口的直接寻址方式所提供的直接地址是8位的,即寻址范围仅为0~255。端口的直接地址不能用任何括号括起,不能理解为立即数。
2.间接寻址
必须把16位的端口地址放在寄存器DX中,用DX进行端口的间接寻址,端口的间接寻址只能使用DX寄存器进行,并且对端口的间接寻址所用的寄存器DX是不加任何括号的,不能理解为寄存器寻址。;练习题;练习题;3.2 8086的指令系统 ;8086CPU的指令的共同的规律 ;3.2.1 数据传送类指令;3.2.1.1 通用数据传送指令;1.传送指令MOV
语句格式:MOV OPD,OPS
功能:将源操作数传送入目的地址,源地
址内容不变。即(OPS)→OPD。
下图3.1描述了MOV指令在传送数据时允许
传送的路径及类型。
;图3.1 MOV指令所允许的数据传送路径及类型;【例3.1】存储器与寄存器间数据传送。;在应用传送指令MOV传送数据时应当注意以下几点
(1) 立即数只能出现在源操作数位置。如 MOV l0H,AL 是错误的。
(2) 立即数不能直接传送到段寄存器。如 MOV DS,1000H 是错误的。若要给DS赋1000
文档评论(0)