第3章 指令系统及汇编语言程序.ppt_第1页
第3章 指令系统及汇编语言程序.ppt_第2页
第3章 指令系统及汇编语言程序.ppt_第3页
第3章 指令系统及汇编语言程序.ppt_第4页
第3章 指令系统及汇编语言程序.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 指令系统及汇编语言程序,【本章内容简介】 本章以INTEL8086为核心CPU,介绍其寻址方式、指令系统、汇编语言的基本语法和程序设计的基本方法,然后,在此基础上,简单地介绍了32位机的指令系统。 【本章重点难点】 重点掌握8086的指令系统和汇编语言程序设计的基本方法。,31 8086指令系统概述,3118086指令的基本格式 操作码 目的操作数,源操作数,312 8086指令的寻址方式 8086微处理器支持的操作数类型有两大类:数据操作数和转移地址操作数。 1.数据操作数 (1)立即数(2)寄存器操作数 (3)存储器操作数 2.转移地址操作数 转移地址操作数是指在程序发生转移时,与

2、转移的目标地址有关的操作数。它可以是立即数,也可以是寄存器或存储器操作数的形式。,数据操作数的寻址方式,(1)立即寻址 例如:MOV AX,1234H ;十六进制数1234H作为源操作数,送入AX寄存器,也即是给AX赋值。 (2)寄存器寻址 例如:MOV AX,BX ;将寄存器BX的内容送入AX中 运行结果为:(AX)=(BX) (3)直接寻址 例如:MOV AL,2000H ; 指令中源操作数的寻址方式为直接寻址方式。 将逻辑地址为DS:2000单元内的字节送入AL。,(4)寄存器间接寻址 例如:MOV AX,BX ; 指令中源操作数的寻址方式为寄存器间接寻址方式。 BX内容为有效地址(偏移

3、地址),段地址为默认的数据段地址。 (5)寄存器相对寻址方式 例如:MOV AL,BX+5; 指令中源操作数的寻址方式为寄存器相对寻址方式。 若DS=6000H,BX=2000H,BX的内容加上8位位移量05H作为操作数的有效地址。传送逻辑地址为6000H:2005H单元(物理地址为62005H单元)的一个字节到AL中。,(6)基址加变址寻址方式 例如:MOV AX,BX+SI; 指令中源操作数的寻址方式为基址加变址寻址方式。 BX的内容与SI的内容之和作为源操作数的有效地址,传送数据段中的一个字。 (7)相对基址加变址寻址方式 例如:MOV AH,BX+DI+1234H ; 指令中源操作数的

4、寻址方式为相对基址加变址寻址方式。 BX的内容加上DI的内容再加上位移量1234H作为源操作数的有效地址,传送数据段中的一个字节。,转移地址的寻址方式,(1)段内直接寻址方式 例如:JMP NEAR KEYB ;程序跳转至KEYB处,其距当前指令位置在-128+127字节范围内,故用NEAR表明是短转移。 (2)段内间接寻址方式 例如:JMP BX;转移目标地址为原代码段,有效地址为BX的内容。 若该指令在存储器中的逻辑地址为2000H:3000H,BX=2500H,则执行完该指令后,下一条要执行的指令在2000H:2500H处。 (3)段间直接寻址方式 例如:JMP 3000H:2000H

5、;转移目标地址为3000H:2000H。 (4)段间间接寻址方式 例如:JMP DWORD PTR SI+BX ;取DS段中偏移地址为SI+BX处的双字内容作为新的CS和IP的内容。,321 数据传送类指令,注意:,* 目的操作数不能是立即数,CS,IP寄存器。 * 立即数不能直接给段寄存器赋值,立即数送存储器时,数据类型要匹配。 * 两个存储器之间,两个段寄存器不允许直接传送数据。 * PUSH,POP指令均为单操作数形式,且操作数为字的形式。 * XCHG不能在存储器间直接交换数据,也不能用段寄存器,立即数作为操作数。 * 输入/输出指令用于累加器AL,或AX与外设端口交换数据,8位端口号

6、在指令中直接给出,16位端口号必须由DX给出。 * 除SAHF,POPF外,数据传送指令均不影响标志位。,322 算术运算类指令,注意:,* 算术运算指令中,除两操作数中源操作数为立即数外,必有一操作数在寄存器中,单操作数不能为立即数。 * 操作数的类型表达式或寄存器操作数决定运算为字节或字的形式。 * 算术运算指令一般都会影响标志位。 如果运算结果为0,则ZF=1; 如果运算结果为负,则SF=1; 如果运算结果的低八位中有偶数个1,则PF=1;,323 逻辑运算类指令,324 串操作类指令,注意:,*通过加重复前缀来实现串操作; *可以对字节串进行操作也可对字串进行操作; *所有的串操作指令

