汇编第3章(1)(精品)

上传人:仙*** 文档编号:244710403 上传时间:2024-10-05 格式:PPT 页数:47 大小:281KB
返回 下载 相关 举报
汇编第3章(1)(精品)_第1页
第1页 / 共47页
汇编第3章(1)(精品)_第2页
第2页 / 共47页
汇编第3章(1)(精品)_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,3.0,预备知识,3.1 80x86,的,寻址方式,3.2,程序占有的空间和时间,3.3 80x86,的指令系统,第,3,章,80x86,的指令系统和寻址方式,3.0,预备知识,(1),指令、指令系统和程序,(2),机器码和机器语言,(3),助记符和汇编语言,(4),高级语言,(5) 8086/8088,指令格式简介,CPU,是一个可以完成一些基本操作的电子器件。,用编码表示,CPU,的,一个基本操作,称为一条,指令,。,全部指令集称为,指令系统,。,指令系统反映,CPU,的基本功能,,,是硬件设计人员和程序员能见到的,机器的主要属性,,,是硬件构成的计算机系统,向外部世界提供的直接界面,。,(1),指令、指令系统和程序,程序,是为要解决的问题编写出来的指令集合,一个,CPU,的指令系统是固定的,,不同类型的,CPU,其指令系统不同,;,同一系列向上兼容。,用户为解决自己的问题所编写的程序称为,源程序,。,(2),机器码和机器语言,应用:显示设备简单的单片机,家用电器、固化在,ROM,上的程序等,机器语言,是机器码及其使用的一组规则。,用机器语言编写的程序称为,目标程序,。,机器语言特点:,CPU,能,直接识别,的唯一语言,面向机器,可直接被计算机执行,执行速度快,占用内存空间小,编程效率低、可读性差、可移值性差,用二进制数编码表示的指令,称为,机器指令,或,机器码,。,例,将地址为,2000H,和,2001H,的两内存单元内容相加,,结果存在地址,2002H,单元中,程序如下:,A0 00 20,02 06 01 20,A2 02 20,数据暂存器,PSW,标志,寄存器,控制电路,指令译码器,AX,BX,CX,DX,SI,DI,BP,SP,寄存器组,指,令,队,列,总线,接口控制电路,运,算,器,地址总线,AB,数据总线,DB,控制总线,CB,地,址,译,码,器,IP,地址加法器,DS,ES,SS,CS,1010 0000,0000 0000,0010 0000,0000 0010,0000 0110,0000 0001,0010 0000,1010 0010,0000 0010,0010 0000,A0,00,20,02,06,01,20,A2,02,20,MOV AL , 2000H,ADD AL , 2001H,MOV 2002H, AL,(3),助记符和汇编语言,用助记符等表示的指令称为,汇编格式指令,例,MOV AL, 0,汇编语言,是汇编格式指令、伪指令及其使用的,一组规则,。,用汇编语言编写的程序称,汇编语言程序,。,助记符,是有助记忆、并能描述指令功能的符号。,通常是指令功能的英文单词的缩写。,例,数的传送指令用助记符,MOV,加法用,ADD,,,转移用,JMP,等,上例,将地址为,2000H,和,2001H,的两内存单元内容相加,,结果存在地址,2002H,单元中。,汇编格式指令与机器指令一一对应,用汇编语言编好的程序,,必须翻译成机器码表示的程序,计算机才能运行。,汇编程序,是将汇编语言程序翻译成机器语言的一种系统程序,。,用机器码编程:,A0 00 20,02 06 01 20,A2 02 20,用汇编语言编写的确程序段为:,MOV AL , var1,ADD AL , var2,MOV var3 , AL,汇编语言和机器语言编写的程序:,面向机器,反映机器运行的实际过程,与计算机的硬件结构和指令系统密切相关,算法是用计算机的指令,寄存器等描述,,,要了解,CPU,的,编程结构、寻址方式、指令系统才能设计程序,占内存少,执行速度快,编写繁琐、调试困难,汇编语言相对于机器语言编写的程序:,汇编语言程序,易读易懂,便于修改。,(4),高级语言,高级语言,是独立于机器、面向过程或对象的语言。,算法是按照人的思维方式给出,比较接近人的自然语言。,上例 高级语言程序段为:,var3 = var1 + var2,由,翻,译程序,将高级语言源程序翻译目标程序,,即用机器码表示的程序,机器才能执行。,(,不同类型机器由于指令系统不同,它们的编译程序不同,),Fortran,、,Basic,、,C,等均是高级语言。,使用高级语言编程,效率高,可读性、可移植性强。,(1),操作码,指明,CPU,要执行什么样的操作。,是一条指令必不可少的部分,用助记符表示,。,指令格式,例,ADD AL,,,10H,数据传送,算术运算,逻辑运算,串操作,控制转移,处理机控制,按功能,指令分六类,(2),操作数,指明参与操作的数据或数据所在的地方。,了解操作数的,来源,、,个数、类型,。,(5)8086/8088,指令格式简介,操作码 操作数,.,操作数,操作数来源,指明操作数所在的地方,有三种来源:,操作数在指令中,称,立即数操作数,如,MOV AL ,9,操作数在寄存器中,称,寄存器操作数,指令中给出用符号表示的寄存器名。,如,MOV,AL, 9,操作数在内存单元中,称,存储器操作数,或,内存操作数,指令中给出该内存单元的地址。用, ,表示存储器操作数,如,MOV AL , 2000H ,操作数个数,按指令格式中,操作数个数的多少分为四类:,无操作数,:,指令只有一个操作码,没有操作数,单操作数,:,指令中给出一个操作数,双操作数,:,指令中给出两个操作数。,三操作数:,指令中给出两个操作数。,无操作数:,指令只有一个操作码,没有操作数。,有两种可能:,有些操作不需要操作数。,如,HLT,,,NOP,等处理机控制指令。,操作数隐含在指令中。,如,AAA , DAA,等调整指令。,单操作数,:,指令中给出一个操作数。,有两种可能:,有些操作只需要一个操作数,如,INC AL,; (,AL,) (,AL,),+ 1,有些操作将另一个操作数隐含在指令中,如,MUL BL,; (,AX,) (,AL,),(,BL,),双操作数,:,指令中给出两个操作数。,如,ADD AL , BL,;,(AL) (AL) + (BL),目的操作数,源操作数,操作后的结果通常存放在目的操作数中。,三操作数,:,指令中给出三个操作数。,如,IMUL BX, DX, 6,;,(BX) (DX) *6,目的操作数,源操作数 立即数,操作后的结果通常存放在目的操作数中。,一地址指令:,INC AX,DEC CX,二地址指令:,MOV AX, 2000H,ADD AH, BL,三地址指令:,IMUL BX,DX,7,操作码 操作数,.,操作数,指令:,通常,指令的第一个字节或头两个字节为指令的操作码和寻址方式,统称为操作码域。,操作码域之后的字节统称为操作数域,(5),指令的格式,指令格式 操作码 操作数,例,ADD AL,,,10H,3.1 80x86,的寻址方式,与数据有关的寻址方式,与转移地址有关的寻址方式,3.1.1,与数据有关的寻址方式,以,MOV,指令为例,1.,立即寻址方式*,操作数在指令中给出,MOV AL, 5,MOV AX, 3064H,*,只能用于,SRC,字段,*,SRC,和,DST,的字长一致,MOV AH, 3064H,适用于给寄存器赋初值,2.,寄存器寻址方式,*,操作数在指定的寄存器中,MOV AX, BX,MOV AL, BH,*,字节寄存器只有,AH AL BH BL CH CL DH DL,*,SRC,和,DST,的字长一致,MOV AH, BX,*,CS,不能用,MOV,指令改变,MOV CS, AX,运算速度快,存储器寻址(除代码段),四种成分的组合,EA,基址,+,(变址*比例因子),+,位移量,位移量:存放在指令中的一个,8,位、,16,位或,32,位的数, 通常是个地址,基 址: 基址寄存器中的内容,通常用来指向数组或字符串的首地址,变 址: 变址寄存器中的内容,通常用来指向数组中的某个元素或字,符串中的某个字符,比例因子:,386+,,值可为,1,,,2,,,4,,,8,,与变址相乘用于访问元素长度,为,2,、,4,、,8,字节的数组,四种成分,16,位寻址,32,位寻址,位移量,0 , 8 , 16,位,0 , 8 , 32,位,基址寄存器,BX ,BP,任何,32,位通用寄存器(包括,ESP,),变址寄存器,SI,DI,除,ESP,以外的,32,位通用寄存器,比例因子,无,1 ,2 ,4 ,8,16,位,/32,位寻址时有效地址的四种成分的组成,默认段选择规则,访问类型,所用段及段寄存器,缺省选择规则,指 令,代码段,CS,用于取指,堆 栈,堆栈段,SS,所有堆栈的进栈与出栈,任何用,ESP,或,EBP,作为基址寄存器的访问,局部数据,数据段,DS,除,相对于堆栈以及串处理指令的目的串以外的所有数据访问,目 的 串,附加段,ES,串处理指令的目的串,段跨越前缀,用于改变系统所指定的默认段选择规则,有三种情况不允许使用段跨越前缀:,1,、串处理指令的目的串必须用,ES,2,、,PUSH,指令的目的和,POP,指令的源必须用,SS,段,3,、指令必须存放在,CS,段中,访问存储器的方式,默认的,段寄存器,可,跨越的,段寄存器,偏移地址,取,指令,CS,无,IP,堆栈操作,SS,无,SP,一般数据访问,DS CS ES SS,有效地址,EA,BP,作为基址的寻址,SS CS DS ES BP,串操作的源操作数,DS CS ES SS SI,串操作的目的操作数,ES,无,DI,段 寄 存 器 的 使 用 规 定,3.,直接寻址方式,*,有效地址,EA,由,指令直接给出,有效地址,EA,:,操作数的偏移地址,物理地址,PA = 16d, (DS) + EA,例,:,MOV AX, ,2000H,EA=2000H,假设,(DS)=3000H,那么,(PA)=32000H,例,:,操作数地址可由变量(符号地址)表示,MOV AH, VALUE (,VALUE DB 10 ),50,30,32000,AH AL,30,50,(AX) = 3050H,3.,直接寻址方式,*,*,隐含的段为数据段,DS,*,可使用,段跨越前缀,MOV AX,ES,:2000H,*,使用变量时,要注意变量的属性,VALUE DB 10,MOV AX, VALUE,MOV AX,WORD PTR,VALUE,*,适于处理单个变量,80x86,规定:,双操作数指令中,只能有一个操作数使用存储器方式,因此,经常有一个变量要送到寄存器。,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),4.,寄存器间接寻址方式,*,*,不允许使用,AX,、,CX,、,DX,存放,EA,MOV AX, CX,*,SRC,和,DST,的字长一致,MOV DL, BX,; BX,指示一个字节单元,MOV DX, BX,; BX,指示一个字单元,*,适于数组、字符串、表格的处理,5.,寄存器相对寻址方式(直接变址寻址),*,例,:,MOV AX, COUNTSI,或,MOV AX, COUNT+SI,假设,(DS)=3000H, (SI)=2000H, COUNT=3000H,那么,PA = 35000H,假设,(35000H)=1234H,那么,(AX)=1234H,*,适于数组、字符串、表格的处理,有效地址,=,(BX),(BP),(SI),(DI),+,8,位,16,位,位移量,6.,基址变址寻址方式,*,MOV AX, BXDI,或,MOV AX, BX+DI,MOV AX, ES:BXSI,*,适于数组、字符串、表格的处理,*,必须是一个基址寄存器和一个变址寄存器的组合,MOV AX, BXBP,MOV AX, SIDI,有效地址,=,(BX),(BP),+,(SI),(DI),7.,相对基址变址寻址方式,*,MOV AX, MASKBXSI,或,MOV AX, MASKBX+SI,或,MOV AX, MASK+BX+SI,*,适于堆栈处理和二维数组处理,有效地址,=,(BX),(BP),+,(SI),(DI),+,8,位,16,位,位移量,例,:,编写一段显示字符串,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,ah, 2,int,21h,;,显示字符,A,.,(,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,int,21h,;,显示一个字符,inc,si,loop next,;,循环指令,(,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,;,循环指令,(5),DOS,显示字符串功能,mov,dx, offset string,;,string,的偏址,dx,;,lea,dx, string,mov,ah, 9,int,21h,;,显示一串字符,比例变址寻址方式,EA= *,比例因子,+,(SI),(DI),8,位,16,位,位移量,例,MOV EAX,COUNTESI*4,适于处理,元素大小为,2,、,4,、,8,字节的,数组,9.,基址比例变址寻址方式,EA=,基址,+ *,比例因子,(SI),(DI),例,MOVE ECX,EAXEDX*8,适于处理,元素大小为,2,、,4,、,8,字节的,数组,10.,相对基址比例变址寻址方式,EA=,基址,+ *,比例因子,+,(SI),(DI),8,位,16,位,位移量,例,MOVE ECX,TABLEEAXEDX*8,适于处理,元素大小为,2,、,4,、,8,字节的二维,数组,3.1.2,与转移地址有关的寻址方式,用来确定,转移指令,及,CALL,指令,的转向地址。,段内寻址,段间寻址,段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址,以,转移(条件转移,/,无条件转移)指令,为例,段内,:,转移指令与转向的目标指令在同一代码段中,(,CS),不变。,段间:,转移指令与转向的目标指令在两个代码段中, (CS),变化。,1.,段内,直接寻址,转向的有效地址,EA =,用指令中提供的转向偏移地址取代,IP,物理地址,= 16d,(CS) +,(IP),新,例,:,JMP AGAIN,(IP),当前,MOV BX, AX,AGAIN: ,例,:,JMP,NEAR PTR,NEXT,近转移,-32768 +32767,JMP,SHORT,NEXT,短转移,-128 +127,(IP),新,(IP),新,2.,段内,间接寻址,转向的有效地址,EA,是一个寄存器或存储单元的内容。,(,可用除立即数以外的任何一种数据寻址方式得到,),物理地址,= 16d,(CS) + EA,例:,(BX)=1256H (SI)=528EH TABLE=20A2H,(DS)=2000H (232F8H)=3280H (264E4H)=2450H,JMP BX ; (IP)=1256H,JMP TABLEBX,JMP,WORD PTR,TABLEBX ; (IP)=3280H,JMP BXSI,JMP,WORD PTR,BXSI ; (IP)=2450H,3.,段间直接寻址,用指令中提供的转向段地址和偏移地址取代,CS,和,IP,。,物理地址,= 16d,(CS) + (IP),例,:,code1 segment,jmp,far,ptr,next,code1 ends,code2 segment,next: .,code2 ends,4.,段间间接寻址,用存储器中的两个相继字的内容取代,CS,和,IP,。,(,存储单元的地址可用除立即数和寄存器以外的任何一种,数据寻址方式得到,),物理地址,= 16d,(CS) + (IP),例:,JMP,DWORD PTR,INTERS+BX,3.2,程序占有的空间和时间,空间,80x86,的机器指令是可变字节指令,即不同指令或不同寻址方式的机器指令长度不同,时间,一条指令的执行时间是,取指令,、,取操作数,、,执行时间,及,传送结果,各个阶段所需时间的总和。,频率与时钟周期(节拍)的关系,频率(,Mhz,),1,时钟周期,(T),判断程序质量的标准,l,程序的正确性,l,程序的可读性 清晰,l,程序的执行时间,l,程序所占内存大小,效率,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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