欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微机原理与接口技术第2版第04章8086汇编语言程序设计.ppt

    • 资源ID:65287066       资源大小:437.50KB        全文页数:48页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理与接口技术第2版第04章8086汇编语言程序设计.ppt

    微机原理与接口技术第2版第04章8086汇编语言程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望几个概念n n汇编语言n n汇编语言源程序n n汇编n n汇编程序418086汇编语言的语句汇编语言由指令性语句和指令性语句组成汇编语言由指令性语句和指令性语句组成n n一、指令性语句格式一、指令性语句格式 标号:标号:操作码操作码操作数操作数1 1,操作数操作数22;注注释释 n n二、指示性语句格式二、指示性语句格式 标识符(名字)标识符(名字)指示符(伪指令)指示符(伪指令)表达式表达式 n n三、有关属性三、有关属性存存储储器器操操作作数数的的属属性性有有三三种种:段段值值、段段内内偏偏移移量量和类型。和类型。428086汇编中的伪指令n n一、符号定义语句uu1 1、等值语句、等值语句 格式:符号名格式:符号名 EQUEQU表达式表达式例:例:PORTPORTEQU1234EQU1234 BUFFBUFF EQUPORTEQUPORT5858 MEMMEM EQUDS:BPEQUDS:BP20H20H COUNTEQUCXCOUNTEQUCX ABCABC EQUAAAEQUAAA2、等号语句格式:NUM34NUM341n n二、变量定义语句格式:符号名DB/DW/DD表达式uu1、定义一组数据例例1 1:BUFFDW1234H,0ABCDH,8EHBUFFDW1234H,0ABCDH,8EH DW79DH,7B6AHDW79DH,7B6AHuu2、定义一串字符例例2 2:STRDBWelcome!STRDBWelcome!uu3、定义保留存储单元例例3 3:SUMDW?,SUMDW?,?uu4、复制操作复制操作符复制操作符DUPDUP(DuplicationDuplication)可预置重复的数值可预置重复的数值例例4 4:ALL_ZERODB0ALL_ZERODB0,0 0,0 0,0 0,0 0用复制操作可改为:用复制操作可改为:ALL_ZERODB5DUPALL_ZERODB5DUP(0 0)uu5 5、将已定义的地址存入内存单元 例例5 5:LITDDCYCLITDDCYCCYC:MOVAX,BXCYC:MOVAX,BXn n三、段定义语句uu1 1、段定义语句格式:段定义语句格式:段名段名 SEGMENTSEGMENT定位类型定位类型组合类型组合类型类别类别 段名段名 ENDSENDS只需要掌握只需要掌握 段名段名 SEGMENTSEGMENT 段名段名 ENDSENDSuu2、段假设语句ASSUMEASSUME段寄存器名:段名段寄存器名:段名,uu3、ORG伪指令、地址计数器$ORGORG伪指令格式:伪指令格式:ORGORG uu4、END表示源代码结束格式为:END常数或表达式.n n四、过程定义语句过程名过程名 PROCNEAR/FARPROCNEAR/FARRETRET过程名过程名 ENDPENDP438086汇编中的运算符一、常用运算符1、算术运算符 (加加)、(减减)、*(乘乘)、/(除)、(除)、MOD(求余)。求余)。2、逻辑运算符AND、OR、XOR、NOT3、关系运算符EQEQ(相等)、相等)、NENE(不等、)不等、)LTLT(小于)、小于)、GTGT(大于)、大于)、LELE(小于等于)、小于等于)、GEGE(大于等于)。大于等于)。关系成立,全关系成立,全1 1关系不成立,全关系不成立,全0 0例:例:例:例:MOV DL,10H LT 16MOV DL,10H LT 16 MOV DL,0 MOV DL,0 例:例:例:例:AND AX,555 GT 222AND AX,555 GT 222 AND AX,0FFFFH AND AX,0FFFFH二、常用的操作符4、分析操作符1)SEG操作符例:例:MOV AX,SEG BUFF2)OFFSET操作符 例:例:MOV BX,OFFSET BUFF3)TYPE操作符 对于变量有对于变量有对于变量有对于变量有3 3种:种:种:种:1 1 字节型;字节型;字节型;字节型;2 2 字型;字型;字型;字型;4 4 双字型双字型双字型双字型;对于标号有对于标号有对于标号有对于标号有2 2种:种:种:种:1 1 NEARNEAR(段内)段内)段内)段内),2 2 FARFAR(段间)。段间)。段间)。段间)。例:例:例:例:BUFF DB 20HBUFF DB 20H MOV BX,TYPE BUFF MOV BX,TYPE BUFF MOV BX,01 MOV BX,014)LENGTH操作符5)SIZE操作符 SIZETYPELENGTH例:例:BUFF DB 10DIP(?)MOV CX,LENGTH BUF MOV CX,10 MOV CX,SIZE BUF MOV CX,205、综合运算符(合成操作符)功能:1、由已有的操作数建立新的操作数;2、新操作数和已有的操作数类型不一样1 1)PTRPTR运算符运算符格式:格式:类型类型 PTRPTR表达式表达式例:例:例:例:INC WORD PTR BX INC WORD PTR BX wxwxdw 1234hdw 1234hmov al,byte ptr wxmov al,byte ptr wxmov ah,byte ptr wx+1mov ah,byte ptr wx+12 2)THISTHIS操作符操作符格式:格式:THISTHIS类型类型(或属性或属性)例:例:例:例:FIRST EQU THIS BYTEFIRST EQU THIS BYTE SECOND DW 100 DUP SECOND DW 100 DUP (?)44汇编语言程序设计常用的汇编语言程序框架:常用的汇编语言程序框架:常用的汇编语言程序框架:常用的汇编语言程序框架:DATADATA SEGMENT SEGMENT;定义数据段定义数据段定义数据段定义数据段VAL1 DB 12H,8EH VAL1 DB 12H,8EH ;定义变量定义变量定义变量定义变量 DATADATA ENDS ENDS ;数据段结束数据段结束数据段结束数据段结束 CODE CODE SEGMENT SEGMENT;定义代码段定义代码段定义代码段定义代码段 ASSUME DS:DATA,CS:CODE ASSUME DS:DATA,CS:CODE;段属性说明段属性说明段属性说明段属性说明 START:MOV AX,DATASTART:MOV AX,DATA;初始化初始化初始化初始化DSDS MOV DS,AX MOV DS,AX MOV AX,4C00H MOV AX,4C00H;返回返回返回返回DOSDOS INT 21H INT 21H CODE ENDSCODE ENDS ;代码段结束代码段结束代码段结束代码段结束 END START END START ;源程序结束源程序结束源程序结束源程序结束n n特点uu程序分段uu语句由指令性和指示性语句组成uu两种程序框架框架一:框架一:框架一:框架一:DATADATA SEGMENT SEGMENT;定义数据段定义数据段定义数据段定义数据段VAL1 DB 12H,8EH VAL1 DB 12H,8EH ;定义变量定义变量定义变量定义变量 DATADATA ENDS ENDS ;数据段结束数据段结束数据段结束数据段结束 CODE CODE SEGMENT SEGMENT;定义代码段定义代码段定义代码段定义代码段 ASSUME DS:DATA,CS:CODE ASSUME DS:DATA,CS:CODE;段属性说明段属性说明段属性说明段属性说明 START:MOV AX,DATASTART:MOV AX,DATA;初始化初始化初始化初始化DSDS MOV DS,AX MOV DS,AX ;填写代码填写代码填写代码填写代码 MOV AX,4C00H MOV AX,4C00H;返回返回返回返回DOSDOS INT 21H INT 21H CODE ENDSCODE ENDS ;代码段结束代码段结束代码段结束代码段结束 END START END START ;源程序结束源程序结束源程序结束源程序结束框架二:框架二:框架二:框架二:DATADATA SEGMENT SEGMENT;定义数据段定义数据段定义数据段定义数据段VAL1 DB 12H,8EH VAL1 DB 12H,8EH ;定义变量定义变量定义变量定义变量 DATADATA ENDS ENDS ;数据段结束数据段结束数据段结束数据段结束 CODE CODE SEGMENT SEGMENT;定义代码段定义代码段定义代码段定义代码段MAINMAIN PROC FAR PROC FAR ASSUME DS:DATA,CS:CODE ASSUME DS:DATA,CS:CODE;段属性说明段属性说明段属性说明段属性说明 START:PUSH DSSTART:PUSH DS MOV AX,0 MOV AX,0 PUSH AX PUSH AX MOV AX,DATA MOV AX,DATA MOV DS,AX MOV DS,AX ;填写代码填写代码填写代码填写代码 RET RETMAINMAIN ENDP ENDP CODE ENDSCODE ENDS ;代码段结束代码段结束代码段结束代码段结束 END START END START ;源程序结束源程序结束源程序结束源程序结束一、汇编语言程序设计基本步骤1.1.分析问题,确定模型2.2.确定算法3.3.绘制流程图4.4.编写程序5.5.检查和调试二、汇编语言程序的基本结构1、顺序结构举例n n把al内容除2,并四舍五入n n完成x1*x2x3x1:bytex2:wordx334bitn n2、分支结构举例n n实现n n用查表法确定分支a、对8种产品进行编号0,1,7b、每一个编号对应一个入口地址proc0,proc1,proc7步骤:a、把入口地址放在Table开始的内存单元;b、根据key内容进行查表实现分支转移3、循环结构举例n n例1、计算y0241998ydxaxn n查找数组中是否由关键字,有:变量dd11;dd2关键字偏移量无:变量dd10uu方法一、用loop指令uu方法二、用loopnz(loopne)指令Call proc1retn n实现方法uu主程序有调用指令calluu子程序有返回指令retn n特点uuCall指令与ret缺一不可uu现场保护uu入口出口参数设置n n举例编写AX*10AX子程序n n子程序编写子程序编写uu1 1、子程序组成、子程序组成t t使用说明使用说明a a、子程序功能子程序功能b b、使用寄存器情况使用寄存器情况c c、入口出口参数入口出口参数t t程序体程序体入口出口参数传递入口出口参数传递现场保护现场保护功能程序段功能程序段;这是一个乘;这是一个乘10子程序子程序;使用寄存器;使用寄存器AX;入口:入口:AX,出口:出口:AXmul10proc farpush bx;保护现场保护现场pushfadd ax,ax;2axmov bx,ax;2axbxadd ax,ax;4axadd ax,ax;8axadd ax,bx;10axpopf;恢复现场恢复现场pop bxretmul10endp功能程序段uu2 2、现场保护和入口出口参数传递、现场保护和入口出口参数传递t t(1 1)、现场保护)、现场保护方案一:在子程序中保护方案一:在子程序中保护灵活,不方便灵活,不方便方案二:在主程序中保护方案二:在主程序中保护方便,不灵活方便,不灵活t t(2 2)、参数传递)、参数传递寄存器传递寄存器传递变量传递变量传递堆栈传递堆栈传递n n举例uu1、数组元素求和uu2、计算N!t t(1)如果AL0,则结果为1;t t(2)如果AL!0,在堆栈中形成n,n1,n2,1;t t(3)从堆栈中推出1,2,n1,n2,计算n!4.4系统调用n n一、PCDOS执行流程BIOSIBMBIOIBMDOS键盘命令命令处理程序文件管理基本输入/输出BIOS用户程序用户程序ROMIBMBIOIBMDOSn n二、DOS系统子程序功能uu1、磁盘管理uu2、内存管理uu3、系统输入/输出共87个子程序n n三、系统功能调用对87个子程序进行编号,根据编号进行相关处理格式1、入口参数2、编号ah3、INT21H编号ahINT21ah=11号调用ah=22号调用n n常用的系统调用uu1、1号调用键盘输入uu2、8号调用键盘输入uu3、6号调用显示及输入uu4、9号调用输出字符uu5、10号调用输入字符串4.5宏定义与宏调用n n一、宏定义和宏调用一、宏定义和宏调用uu1 1、格式、格式宏指令名宏指令名 macromacro参数表参数表;宏定义体宏定义体endmendmuu2 2、优点、优点t t缩短源程序长度,但不减少代码长度;缩短源程序长度,但不减少代码长度;t t程序易读程序易读uu3 3、参数可以是多种形式、参数可以是多种形式n n二、宏定义取消伪操作二、宏定义取消伪操作格式格式 purgepurge宏命令名宏命令名1 1,宏命令名,宏命令名2 2,n n三、重复伪操作三、重复伪操作格式格式 reptrept;重复块;重复块endmendmn n四、条件汇编格式if表达式elseendif

    注意事项

    本文(微机原理与接口技术第2版第04章8086汇编语言程序设计.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开