汇编语言3_1.ppt

上传人:hyn****60 文档编号:70970418 上传时间:2023-01-31 格式:PPT 页数:40 大小:465KB
返回 下载 相关 举报
汇编语言3_1.ppt_第1页
第1页 / 共40页
汇编语言3_1.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《汇编语言3_1.ppt》由会员分享,可在线阅读,更多相关《汇编语言3_1.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编程工具编程工具v第三章 80 x86指令系统和寻址方式v第四章 汇编语言程序格式 1第3章 80 x86的指令系统和寻址方式第第3章章 80 x86的指令系统和寻址方式的指令系统和寻址方式3.1 程序语言简介程序语言简介3.2 80 x86的寻址方式3.3 程序占有的空间和时间3.4 80 x86的指令系统2第3章 80 x86的指令系统和寻址方式3.1 程序语言简介程序语言简介(1)指令、指令系统和程序指令、指令系统和程序(2)8086/8088指令格式简介指令格式简介3第3章 80 x86的指令系统和寻址方式l用编码表示用编码表示CPU执行一个基本操作的命令,称为执行一个基本操作的命令,

2、称为指令指令。l 计算机全部指令集称为计算机全部指令集称为指令系统指令系统。l 指令系统反映指令系统反映 CPU的基本功能的基本功能,是硬件设计人员和程序员能见到的是硬件设计人员和程序员能见到的机器的主要属性机器的主要属性,(1)指令、指令系统和程序指令、指令系统和程序l 程序程序是为要解决的问题编写出来的指令集合是为要解决的问题编写出来的指令集合4第3章 80 x86的指令系统和寻址方式例例 将地址为将地址为2000H和和2001H 的两内存单元内容相加,的两内存单元内容相加,结果存在地址结果存在地址2002H单元中,程序如下:单元中,程序如下:A0 00 20A0 00 2002 06 0

3、1 2002 06 01 20A2 02 20A2 02 20数据暂存器数据暂存器PSW标志标志寄存器寄存器控制电路控制电路指令译码器指令译码器AXBXCXDXSIDIBPSP寄存器组寄存器组指指令令队队列列总线总线接口接口控制控制电路电路运运算算器器地址总线地址总线AB数据总线数据总线DB控制总线控制总线CB地地址址译译码码器器IP地地址址加加法法器器DSESSSCS1010 00000000 00000010 00000000 00100000 01100000 00010010 00001010 00100000 00100010 0000A0A000002020020206060101

4、2020A2A202022020MOV AL,2000HADD AL,2001HMOV 2002H,AL5第3章 80 x86的指令系统和寻址方式(1)操作码操作码指明指明CPU要执行什么样的操作。要执行什么样的操作。是一条指令必不可少的部分,用助记符表示是一条指令必不可少的部分,用助记符表示。l 指令格式指令格式 例例 ADD AL,10H数据传送数据传送算术运算算术运算逻辑运算逻辑运算串操作串操作控制转移控制转移处理机控制处理机控制 按功能按功能指令分六类指令分六类(2)操作数操作数指明参与操作的数据或数据所在的地方。指明参与操作的数据或数据所在的地方。了解操作数的了解操作数的来源来源、个

5、数、类型个数、类型。(2)8086/8088指令格式简介指令格式简介 操作码操作码 操作数操作数 .操作操作数数6第3章 80 x86的指令系统和寻址方式q 操作数来源操作数来源 指明操作数所在的地方指明操作数所在的地方有三种来源:有三种来源:操作数在指令中,称操作数在指令中,称立即数操作数立即数操作数 如如 MOV AL,9 操作数在寄存器中,称操作数在寄存器中,称寄存器操作数寄存器操作数指令中给出用符号表示的寄存器名。指令中给出用符号表示的寄存器名。如如 MOV AL,9 操作数在内存单元中,称操作数在内存单元中,称存储器操作数存储器操作数或或内存操作数内存操作数 指令中给出该内存单元的地

6、址。用指令中给出该内存单元的地址。用 表示存储器操作数表示存储器操作数 如如 MOV AL,2000H 7第3章 80 x86的指令系统和寻址方式q 操作数个数操作数个数 按指令格式中,操作数个数的多少分为四类:按指令格式中,操作数个数的多少分为四类:无操作数无操作数:指令只有一个操作码,没有操作数指令只有一个操作码,没有操作数单操作数单操作数:指令中给出一个操作数指令中给出一个操作数双操作数双操作数:指令中给出两个操作数。指令中给出两个操作数。三操作数:三操作数:指令中给出三个操作数。指令中给出三个操作数。8第3章 80 x86的指令系统和寻址方式 无操作数:无操作数:指令只有一个操作码,没

