汇编语言程序设计 .ppt

上传人(卖家):hwpkd79526 文档编号:6040518 上传时间:2023-05-23 格式:PPT 页数:52 大小:234.50KB
下载 相关 举报
汇编语言程序设计 .ppt_第1页
第1页 / 共52页
汇编语言程序设计 .ppt_第2页
第2页 / 共52页
汇编语言程序设计 .ppt_第3页
第3页 / 共52页
汇编语言程序设计 .ppt_第4页
第4页 / 共52页
汇编语言程序设计 .ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、14.1 概述概述 4.2 汇编语言源程序的程序结构汇编语言源程序的程序结构 4.2.1汇编语言源程序结构特点汇编语言源程序结构特点 4.2.2 源程序与源程序与PC DOS 的接口的接口 4.3 汇编语言的语句汇编语言的语句 4.3.1 语句的种类语句的种类 4.3.2 语句格式语句格式 4.3.3 语句中的操作数语句中的操作数4.4 汇编语言的伪指令语句汇编语言的伪指令语句 4.4.1 基本伪指令语句基本伪指令语句 4.4.2 80X86/Pentium扩展伪指令扩展伪指令 4.5 汇编语言程序设计基础汇编语言程序设计基础 4.5.1 概述概述 4.5.2 程序的基本结构程序的基本结构 4

2、.5.3 程序设计基本方法程序设计基本方法 4.5.4 子程序设计与调用设计子程序设计与调用设计4.6 模块化程序设计技术模块化程序设计技术 4.6.1 概述概述 4.6.2 程序中模块间的关系程序中模块间的关系 4.6.3 模块化程序设计举例模块化程序设计举例 4.7 实用程序设计举例实用程序设计举例 2主要内容n汇编语言源程序的结构汇编语言源程序的结构n汇编语言语句格式汇编语言语句格式n伪指令伪指令n功能调用功能调用n汇编语言程序设计汇编语言程序设计34.1 概述了解:了解:n计算机的三种语言计算机的三种语言n源程序的结构源程序的结构n汇编语言语句格式汇编语言语句格式4计算机设计语言机器语

3、言机器语言汇编语言汇编语言高级语言高级语言面向机器面向机器 的语言的语言机器语言机器语言汇编语言汇编语言高级语言高级语言5汇编程序n汇编语言源程序汇编语言源程序用助记符编写用助记符编写源程序的编译程序源程序的编译程序汇编程序汇编程序汇编语言汇编语言源程序源程序机器语言机器语言目标程序目标程序6汇编语言程序设计与执行过程n输入汇编语言源程序输入汇编语言源程序 源文件源文件.ASMn汇编(编译)汇编(编译)目标文件目标文件.OBJn链接链接 可执行文件可执行文件.EXEn调试调试 最终程序最终程序7汇编语言程序设计上机过程编辑程序编辑程序编辑编辑汇编程序汇编程序汇编汇编连接程序连接程序连接连接84

4、.2 汇编语言源程序的程序结构汇编语言源程序的程序结构数据段名数据段名 SEGMENT 数据段名数据段名 ENDS附加段名附加段名 SEGMENT 附加段名附加段名 ENDS堆栈段名堆栈段名 SEGMENT 堆栈段名堆栈段名 ENDS代码段名代码段名 SEGMENT 代码段名代码段名 ENDS END 94.3 汇编语言的语句指令语句指令语句伪指令语句伪指令语句CPU执行的语句,执行的语句,能够生成目标代码能够生成目标代码CPU不执行,而由汇不执行,而由汇编程序执行的语句,编程序执行的语句,不生成目标代码不生成目标代码4.3.1语句的种类语句的种类104.3 汇编语言的语句(续)指令语句:指令

5、语句:标号:标号:前缀前缀 助记符助记符 操作数操作数,操作数操作数 ;注释;注释指令的符号地址指令的符号地址标号后要有冒号标号后要有冒号操作码操作码注释前加分号注释前加分号4.3.2 语句格式语句格式11伪指示语句格式名字名字 伪指令助记符伪指令助记符 操作数操作数,操作数,操作数,;注释;注释变量的符号地址变量的符号地址其后不加冒号其后不加冒号指示性语句中至指示性语句中至少有一个操作数少有一个操作数12标号、名字n标号后有冒号,在指令性语句前;名字后不加标号后有冒号,在指令性语句前;名字后不加冒号,在指示性语句前。冒号,在指示性语句前。n英文字母、数字及专用字符组成英文字母、数字及专用字符

6、组成,最大长度不最大长度不能超过能超过3131个个,且不能由数字打头且不能由数字打头,不能用保留字不能用保留字(如寄存器名如寄存器名,指令助记符指令助记符,伪指令伪指令)。13操作码指令码指令码 命令命令CPU要完成的操作要完成的操作伪指令助记符伪指令助记符指示汇编程序要完成的操作。指示汇编程序要完成的操作。用来定义变量用来定义变量,分配存储单元分配存储单元,指示程序开始和结束等指示程序开始和结束等14注 释n用分号作为注释的开始;用分号作为注释的开始;n用于说明程序或语句的功能,以便于用于说明程序或语句的功能,以便于阅读和理解阅读和理解154.3.3 语句中的语句中的操作数常量常量寄存器寄存

