指令系统(寻址方式).ppt

上传人:wuy****n92 文档编号:73416156 上传时间:2023-02-18 格式:PPT 页数:28 大小:341.11KB
返回 下载 相关 举报
指令系统(寻址方式).ppt_第1页
第1页 / 共28页
指令系统(寻址方式).ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《指令系统(寻址方式).ppt》由会员分享,可在线阅读,更多相关《指令系统(寻址方式).ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第四四章 8086/8088CPU指令系统mov ax,12hcall displayJmp 1234h1主要内容:主要内容:本章的重点是理解8086常用指令的功能本章的难点是8086的各种寻址方式同学们一定要采用调试程序DEBUG进行实践2调试程序调试程序DEBUGDEBUG是常用的汇编语言调试工具,为汇编语言程序员提供了分析指令、跟踪程序的有效手段。常用命令:A汇编 U反汇编T单步执行 G断点执行D数据显示 R寄存器3指令的基本构成指令的基本构成说明说明要执行的要执行的是什么操作是什么操作操作对象,可以操作对象,可以有有0个、个、1个或个或2个个目的目的源源4指令举例:ADD AX,SI+

2、6MOV AX,BX操作码 操作数INC BXHLT5寻址方式寻址方式指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的寻址方式。操作数采取哪一种寻址方式,会影响机器运行的速度和效率。如何寻址一个操作数对程序的设计来讲也很重要。在8086指令系统中,操作数所在地址的寻址方式可分为4大类:立即寻址 寄存器寻址 存储器寻址 I/O寻址6l 操作数操作数(为一常数为一常数)直接直接由指令给出由指令给出 (此操作数称为此操作数称为立即数立即数)l 立即寻址只能用于源操作数立即寻址只能用于源操作数,常用来给寄存常用来给寄存器或存储单元赋初值。器或存储单元赋初值。l 例:例:MOV AX,1C8

3、FH MOV BYTE PTR2A00H,8FH 错误例:错误例:MOV 2A00H,AX ;错误!错误!1.立即寻址立即寻址7立立即即数数操作码操作码低低8位位高高8位位存储器存储器MOV操作码操作码02H31HAHAL代码段代码段立即寻址指令在存立即寻址指令在存储器中的存放形式储器中的存放形式AX指令操作例:指令操作例:MOV AX,3102H ;AX 3102H 执行后,执行后,(AH)=31H,(AL)=02H用途:用途:直接给出操作数据,立即数存放在内存的代码段中82.寄存器寻址寄存器寻址l 操作数放在某个寄存器中操作数放在某个寄存器中l 源操作数与目的操作数字长要相同源操作数与目的

4、操作数字长要相同l 寄存器寻址与段地址无关寄存器寻址与段地址无关l 例:例:MOV AX,BX MOV 3F00H,AX MOV CL,AL 错误例:错误例:MOV AX,BL ;字长不同字长不同 MOV ES:AX,DX ;寄存器与段无关寄存器与段无关9AXSI2233H2233H指令操作例:指令操作例:MOV SI,AX ;SI (AX)指令执行前:(AX)=2233H 指令执行后:(AX)=2233H,(SI)=2233H103.存储器寻址存储器寻址 3.1直接寻址直接寻址l 指令指令中直接给出中直接给出存储器操作数的存储器操作数的16位位偏移地址偏移地址。存储器偏移地址也称为存储器偏移

5、地址也称为有效地址有效地址(EA,Effective Address)l存储器存储器默认默认的段寄存器为的段寄存器为DS,但也可以显式地指定其他段寄存器但也可以显式地指定其他段寄存器称为称为段超越段超越前缀前缀l存储器偏移地址也可用存储器偏移地址也可用符号地址符号地址来表示,如来表示,如ADDR、VARl 例:例:MOV AX,2A00H;段头隐含为段头隐含为DS MOV DX,ES:2A00H;段超越;段超越 MOV SI,TABLE_PTR;段头隐含为段头隐含为DS11例:例:MOV AX,3102H ;AL (3102H),AH (3103H)如果(DS)=2000H,(23102H)=

6、CDH,(23103H)=ABH则操作数的物理地址为:20000H+3102H=23102H指令执行后:(AX)=0ABCDHMOV操作码操作码02H31HAHAL23102HCDHABH存储器存储器代码段数据段.23103H123.2 寄存器间接寻址寄存器间接寻址l 操作数操作数的的偏移地址偏移地址(有效地址有效地址EA)放在放在寄存器寄存器中中l 只有只有SISI、DIDI、BXBX和和BPBP可作间址寄存器可作间址寄存器 l 例:例:MOV AX,BX MOV CL,CS:DI错误例错误例:MOV AX,DX MOV CL,AXEA=(BX)(BP)(SI)(DI)13指令操作例指令操作

7、例:MOV AX,SI若若(DS)=6000H,(SI)=1200H,(61200H)=44H,(61201H)=33H则指令执行后,则指令执行后,(AX)=3344H。44H33H60001200DSSI6000061200 61200HAX存储器存储器数据段+)120044H33H143.3 寄存器相对寻址寄存器相对寻址l EA=间址寄存器的内容间址寄存器的内容+8/16位的位移量位的位移量EA=(BX)(BP)(SI)(DI)+8位16位位移量 15l 例:例:MOV AX,BX+8 MOV CX,TABLESI MOV AX,BP+1000H;默认段寄存器为默认段寄存器为SSl 指令操