7、有操作数。指令只有一个操作码,没有操作数。有两种可能:有两种可能:有些操作不需要操作数。有些操作不需要操作数。如如 HLT,NOP等处理机控制指令。等处理机控制指令。操作数隐含在指令中。操作数隐含在指令中。如如 AAA,DAA等调整指令。等调整指令。9第3章 80 x86的指令系统和寻址方式 单操作数单操作数:指令中给出一个操作数。指令中给出一个操作数。有两种可能:有两种可能:有些操作只需要一个操作数有些操作只需要一个操作数 如如 INC AL ;(AL)(AL)+1有些操作将另一个操作数隐含在指令中有些操作将另一个操作数隐含在指令中 如如 MUL BL ;(AX)(AL)(BL)10第3章

8、80 x86的指令系统和寻址方式 双操作数双操作数:指令中给出两个操作数。指令中给出两个操作数。如如 ADD AL,BL ;(AL)(AL)+(BL)目的操作数目的操作数 源操作数源操作数 操作后的结果通常存放在目的操作数中。操作后的结果通常存放在目的操作数中。11第3章 80 x86的指令系统和寻址方式 三操作数三操作数:指令中给出三个操作数。指令中给出三个操作数。如如 IMUL BX,DX,6 ;(BX)(DX)*6 目的操作数目的操作数 源操作数源操作数 立即数立即数 操作后的结果通常存放在目的操作数中。操作后的结果通常存放在目的操作数中。12第3章 80 x86的指令系统和寻址方式3.

9、2 80 x86的寻址方式v 与数据有关的寻址方式与数据有关的寻址方式v 与转移地址有关的寻址方式与转移地址有关的寻址方式13第3章 80 x86的指令系统和寻址方式3.2.1 与数据有关的寻址方式与数据有关的寻址方式 以以 MOV 指令为例指令为例 1.立即寻址方式立即寻址方式*操作数在指令中给出操作数在指令中给出 MOV AL,5 MOV AX,3064H*只能用于只能用于SRC字段字段*SRC 和和 DST的字长一致的字长一致 MOV AH,3064H适用于给寄存器赋初值适用于给寄存器赋初值14第3章 80 x86的指令系统和寻址方式2.寄存器寻址方式寄存器寻址方式*操作数在指定的寄存器

10、中操作数在指定的寄存器中 MOV AX,BX MOV AL,BH*字节寄存器只有字节寄存器只有 AH AL BH BL CH CL DH DL*SRC 和和 DST的字长一致的字长一致 MOV AH,BX*CS不能用不能用MOV指令改变指令改变 MOV CS,AX运算速度快运算速度快15第3章 80 x86的指令系统和寻址方式存储器寻址(除代码段)四种成分的组合EA基址基址+(变址(变址*比例因子)比例因子)+位移量位移量位移量:存放在指令中的一个8位、16位或32位的数,通常是个地址基 址:基址寄存器中的内容,通常用来指向数组或字符串的首地址变 址:变址寄存器中的内容,通常用来指向数组中的某