7、器存储器存储器表达式表达式16常 量n数字常量数字常量n字符串常量:用引号引起的字符或字符串常量:用引号引起的字符或字符串字符串n例:例:A,ABCD汇编时被译成对应的汇编时被译成对应的ASCII码码17变 量n代表内存中的数据区,程序中视为存储器代表内存中的数据区,程序中视为存储器操作数操作数n变量的属性:变量的属性:段段 值值 变量所在段的段地址变量所在段的段地址 偏移量偏移量 变量单元地址与段首地址之变量单元地址与段首地址之 间的位移量。间的位移量。类类 型型 字节型、字型和双字型字节型、字型和双字型18五、表达式算术运算算术运算逻辑运算逻辑运算关系运算关系运算取值运算和属性运算取值运算

8、和属性运算其它运算其它运算19算术运算和逻辑运算符n算术运算符算术运算符+,-,*,/,MODn逻辑运算符逻辑运算符 AND,OR,NOT,XORn例:例:MOV AL,8 AND 4 MOV AL,8+4-120关系运算符n参与关系运算的必须是两个数值参与关系运算的必须是两个数值n关系不成立,结果为关系不成立,结果为0;n关系成立,结果为关系成立,结果为FFFFH。EQNELTGTLEGE21取值运算符取值取值运算符运算符 用于分析存储器操作数的属性用于分析存储器操作数的属性22取值运算符OFFSET 取得其后变量或标号的偏移地址取得其后变量或标号的偏移地址SEG 取得其后变量或标号的段地址

9、取得其后变量或标号的段地址TYPE 取取LENGTH 取所定义存储区的长度取所定义存储区的长度SIZE 取所定义存储区的字节数取所定义存储区的字节数23取值运算符例 MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA等价于等价于24取值运算符例n若若BUFFER存储区是用如下伪指令定义:存储区是用如下伪指令定义:BUFFER DW 200 DUP(0)BUFFER DW 200 DUP(0)则:则:TYPETYPE BUFFER BUFFER 等于等于2 2 LENGTH BUFFERLENGTH BUFFER等于等于200200

10、SIZE BUFFERSIZE BUFFER等于等于40040025属性运算符属性属性运算符运算符PTR 用于指定其后存储器操作数的类型用于指定其后存储器操作数的类型例:例:MOV BYTR PTRBX,12H26其它运算符n方括号:方括号:方括号中内容为操作数的偏移地址方括号中内容为操作数的偏移地址n段重设符段重设符 段寄存器名:段寄存器名:用于修改默认的段基地址用于修改默认的段基地址274.4 汇编语言的伪指令掌握:掌握:n伪指令的格式及实现的操作伪指令的格式及实现的操作n伪指令的应用伪指令的应用28伪指令n由汇编程序执行的由汇编程序执行的“指令系统指令系统”n用于定义变量、分配存储区、定

11、义逻用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等辑段、指示程序开始和结束等294.4.1 基本伪指令语句数据定义伪指令数据定义伪指令符号定义伪指令符号定义伪指令段定义伪指令段定义伪指令结束伪指令结束伪指令过程定义伪指令过程定义伪指令宏命令伪指令宏命令伪指令301.数据定义伪指令n用于定义数据区中变量的类型用于定义数据区中变量的类型n格式:格式:变量名变量名 伪指令助记符伪指令助记符 操作数,操作数,;注释;注释某些情况某些情况下可省略下可省略可选可选311.数据定义伪指令伪指令助记符伪指令助记符nDB 定义的变量为字节型定义的变量为字节型nDW 定义的变量为字类型(双字节)定义的

12、变量为字类型(双字节)nDD 定义的变量为双字型(定义的变量为双字型(4字节)字节)nDQ 定义的变量为定义的变量为4字型(字型(8字节字节)nDT 定义的变量为定义的变量为10字节型字节型32数据定义伪指令例nDATA1 DB 11H,22H,33H,44HnDATA2 DW 11H,22H,3344HnDATA3 DD 11H*2,22H,33445566H以上变量在内存以上变量在内存中的存放形式中的存放形式33数据定义伪指令n伪指令的性质决定所定义变量的属性;伪指令的性质决定所定义变量的属性;n定义字符串必须用定义字符串必须用DB伪指令伪指令n例:例:DATA1 DB ABCD,66HA

13、BCD41H42H43H44H66H34重复操作符n为一个数据区的各单元设置相同的初值为一个数据区的各单元设置相同的初值n格式:格式:变量名变量名 伪指令助记符伪指令助记符 n DUP(初值,初值,)n例:例:BW 20 DUP(0)DB 3 DUP(22H,11H,?),?)随机数随机数35用?预留存储空间nMEM1 DB 34H,A,?,?,?,?,?,?DW 20 DUP(?)(?)预留预留40个字节单元个字节单元36 符号定义伪指令n格式:格式:符号名符号名 EQUEQU 表达式表达式n操作:操作:用符号名取代后边的表达式,不可重新定义用符号名取代后边的表达式,不可重新定义n例:例:C

