




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章指令系统和寻址方式,指令和指令系统寻址方式80 x86的指令系统简介,3.1指令和指令系统,指令由操作码和操作数组成。操作码说明计算机要执行的操作,而操作数是在指令执行过程中所需要的操作数。操作数可以是操作数本身,也可以是操作数地址或是与操作数有关的其他信息。一般格式,代码指令的格式当一条汇编指令译成代码指令时,由汇编指令中的操作码和操作数共同决定代码指令的格式。对8086,代码指令所占字节16不等。第1个字节固定为操作码(OPCODE),其余字节为操作数。操作数字节的确定与指令的寻址方式有关。,汇编指令的书写形式,格式nameoperationoperand;comment名字项(name):可以是标号或变量,表示本语句的符号地址。标号在代码段中定义,后跟冒号。变量在数据段或附加数据段中定义,后面不跟冒号。名字项组成:字母打头的字符串组成。包含字符(AZ,09,_,?,$,等),如MainLoop,Calc_long_sum。单独的$或?有特殊含义,不能做符号名。保留字不能用在名字项。,操作项(operation):可以是指令、伪指令、宏指令的助记符。操作数项(operand):可以是一个或多个表达式组成,多个操作数之间用逗号分隔。操作数可能是一个或多个,也可能没有。算术操作符:+,-,*,/,MOD逻辑操作符:AND,OR,XOR,NOT关系操作符:EQ,NE,LT,GT,GE其他操作符,操作数的主要类型,立即操作数可采用数制:二、八、十、十六进制,后缀分别为B,Q或O,D,H若十六进制以字母开头,必须加前导“零”。寄存器操作数寄存器的内容参加运算或存放结果。存储器操作数指内存某地址的字节、字、双字等是指令的处理对象,这时必须把处理对象取出或送入相应地址。,有效地址和段超越,存储单元的物理地址由两部分组成:段寄存器保存的段基值,偏移地址。在8086/8088的各种寻址方式中,寻找存储单元所需的偏移地址,称为有效地址,用EA表示。不同的寻址方式,组成有效地址EA的各部分内容也不一样,寻址方式主要是EA如何计算与寻找的问题。,存储器存取时的默认段寄存器,一般情况下,使用寻址方式中规定的默认段寄存器来确定段的基地址。指令中的操作数若不在原默认的区段内,必须在指令中指定段寄存器,这称为段超越。如MOVAL,ES:2000H教材P25表4-1,3.2寻址方式,8086的寻址方式80 x86新增的寻址方式与转移地址有关的寻址方式注:重点介绍第1种,其他可放在后面讲。,1.8086的寻址方式,与数据有关的寻址方式:以MOV指令为例立即寻址MOVAX,3069H寄存器寻址MOVAL,BH直接寻址MOVAX,2000H寄存器间接寻址MOVAX,BX寄存器相对寻址MOVAX,COUNTSI基址变址寻址MOVAX,BPDI相对基址变址寻址MOVAX,MASKBXSI,附:MOV指令格式:MOV目的操作数,源操作数,(1)立即寻址方式操作数在指令中直接给出指令格式:MOV目的操作数,立即数MOVAL,5MOVAH,0FFHMOVAX,3064HMOVAL,A说明:立即数存储在代码段中立即数只能用于源操作数字段MOV40H,AL“源”和“目的”的字长一致MOVAH,3064H,(2)寄存器寻址方式操作数在指定的寄存器中MOVAX,BXMOVAL,BH说明:字节寄存器只有:AHALBHBLCHCLDHDL16位:AX,BX,CX,DX,SI,DI,SP,BP32位(386以上):EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP“源”和“目的”的字长一致,MOVAH,BXCS不能用MOV指令改变,MOVCS,AX,举例,说明下列指令采用的寻址方式和执行结果:MOVAX,1234HMOVBX,AXMOVAH,AL(AX)=?(BX)=?,(1)(AX)=1234H立即寻址。(2)(BX)=1234H,(AX)保持不变。寄存器寻址。(3)(AL)=34H,(AH)=34H最后结果:(AX)=3434H(BX)=1234H,(3)直接寻址方式*有效地址EA由指令直接给出例:MOVAX,2000HEA=2000H,假设(DS)=3000H,那么PA=32000H。,*隐含的段为数据段DS,有效地址EA存储在代码段中。*可使用段跨越前缀MOVAX,ES:2000H*操作数地址可由变量(符号地址)表示,但要注意变量的属性VALUEDB10MOVAH,VALUEMOVAX,VALUEMOVAX,WORDPTRVALUE,50,30,32000,AHAL,30,50,(AX)=3050H,(4)寄存器间接寻址*操作数的有效地址EA在基址寄存器(BX/BP)或变址寄存器(SI/DI)中,而操作数在存储器中。MOVAX,BXPA=10H(DS)+(BX)MOVAX,ES:BXPA=10H(ES)+(BX)MOVAX,BPPA=10H(SS)+(BP)*有效地址EA只能是SI、DI、BX、BP,不允许使用AX、CX、DX存放EA,例如:MOVAX,CX*SRC和DST的字长一致MOVDL,BX;BX指示一个字节单元MOVDX,BX;BX指示一个字单元*适于数组、字符串、表格的处理,例:MOVAX,BX指令的执行情况。若(DS)=2000H,(BX)=1000H,存储器中数据如图所示。,(1)有效地址EA=1000H,物理地址为21000H。,AX,AH,AL,(2)结果:(AX)=50A0H,表2.1寄存器间接寻址的地址形成,(5)寄存器相对寻址方式*(变址寻址)有效地址=(BX/BP)或(SI/DI)+位移disp操作数的书写形式BX+dispdispBXBX+disp例如:MOVAX,COUNTSI或MOVAX,COUNT+SI假设(DS)=3000H,(SI)=2000H,COUNT=3000H,则:PA=35000H假设(35000H)=1234H,那么(AX)=1234H*适于数组、字符串、表格的处理,表2.2寄存器相对寻址的地址形成,(6)基址变址寻址方式*指令格式:MOVAX,BXDIMOVAX,BX+DIMOVAX,ES:BXSI*适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合MOVAX,BXBPMOVAX,SIDI,有效地址=,(BX)(SI)(BP)(DI),+,(7)相对基址变址寻址方式书写形式:BXSI+dispdispBXSIBX+SI+dispBX+SI+disp,有效地址=,(BX)(SI)8位(BP)(DI)16位,+,+,位移量,表2.3相对基址变址寻址的地址形成,访问存储器的方式,默认的段寄存器,可跨越的段寄存器,偏移地址,取指令CS无IP堆栈操作SS无SP一般数据访问DSCSESSS有效地址EABP作为基址的寻址SSCSDSESBP串操作的源操作数DSCSESSSSI串操作的目的操作数ES无DI,段寄存器的使用规定,8086寻址方式小结,综合练习,(1)写出下列内存操作数的物理地址表达式。MOVAL,BX+5MOV3BP,AXMOVAX,BUFFERBX+DIMOVDL,ES:SI(2)教材P37,4,5,7(周一交作业),2.80 x86新增的寻址方式,EA=(基址寄存器)+(变址寄存器)比例因子+位移量,(1)比例变址寻址方式例:MOVEAX,COUNTESI4,(2)基址比例变址寻址方式例:MOVECX,EAXEDI4(3)相对基址比例变址寻址方式例:MOVEAX,TABLEEBPEDI416位和32位寻址的差异地址成分16位寻址32位寻址基址寄存器BX、BP任何32位通用寄存器变址寄存器SI、DI除ESP外的任何32位通用寄存器比例因子11、2、4、8,与转移地址有关的寻址方式(教材P33),用来确定无条件转移指令JMP及转子指令CALL的转移地址。无条件转移或子程序调用的目标转移地址分为段内和段间两种情形。段内:只改变逻辑地址中的IP的值,CS的值不会改变;段间:目标转移地址的CS与IP都要改变。,(1)段内直接寻址,目标(IP)=当前(IP)+位移量(8bit/16bit),当前IP总是指向下一条指令的首地址。当位移量为8位时,称为短转移(转移范围-128+127)。指令格式为:JMPSHORTDISP当位移量为16位时,称为近转移(转移范围-32768+32767)。指令格式为:JMPNEARDISP,(2)段内间接寻址转向的有效地址是一个寄存器或字存储单元的内容。例:TABLE=20A2H(BX)=1256H(SI)=528EH(DS)=2000H(232F8H)=3280H(264E4H)=2450HJMPBX;(IP)=1256HJMPTABLEBXJMPWORDPTRTABLEBX;(IP)=3280HJMPBXSIJMPWORDPTRBXSI;(IP)=2450H,code1segmentjmpfarptrnextcode1ends,code2segmentnext:.code2ends,(3)段间直接寻址用指令中提供的转向段地址和偏移地址取代CS和IP例:,(4)段间间接寻址用存储器中的两个相继字的内容取代CS和IP(存储单元的地址可用存储器寻址方式得到)例:JMPDWORDPTRINTERS+BXPA=(DS)24+(BX)+INTERS(PA+1,PA)IP(PA+3,PA+2)CS,练习:教材P38,6,(1)IP目标=2BC0H+5119H=7CD9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车产业园人才引进与培养方案
- 微流控合成技术对活性酯分子异构体纯度提升的瓶颈突破路径
- 微型化刹车线管在新能源汽车集成中的结构应力优化难题
- 建筑工地场景下多频段光信号穿透混凝土的衰减模型构建
- 废料化学再生技术对分体式浸塑机环保合规性的重构路径
- 英语课后练习Unit 2 lesson 2
- 工业级交联PVP回收再利用中的热降解副产物定向捕获技术
- 渔光一体项目管理人员能力提升方案
- 麋鹿阅读答案试卷及答案
- 8.3 2x2列联表说课稿-2025-2026学年沪教版2020选择性必修第二册-沪教版2020
- YY/T 0992-2023内镜清洗工作站
- 架空输电线路防鸟害工作
- 城市轨道交通调度指挥高职PPT完整全套教学课件
- 快递驿站合作协议
- 社区团购运营方案
- 高职《高等数学》说课稿
- 《蛙泳手臂动作》教学课件
- 财经应用文写作完整版ppt全套课件整本书电子教案最全教学教程
- 可穿戴心音心电同步监控初步临床研究
- 预防青少年犯罪课件
- TSZUAVIA 009.1-2019 多旋翼无人机系统实验室环境试验方法 第1部分:通用要求
评论
0/150
提交评论