11、个元素或字 符串中的某个字符比例因子:386+,值可为1,2,4,8,与变址相乘用于访问元素长度 为2、4、8字节的数组EA基址基址+变址变址+位移量(适用于位移量(适用于8086/8088)注意:三种成分不一定同时存在,可能出现一种、两种注意:三种成分不一定同时存在,可能出现一种、两种 或三种。或三种。16第3章 80 x86的指令系统和寻址方式四种成分16位寻址位移量0,8,16位基址寄存器BX,BP变址寄存器SI,DI比例因子无16位寻址时有效地址的四种成分组成的规定四种成分组成的规定17第3章 80 x86的指令系统和寻址方式默认段选择规则访问类型所用段及段寄存器缺省选择规则指 令代码

12、段 CS用于取指堆 栈堆栈段 SS所有堆栈的进栈与出栈任何用SP或BP作为基址寄存器的访问局部数据数据段 DS除相对于堆栈以及串处理指令的目的串以外的所有数据访问目 的 串附加段 ES串处理指令的目的串18第3章 80 x86的指令系统和寻址方式段跨越前缀段跨越前缀 用于改变系统所指定的默认段选择规则有三种情况不允许不允许使用段跨越前缀:1、串处理指令的目的串必须用ES2、PUSH指令的目的和POP指令的源必须用SS段3、指令必须存放在CS段中19第3章 80 x86的指令系统和寻址方式3.直接寻址方式直接寻址方式*有效地址有效地址EA由由指令直接给出指令直接给出 有效地址有效地址EA:操作数

13、的偏移地址操作数的偏移地址 物理地址物理地址PA=16d (DS)+EA 例例:MOV AX,2000H EA=2000H,假设假设(DS)=3000H 例例:操作数地址可由变量(符号地址)表示操作数地址可由变量(符号地址)表示 MOV AH,VALUE (VALUE DB 10)5030 32000AH AL3050(AX)=3050H20第3章 80 x86的指令系统和寻址方式*隐含的段为隐含的段为数据段数据段 DS*可使用可使用段跨越前缀段跨越前缀 MOV AX,ES:2000H80 x86规定:规定:双操作数指令中,双操作数指令中,只能有一个操作只能有一个操作数使用存储器方式数使用存储

14、器方式,因此,经常有一个,因此,经常有一个变量要送到寄存器。变量要送到寄存器。21第3章 80 x86的指令系统和寻址方式4.寄存器间接寻址方式寄存器间接寻址方式*EA在基址寄存器在基址寄存器(BX/BP)或变址寄存器或变址寄存器(SI/DI)中中 BX,SI,DI (DS)物理地址物理地址=16d (DS)+BP (SS)物理地址物理地址=16d (SS)+(BP)MOV AX,BX PA=16d (DS)+(BX)MOV AX,ES:BX PA=16d (ES)+(BX)MOV AX,BP PA=16d (SS)+(BP)(BX)(SI)(DI)22第3章 80 x86的指令系统和寻址方式

15、寄存器间接寻址方式示例寄存器间接寻址方式示例DS=1492H23第3章 80 x86的指令系统和寻址方式注意注意*不允许使用不允许使用AX、CX、DX存放存放EA MOV AX,CX*SRC 和和 DST的字长一致的字长一致 MOV DL,BX ;BX指示一个字节单元指示一个字节单元 MOV DX,BX ;BX指示一个字单元指示一个字单元*适于数组、字符串、表格的处理适于数组、字符串、表格的处理24第3章 80 x86的指令系统和寻址方式5.寄存器相对寻址方式(直接变址寻址)寄存器相对寻址方式(直接变址寻址)*例例:MOV AX,COUNTSI 或或 MOV AX,COUNT+SI MOV A

16、X,3000HSI假设假设(DS)=3000H,(SI)=2000H,COUNT=3000H 那么那么 PA=35000H 假设假设(35000H)=1234H,那么那么(AX)=1234H*适于数组、字符串、表格的处理适于数组、字符串、表格的处理 有效地址有效地址=(BX)(BP)(SI)(DI)+8位位16位位位移量位移量25第3章 80 x86的指令系统和寻址方式寄存器相对寻址示例寄存器相对寻址示例DS=1492H26第3章 80 x86的指令系统和寻址方式6.基址变址寻址方式基址变址寻址方式*MOV AX,BXDI 或或 MOV AX,BX+DI MOV AX,ES:BXSI*适于数组

17、、字符串、表格的处理适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合必须是一个基址寄存器和一个变址寄存器的组合 MOV AX,BXBP MOV AX,SIDI有效地址有效地址=(BX)(BP)+(SI)(DI)27第3章 80 x86的指令系统和寻址方式基址变址寻址方式示例基址变址寻址方式示例DS=1492H28第3章 80 x86的指令系统和寻址方式7.相对基址变址寻址方式相对基址变址寻址方式*MOV AX,MASKBXSI 或或 MOV AX,MASKBX+SI 或或 MOV AX,MASK+BX+SI*适于堆栈处理和二维数组处理适于堆栈处理和二维数组处理 有效地址

18、有效地址=(BX)(BP)+(SI)(DI)+8位位16位位位移量位移量29第3章 80 x86的指令系统和寻址方式相对基址变址示例相对基址变址示例DS=1492H30第3章 80 x86的指令系统和寻址方式例例:编写一段显示字符串编写一段显示字符串STRING的程序的程序 DATA SEGMENT STRING DB HAPPY NEW YEAR!,0DH,0AH,$COUNT DW 17 DATA ENDS(1)直接寻址直接寻址 mov dl,string ;mov dl,H mov ah,2 int 21h ;显示字符显示字符H mov dl,string+1 ;mov dl,A mov

19、 ah,2 int 21h ;显示字符显示字符A .31第3章 80 x86的指令系统和寻址方式(2)寄存器间接寻址)寄存器间接寻址 mov cx,count ;mov cx,17 mov bx,offset string ;string的偏址的偏址 bx next:mov dl,bx mov ah,2 int 21h ;显示一个字符显示一个字符 inc bx loop next ;循环指令循环指令(3)寄存器相对寻址)寄存器相对寻址 mov cx,count ;mov cx,17 mov si,0 next:mov dl,stringsi ;mov dl,string+si mov ah,2