14、ONSTANTCONSTANTEQUEQU100100 VAR EQU 30H+99HVAR EQU 30H+99HEQU说明的表达式不占用内存空间说明的表达式不占用内存空间37 段定义伪指令n说明逻辑段的起始和结束;说明逻辑段的起始和结束;n说明不同程序模块中同类逻辑段之间的说明不同程序模块中同类逻辑段之间的联系形态联系形态38段定义伪指令段名段名 SEGMENT SEGMENT 定位类型定位类型 组合类型组合类型 类类别别 段名段名 ENDSENDS说明逻辑说明逻辑段的起点段的起点说明不同模块中同名说明不同模块中同名段的组和连接方式段的组和连接方式39定位类型nPARA:段的起点从节边界开

15、始段的起点从节边界开始 (16个字节为个字节为1节)节)nBYTE:段的起点从存储器任何地址开始段的起点从存储器任何地址开始nWORD:段的起点从偶地址开始段的起点从偶地址开始nPAGE:段的起点从页边界开始段的起点从页边界开始 (256个字节为个字节为1页)页)40组合类型与其它模块中的同名段在满足定位类型的前提下与其它模块中的同名段在满足定位类型的前提下具有的组合方式:具有的组合方式:nNONE:不组合不组合nPUBLIC:依次连接(顺序由依次连接(顺序由LINK程序确定)程序确定)nCOMMON:覆盖连接覆盖连接nSTACK:堆栈段的依次连接堆栈段的依次连接nAT 表达式:段定义在表达式

16、值为段基的节边界表达式:段定义在表达式值为段基的节边界nMEMORY:相应段在同名段的最高地址处。相应段在同名段的最高地址处。41定位伪指令ORG-段内程序代码或变量的起始偏移地址段内程序代码或变量的起始偏移地址n格式:格式:ORG 表达式表达式n例:例:ORG 2000H计算值为计算值为非负常数非负常数42定义模块伪指令nNAME-为目标程序设定一个名字为目标程序设定一个名字 格式:格式:NAME 模块名模块名nTITLE-为程序清单指定打印标题为程序清单指定打印标题 格式:格式:TITLE 标题名标题名可以缺省可以缺省43类别n不同模块连接时将相同类别的段放不同模块连接时将相同类别的段放在

17、连续的内存区域中在连续的内存区域中44段定义伪指令例DATA SEGMENT PUBLIC CODEMEM1 DB 11H,22HDATA ENDS45段寻址伪指令n说明所定义逻辑段的性质说明所定义逻辑段的性质n格式格式 ASSUME 段寄存器名:段名段寄存器名:段名 ,段寄存器名:段名,段寄存器名:段名,46结束伪指令n表示源程序结束表示源程序结束n格式:格式:END 标号标号47一个完整源程序结构例DSEG SEGMENTDATA1 DB 1,2,DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)(?)ESEG ENDSSSEG SEGMENT

18、 STACK STACK DB 200 DUP(?)(?)SSEG ENDS48一个完整源程序结构例 CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,SSEG MOV SS,AX CSEG ENDS END START源程序源程序 代码代码49 过程和宏定义伪指令n用于定义一个过程体用于定义一个过程体n格式:格式:过程名过程名 PROC NEAR/FAR RET 过程名过程名 ENDP过程入口的符号地址过程入口的符号地址P13

19、2例例50 过程和宏定义伪指令n宏命令宏命令-源程序中由汇编程序识别的具源程序中由汇编程序识别的具有有 独立功能的一段程序代码独立功能的一段程序代码n格式:格式:宏命令名宏命令名 MACRO ENDM宏体宏体P133例例51 宏与子程序的比较宏与子程序的比较比较比较n仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变n通过形参、实参结合实现参数传递,简捷直观、灵活多变n还是目标程序级的简化:子程序调用在执行时由CALL指令转向、RET指令返回;形成的目标代码较短,执行速度减慢n需要利用寄存器、存储单元或堆栈等传递参数宏宏子程序子程序52n 宏展开宏展开:汇编程序会把宏调用按宏定义展开。:汇编程序会把宏调用按宏定义展开。例如:例如:宏定义为:宏定义为:DISPLAY MACRO string LEA DX,string MOV AH,9 INT 21H ENDM 程序中宏调用:程序中宏调用:DISPLAY ERROR_MESSAGE DISPLAY EXIT_MESSAGE 汇编后的结果:汇编后的结果:(带有带有+号的指令为宏展开后的结果号的指令为宏展开后的结果)+LEA DX,ERROR_MESSAGE +MOV AH,9 +INT 21H +LEA DX,EXIT_MESSAGE +MOVAH,9 +INT 21H

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(汇编语言程序设计 .ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|