7、均用SI对源操作数进行间接寻址,并假定在DS段,用DI为目的操作数进行间接寻址,并假定在ES段,两操作数均为存储器操作数。 *串操作的地址修改与DF位有关,DF=1,则地址按自动减量修改,也即传送从最高地址处开始;DF=0,则地址按自动增量修改,也即传送从最低地址处开始。,325 控制转移类指令,1、无条件转移指令和条件转移指令 (1)无条件转移指令 (2)条件转移指令 2、子程序调用与返回指令。 3、循环控制指令 4、中断指令和中断返回指令,326 处理器控制类指令,33 8086汇编语言的编程格式,331 8086汇编语言的标记和表达式 1、标记: (1)标识符 (2)保留字 (3)界符

8、2、表达式: 1)算术运算符: 2)逻辑运算符: 3)关系运算符 4)分析运算符和综合运算符;,332 8086汇编语言的语句类型和格式,1、8086汇编语言的语句类型 有三种基本语句:指令语句,伪指令语句和宏指令语句。 (1)指令语句就是8086指令系统中的语句,它与机器码一一对应。 例:MOV AX,1234H AND AX,0F0FH (2)伪指令语句是说明性语句,用来为汇编程序提供一些信息。它不产生机器码。 例:DAT1 EQU 60 DAT2 DB 23H (3)宏指令语句是为方便程序设计,用来代替程序中多次重复使用的某程序段的指令,在汇编时展开,产生对应的机器码。,2、8086汇编

9、语言的语句格式 (1)指令语句的格式 例: KK1:MOV AX,1234H;给AX寄存器赋值1234H (2)伪指令语句,伪指令语句:,1标号赋值伪指令EQU 标号 EQU 表达式(常数,数据的地址或已赋过值的旧标号) 例:DAT1 EQU 60;DAT1=60 2定义存储单元伪指令 DB(字节),DW(字),DD(双字),DQ(4个字),DT(10个字)。用来定义数据、字符串或存储单元。,3存储单元类型定义伪指令BYTE(字节),WORD(字),DWORD(双字) 例:MOV BYTE PTR SI,78;对一个字节单元赋值78 MOV WORD PTR SI,78;对一个字单元赋值78

10、4段定义伪指令SEGMENT,ENDS,ASSUME,ORG。 SEGMENT与ENDS成对使用。 格式:段名 SEGMENT 类型 段名 ENDS,ASSUME 格式:ASSUME 段寄存器名:段名1,段寄存器名:段名2, ORG, 定位伪指令,用来规定该语句之后的程序段或数据块的起始地址的偏移地址。 格式:ORG 数值表达式 5定义子程序的伪指令PROC,ENDP,NEAR和FAR 子程序与主程序在同一个段内,则为近调用NEAR,否则为远调用FAR。 格式: 子程序名 PROC NEAR/FOR 子程序名 ENDP,(3)宏指令语句的格式 宏指令语句的一般格式为: 宏指令名 MACRO 形

11、式参数表 宏体 ENDM 取消宏定义伪指令PURGE 格式: PURGE 宏指令名, 注意:宏与子程序的区别 * 宏在汇编时展开,占用内存多,执行速度快。 * 子程序在程序执行时展开,占用内存少,执行速度慢。,333 8086汇编语言的程序结构,;定义堆栈段 名称1SEGMENT ;定义堆栈深度与堆栈段变量 名称1ENDS ;定义数据段 名称2SEGMENT ;定义变量 名称2 ENDS ;定义附加数据段 名称3SEGMENT ;定义变量 名称3 ENDS ;定义代码段,名称4SEGMENT ASSUME CS:名称4,ES:名称3, DS:名称2 ,SS:名称1 START:除代码段外的段地址填装 ;程序主体 子程序1 PROC ;子程序1主体 子程序1 ENDP 子程序N PROC ;子程序N主体 子程序N ENDP 名称4ENDS END START,34 汇编语言程序设计,341 程序设计步骤 通过对项目的分析,建立相应的数学模型。 1依据数学模型及汇编语言提供的基本运算确定相应的算法。 2用流程图形式将算法描述出来。 3编写源程序。 4静态检查。 5上机运行调试。 342 顺序结构与简单程序设计 343 分支结构和分支程序设计 344 循环结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论