书签 分享 收藏 举报 版权申诉 / 35
上传文档赚钱

类型第4章8086汇编语言程序设计-2h课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:3861179
  • 上传时间:2022-10-19
  • 格式:PPT
  • 页数:35
  • 大小:167.57KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第4章8086汇编语言程序设计-2h课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    8086 汇编语言 程序设计 _2h 课件
    资源描述:

    1、 但是,到目前为止,汇编语言到底怎么编程实现,到底是如何控制外部接口的,我们还不清楚呢。从本堂课开始,我们将陆续开始,深入学习8086系统。我们学习了8086CPU、存储器和I/O结构、8086系统指令寻址方式和指令集,从设计角度而言,我们已经把全书的基本内容学习完毕了。第4章 8086汇编语言程序设计v必须知道的几个概念v8086汇编语言的语句v8086汇编中的伪指令v8086汇编中的运算符v汇编语言程序设计v宏定义与宏调用v汇编语言程序设计实例本堂课解决的问题什么是汇编语言、汇编源程序和汇编程序一样吗?汇编又是什么东西?8086汇编语言的语句是如何构成?8086汇编中的伪指令又是什么东东?

    2、8086汇编中的运算符有哪些?8086汇编语言源程序的基本结构必须清楚的几个概念v汇编语言 以指令的助记符、符号地址、标号等书写程序的语言,实际就是机器语言的符号表示。助记符表示指令的操作码和操作数,符号和标号表示地址、变量和常量。v汇编语言源程序 用汇编语言编写的程序,简称源程序。v汇编程序 能将汇编源程序翻译成机器语言的程序。v汇编 使用汇编程序将汇编源程序翻译成机器语言的过程。STACK SEGMENT PARA STACK STACK DB 50 DUP(?)STACK ENDSDATA SEGMENT VAR DB 34DATA ENDSCODE SEGMENT ASSUME CS:

    3、CODE,DS:DATA,SS:STACKSTART PROC FAR PUSH DS MOV AX,0 PUSH AX RETSTART ENDPCODE ENDS END START4.1 8086汇编语言的语句汇编语言的语句 汇编语言由指令性语句和指示性语句组成。指令性语句指令性语句:CPU执行的语句。执行的语句。如:如:MOV AX,BX指示性语句指示性语句:汇编程序执行的语句。:汇编程序执行的语句。如:如:BUF EQU 324.1 8086汇编语言的语句汇编语言的语句 一、指令性语句格式一、指令性语句格式第第3 3章学习的指令均是指令性的章学习的指令均是指令性的STEP:ADD A

    4、X,BX ;加法指令加法指令标号:标号:操作码操作码 操作数操作数1,操作数操作数2 ;注释注释代表了该指令在代码段的偏移地址代表了该指令在代码段的偏移地址4.1 8086汇编语言的语句汇编语言的语句 存储器操作数的属性有三种:存储器操作数的属性有三种:段值属性、段内偏移量段值属性、段内偏移量和类型。和类型。v段值:段的起始基地址,即段基址。v段内偏移量:从段的开始到操作数的偏移字节数。v类型:标号的属性有NEAR和FAR之分;变量的类型有BYTE、WORD、DWORD之分。二、有关属性二、有关属性4.1 8086汇编语言的语句汇编语言的语句 三、指示性语句格式三、指示性语句格式 标识符(名字

    5、)标识符(名字)指示符(伪指令)指示符(伪指令)表达式表达式 BUFF DB 10 DUP(?)ADDR EQU 200 指示性语句有汇编程序执行,不是真正的指示性语句有汇编程序执行,不是真正的CPUCPU执行执行指令,因此,组成语句的指令称为指令,因此,组成语句的指令称为伪指令伪指令或或伪操作伪操作。4.2 80864.2 8086汇编中的伪指令汇编中的伪指令一、符号定义语句 例:例:PORT EQU 1234 BUFF EQU PORT58 MEM EQU DS:BP20H COUNT EQU CX ABC EQU AAA1、等值语句、等值语句 格式:符号名格式:符号名 EQU 表达式表达

    6、式4.2 80864.2 8086汇编中的伪指令汇编中的伪指令一、符号定义语句 意义与意义与EQUEQU相同,唯一区别是等值语句相当相同,唯一区别是等值语句相当于常量初始化,而等号语句相当于变量初始化。于常量初始化,而等号语句相当于变量初始化。2、等号语句、等号语句 格式:格式:NUM34 NUM3414.2 80864.2 8086汇编中的伪指令汇编中的伪指令二、变量定义语句变量定义后,就具有了类型属性和地址属性。变量定义后,就具有了类型属性和地址属性。变量存储低字节在先,高字节在后,低字在先,高字在变量存储低字节在先,高字节在后,低字在先,高字在后。后。符号名符号名 DB 表达式表达式符号

    7、名符号名 DW 表达式表达式符号名符号名 DD 表达式表达式格式:格式:4.2 80864.2 8086汇编中的伪指令汇编中的伪指令二、变量定义语句BUFF DW 1234H,0ABCDH,8EH DW 79DH,7B6AH1、定义数组、定义数组STR DB Welcome!2、定义字符串、定义字符串SUM DD?,?3、定义保留存储单元、定义保留存储单元4.2 80864.2 8086汇编中的伪指令汇编中的伪指令二、变量定义语句复制操作符复制操作符DUP(Duplication)可预置重复的数值)可预置重复的数值。ALL_ZERO DB 0,0,0,0,0用复制操作可改为:用复制操作可改为:

    8、ALL_ZERO DB 5 DUP(0)4、复制操作、复制操作保留存储单元保留存储单元 SUM DB 10 DUP(?)4.2 80864.2 8086汇编中的伪指令汇编中的伪指令二、变量定义语句 LIT DD CYC CYC:MOV AX,BX5、将已定义的地址存入内存单元、将已定义的地址存入内存单元 表示把标号表示把标号CYC的偏移地址和段基址存放在的偏移地址和段基址存放在LIT开始开始的的4个字节单元。个字节单元。4.2 80864.2 8086汇编中的伪指令汇编中的伪指令三、段定义语句1.1.段定义语句格式:段定义语句格式:段名段名 SEGMENT SEGMENT 定位类型定位类型组合

    9、类型组合类型类别类别 段名段名 ENDSENDS如:如:STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK STACK ENDS STACK ENDS4.2 80864.2 8086汇编中的伪指令汇编中的伪指令三、段定义语句1.1.段定义语句格式:段定义语句格式:定位类型定位类型:PAGE PAGE 本段从页的整数边界开始。本段从页的整数边界开始。PARA PARA 节的整数边界(省略时隐含为本类型)。节的整数边界(省略时隐含为本类型)。WORD WORD 字的整数边界开始。字的整数边界开始。BYTE BYTE 字节边界,

    10、即任何地址开始。字节边界,即任何地址开始。4.2 80864.2 8086汇编中的伪指令汇编中的伪指令三、段定义语句2.2.段假设语句段假设语句ASSUME ASSUME 段寄存器名段寄存器名:段名段名,如:如:ASSUME CS:CODE,DS:DATA,SS:STACK,ES:EDATA ASSUME CS:CODE,DS:DATA,SS:STACK,ES:EDATA 这里,这里,ASSUMEASSUME只是指定某段分配给某段寄存器,但并不只是指定某段分配给某段寄存器,但并不把段地址装入段寄存器。把段地址装入段寄存器。段寄存器段寄存器CSCS、SSSS、DSDS、ESES。段名则是通过段名

    11、则是通过SEGMENTSEGMENT定义过的标志符。定义过的标志符。4.2 80864.2 8086汇编中的伪指令汇编中的伪指令三、段定义语句3.3.ORGORG伪指令和地址计数器伪指令和地址计数器$ORG ORG 指明在其后存放的代码或数据,以表达式的值作为起始指明在其后存放的代码或数据,以表达式的值作为起始地址,连续存放数据,除非遇到一个新的地址,连续存放数据,除非遇到一个新的ORGORG语句。语句。$代表当前地址代表当前地址ORG 106ORG 106MOV AX,BX ;MOV AX,BX ;指令存放地址指令存放地址CS:106CS:1064.2 80864.2 8086汇编中的伪指令

    12、汇编中的伪指令三、段定义语句4.4.PUBLIC PUBLIC 伪指令和伪指令和EXTERNEXTERN伪指令伪指令PUBLIC PUBLIC 名字名字,EXTERN EXTERN 名字名字:类型类型,名字名字可以是变量或标号可以是变量或标号PUBLIC PUBLIC 说明本变量或标号可以被其他模块使用说明本变量或标号可以被其他模块使用EXTERN EXTERN 说明本变量或标号是在其他模块中定义的。说明本变量或标号是在其他模块中定义的。4.2 80864.2 8086汇编中的伪指令汇编中的伪指令四、过程定义语句 汇编语言中,用过程的定义实现子程序的功能,即过程就汇编语言中,用过程的定义实现子

    13、程序的功能,即过程就是子程序、子函数。是子程序、子函数。过程名过程名 PROC NEAR/FARPROC NEAR/FAR RET RET过程名过程名 ENDPENDP过程名:子程序入口的符号地址过程名:子程序入口的符号地址NEAR/FARNEAR/FAR:NEARNEAR指明段内调用,指明段内调用,FARFAR指明段间调用。指明段间调用。注意!过程允许嵌套,但不允许交叉。注意!过程允许嵌套,但不允许交叉。4.3 80864.3 8086汇编中的运算符汇编中的运算符 这类运算符必须运用在指示性语句中,构成表达这类运算符必须运用在指示性语句中,构成表达式,共式,共3 3种运算符和种运算符和2 2

    14、种操作符。种操作符。算术运算符算术运算符 、*、/、MODMOD(求余)(求余)逻辑运算符逻辑运算符 ANDAND、OROR、NOTNOT、XORXOR4.3 80864.3 8086汇编中的运算符汇编中的运算符关系运算符关系运算符 EQEQ、NENE、LTLT、GTGT、LELE、GEGEMOV AXMOV AX,10H LT 16H10H LT 16H关系运算符的结果只有真(关系运算符的结果只有真(1 1)和假()和假(0 0)分析分析:10H LT 16H10H LT 16H在汇编时得到结果为在汇编时得到结果为1 1,所以,所以,CPUCPU执执行指令时,行指令时,AXAX1 14.3

    15、80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符 1 1)SEGSEG操作符操作符取变量或标号所在段的取变量或标号所在段的段基址段基址。2 2)OFFSETOFFSET操作符操作符取变量或标号的段内取变量或标号的段内偏移地址偏移地址。4.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符MOV BX,SEG BUFF ;BUFFMOV BX,SEG BUFF ;BUFF是之前定义的变量是之前定义的变量取变量取变量BUFFBUFF所在段的段基址,传送给所在段的段基址,传送给BXBX。MOV BX,OFFSET BUFFMOV BX,OFFSET

    16、BUFF取变量取变量BUFFBUFF的段内偏移地址,传送给的段内偏移地址,传送给BXBX。4.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符MOV BX,SEG BUFFMOV BX,SEG BUFFMOV BX,OFFSET BUFFMOV BX,OFFSET BUFF34HBUFF56H78H2000:01004.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符 3 3)TYPETYPE操作符操作符 取变量或标号的类型。对变量返回字节数,取变量或标号的类型。对变量返回字节数,对标号返回对标号返回1 1(NEARNEAR)或)或2 2

    17、(FARFAR)BUFF DB 24BUFF DB 24MOV AL,TYPE BUFF ;AL=?MOV AL,TYPE BUFF ;AL=?4.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符 4 4)LENGTHLENGTH操作符操作符 对变量结果为对变量结果为1 1,对,对DUPDUP定义的数组给出元素定义的数组给出元素个数。个数。BUFF DB 24 DUPBUFF DB 24 DUP(0 0)MOV AL,LENGTH BUFF ;AL=?MOV AL,LENGTH BUFF ;AL=?4.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作

    18、符分析操作符 5 5)SIZESIZE操作符操作符 对对DUPDUP定义的数组给出所有元素分配的内存定义的数组给出所有元素分配的内存字节数目。字节数目。显然,显然,SIZESIZETYPETYPELENGTHLENGTH4.3 80864.3 8086汇编中的运算符汇编中的运算符分析操作符分析操作符 5 5)SIZESIZE操作符操作符BUFF DB 10 DIP(?)MOV CX,LENGTH BUFMOV CX,SIZE BUF4.3 80864.3 8086汇编中的运算符汇编中的运算符合成操作符(综合运算符)合成操作符(综合运算符)1 1)PTRPTR运算符运算符 类型类型 PTR PT

    19、R 表达式表达式 对存储器操作数,指明无论原来为何种类型,对存储器操作数,指明无论原来为何种类型,现在以现在以PTRPTR前面的类型为准。前面的类型为准。MOV BX,WORD PTR SI4.3 80864.3 8086汇编中的运算符汇编中的运算符合成操作符(综合运算符)合成操作符(综合运算符)2 2)THISTHIS运算符运算符 THIS THIS 类型(或属性)类型(或属性)建立一个与下一个存储单元地址相同的变量建立一个与下一个存储单元地址相同的变量或标号,类型取决于或标号,类型取决于THISTHIS后的类型或属性。后的类型或属性。FIRST EQU THIS BYTESECOND DW

    20、 100 DUP (?)4.4 80864.4 8086汇编程序设计汇编程序设计汇编语言程序设计的基本步骤汇编语言程序设计的基本步骤分析问题分析问题 绘制流程图绘制流程图 编写程序编写程序 检查和调试检查和调试 汇编语言程序设计的调试的基本步骤?汇编语言程序设计的调试的基本步骤?典型的汇编语言程序框架:典型的汇编语言程序框架:DATA SEGMENT;定义数据段;定义数据段VAL1 DB 12H,8EH ;定义变量;定义变量 DATA ENDS ;数据段结束;数据段结束CODE SEGMENT;定义代码段;定义代码段 ASSUME DS:DATA,CS:CODE ;段属性说明;段属性说明START:MOV AX,DATA;初始化;初始化DS MOV DS,AX MOV AX,4C00H;返回;返回DOS INT 21H RETCODE ENDS ;代码段结束;代码段结束 END START ;源程序结束;源程序结束4.4 8086汇编程序设计汇编程序设计汇编语言程序基本结构汇编语言程序基本结构1 1、顺序结构、顺序结构2 2、分支结构、分支结构3 3、当型循环结构、当型循环结构4 4、直到型循环结构、直到型循环结构5 5、子程序结构、子程序结构

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第4章8086汇编语言程序设计-2h课件.ppt
    链接地址:https://www.163wenku.com/p-3861179.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库