8、作例:指令操作例:MOV AX,DATABX 若若(DS)=6000H,(BX)=1000H,DATA=2A00H,(63A00H)=66H,(63A01H)=55H 则物理地址则物理地址=60000H+1000H+2A00H=63A00H 指令执行后指令执行后:(AX)=5566H(见下页图示)见下页图示)16操作码操作码00 偏移量低2A 偏移量高DS 60000BX 1000+DATA 2A0063A0063A00HAHALAX代码段数据段.66H55HMOV AX,DATABX173.4 基址变址寻址基址变址寻址l 若操作数的偏移地址:若操作数的偏移地址:由由基址寄存器基址寄存器(BX

9、BX或或BPBP)给出给出 基址寻址方式基址寻址方式 由由变址寄存器变址寄存器(SISI或或DIDI)给出给出 变址寻址方式变址寻址方式l 由一个基址寄存器由一个基址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内的内容相加而形成操作数的偏移地址容相加而形成操作数的偏移地址,称为称为基址变址寻基址变址寻址址。EA=(BX)(BP)+(SI)(DI)l 同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现。基址寄存器基址寄存器变址寄存器变址寄存器18例:例:MOV AX,BX SI MOV AX,BX+SI同一寻址方式可以有不同的表示形式。同一寻址方式可以有不同的表示形式。MOV AX

10、,DS:BP DI错误例:错误例:MOV AX,BX BP MOV AX,DI SI19 83000操作码操作码DS 80000B X 2000 +SI 100083000HAHALAX代码段数据段.YYXX指令操作例:指令操作例:MOV AX,BXSI假定:假定:(DS)=8000H,(BX)=2000H,(SI)=1000H则物理地址则物理地址=80000H+2000H+1000H=83000H=80000H+2000H+1000H=83000H指令执行后指令执行后:(:(AL)AL)=83000H83000H (AH)AH)=83001H83001H 203.5相对基址变址寻址相对基址变

11、址寻址l 在在基址基址变址寻址的基础上再加上一个相对位变址寻址的基础上再加上一个相对位移量移量l 注意事项同注意事项同基址基址变址寻址变址寻址EA=(BX)(BP)+(SI)(DI)+8位16位位移量 l 例:例:MOV AX,BASE SI BXMOV AX,BX+BASE SIMOV AX,BX+SI+BASEMOV AX,BX BASE SIMOV AX,BX+SI BASE基址基址变址变址21指令指令操作例:操作例:MOV AX,DATADIBX若(DS)=8000H,(BX)=2000H,(DI)=1000H,DATA=200H则指令执行后(AH)=83021H,(AL)=83020

12、H8320083200HAHALAX+DATA 0200操作码操作码代码段数据段.YYXXDS 80000BX 2000 DI 1000224.I/O寻址方式寻址方式直接给出端口的地址,但寻址范围为00H0FFH端口地址存放在寄存器DX中,寻址范围:0000H0FFFFH例:IN AL,78H OUT 56H,AL IN AX,23H OUT 67H,AX例:IN AL,DX OUT DX,AL IN AX,DX OUT DX,AX4.1直接寻址方式:直接寻址方式:4.2寄存器间接寻址:寄存器间接寻址:23小结小结l指令由(指令由()和()和()构成)构成l如何取得操作数如何取得操作数称为(称

13、为()操作码操作码 操作数操作数寻址方式寻址方式24l寻址寻址方式可分方式可分8种种立即寻址立即寻址直接寻址直接寻址 -针对针对M、I/O寄存器相对寻址寄存器相对寻址 -针对针对M寄存器寻址寄存器寻址 -针对针对R基址变址寻址基址变址寻址 -针对针对M相对基址变址寻址相对基址变址寻址 -针对针对M寄存器间接寻址寄存器间接寻址 -针对针对M、I/O25寻址方式小结:寻址方式小结:(1)除了立即寻址和寄存器寻址外,其它寻址方式的操作数都来自存储区(除代码段以外的存储区)或I/O端口。通过不同的方式寻找到操作数的地址。(2)只有BX、BP、SI、DI可在方括号 内出现。(3)BX或BP可单独出现在

14、内,也可以与SI或DI或常数一起出现在 内,不允许BX和BP同时出现在一个 内。(4)SI或DI可单独出现在 内,也可以与BX或BP或常数一起出现在 内,不允许SI或DI同时出现在一个 内。(5)一个 内包括多个内容时,它们只能作加法运算。(6)若 内包含BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用段寄存器DS提供段基址。268086指令系统概述指令系统概述Intel 8086指令系统共有117条基本指令,可分成6个功能组:数据传送类指令 算术运算类指令 逻辑运算和移位类指令 串操作类指令 控制转移类指令 处理器控制类指令如何学习呢?27学习指令的注意事项学习指令的注意事项指令的功能指令的功能该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式。指令支持的寻址方式指令支持的寻址方式该指令中的操作数可以采用何种寻址方式。指令对标志的影响指令对标志的影响该指令执行后是否对各个标志位有影响,以及如何影响。其他方面其他方面该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等。28

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com