20、 int 21h ;显示一个字符显示一个字符 inc si loop next ;循环指令循环指令32第3章 80 x86的指令系统和寻址方式(4)基址变址寻址)基址变址寻址 mov cx,count ;mov cx,17 mov bx,offset string ;string的偏址的偏址 bx mov si,0 next:mov dl,bxsi ;mov dl,bx+si mov ah,2 int 21h ;显示一个字符显示一个字符 inc si loop next ;循环指令循环指令33第3章 80 x86的指令系统和寻址方式段内段内:转移指令与转向的目标指令在同一代码段中转移指令与转向

21、的目标指令在同一代码段中,(,(CS)不变。不变。段间段间:转移指令与转向的目标指令在两个代码段中转移指令与转向的目标指令在两个代码段中,(CS)变化。变化。3.1.2 与转移地址有关的寻址方式与转移地址有关的寻址方式 用来确定用来确定 转移指令转移指令 及及 CALL指令指令 的转向地址。的转向地址。段内寻址段内寻址段间寻址段间寻址段内直接寻址段内直接寻址段内间接寻址段内间接寻址段间直接寻址段间直接寻址段间间接寻址段间间接寻址以以 转移指令转移指令JMP 为例为例34第3章 80 x86的指令系统和寻址方式1.段内段内直接寻址直接寻址 转向的有效地址转向的有效地址EA=例例:JMP AGAI

22、N (IP)当前当前 MOV BX,AX AGAIN:例例:JMP NEAR PTR NEXT 近转移近转移 -32768 +32767 JMP SHORT NEXT 短转移短转移 -128 +127 (IP)当前当前 +位移量位移量(8bit/16bit)(IP)新新(IP)新新35第3章 80 x86的指令系统和寻址方式2.段内段内间接寻址间接寻址 转向的有效地址转向的有效地址(IP)新新是一个是一个寄存器或存储单元寄存器或存储单元的内的内容。容。(可用除立即数以外的任何一种数据寻址方式得到可用除立即数以外的任何一种数据寻址方式得到)转移后转移后 物理地址物理地址=16d (CS)+(IP

23、)新新 例:例:(BX)=1256H (SI)=528EH TABLE=20A2H (DS)=2000H (232F8H)=3280H (264E4H)=2450H JMP BX ;(IP)=1256H JMP WORD PTR TABLEBX ;(IP)=3280H JMP WORD PTR BXSI ;(IP)=2450H36第3章 80 x86的指令系统和寻址方式3.段间段间直接寻址直接寻址 用指令中提供的转向段地址和偏移地址取代用指令中提供的转向段地址和偏移地址取代CS和和IP。转移后物理地址转移后物理地址=16d (CS)NEW+(IP)NEW 例例:code1 segment jm

24、p far ptr next code1 ends code2 segment next:.code2 ends37第3章 80 x86的指令系统和寻址方式4.段间段间间接寻址间接寻址 用存储器中的两个相继字的内容取代用存储器中的两个相继字的内容取代IP和和CS。(存储单元的地址可用除立即数和寄存器以外的任何一种存储单元的地址可用除立即数和寄存器以外的任何一种 数据寻址方式得到数据寻址方式得到)转移后物理地址转移后物理地址=16d (CS)NEW+(IP)NEW 例:例:JMP DWORD PTR INTERS+BX38第3章 80 x86的指令系统和寻址方式3.3 程序占有的空间和时间程序占

25、有的空间和时间空间空间 80 x86的机器指令是可变字节指令,即不同指令的机器指令是可变字节指令,即不同指令或不同寻址方式的机器指令长度不同或不同寻址方式的机器指令长度不同时间时间 一条指令的执行时间是一条指令的执行时间是取指令取指令、取操作数取操作数、执行时执行时间间及及传送结果传送结果各个阶段所需时间的总和。各个阶段所需时间的总和。39第3章 80 x86的指令系统和寻址方式 判断程序质量的标准判断程序质量的标准l l 程序的正确性程序的正确性 l l 程序的可读性程序的可读性 清晰清晰 l l 程序的执行时间程序的执行时间 l l 程序所占内存大小程序所占内存大小效率效率40第3章 80 x86的指令系统和寻址方式

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