【教学课件】第3章汇编语言程序设计.ppt
《【教学课件】第3章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章汇编语言程序设计.ppt(185页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学第第3章章汇编语言程序设计汇编语言程序设计3.1 3.1 概述概述指令:指令:计算机完成某种操作的命令计算机完成某种操作的命令程序:程序:完成某种功能的指令序列完成某种功能的指令序列软件:软件:各种程序总称各种程序总称机器代码,汇编语
2、言程序,汇编程序机器代码,汇编语言程序,汇编程序汇编语言程序建立步骤:汇编语言程序建立步骤:()用编辑程序建立()用编辑程序建立.ASM.ASM源文件源文件()用()用LINKLINK程序把程序把.ASM.ASM文件转换为文件转换为OBJOBJ文件文件()用用LINKLINK程程序序把把.OBJ.OBJ文文件件转转换换为为.EXE.EXE文文件件,或用或用EXEEXEBINBIN程序把程序把.EXE.EXE文件转换为文件转换为.COM.COM文件文件()在()在DOSDOS下直接键入下直接键入.EXE.EXE文件或文件或.COM.COM文件的文件的文件名就可运行该程序文件名就可运行该程序 计算
3、机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学3.2 3.2 语句格式语句格式语句格式语句格式:名字名字 操作符操作符 操作数操作数1 1,操作数,操作数2 2 ;注释;注释 1 1名字名字一种符号地址一种符号地址组成:组成:A AZ Z,a az z,0 09 9,专用符号?、,专
4、用符号?、.、_ _、$限制:限制:第一个字符不能为数字第一个字符不能为数字 “.”“.”必须为第一个字符必须为第一个字符 前前3131个字符有效个字符有效 不能为关键字不能为关键字类型:类型:标号:指令符号地址标号:指令符号地址 变量:数据符号地址变量:数据符号地址2 2操作符操作符组成:组成:CPUCPU指令,伪指令,宏指令指令,伪指令,宏指令3 3操作数操作数指定参与操作的数据,或数据所在单元地址指定参与操作的数据,或数据所在单元地址4 4注释注释说明程序、指令功能,增加程序可读性说明程序、指令功能,增加程序可读性 计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE
5、 AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学3.3 3.3 伪指令伪指令 功功能能:指指示示汇汇编编程程序序完完成成规规定定的的操操作作,如如选选择择处处理器,定义数据,分配存储器等。理器,定义数据,分配存储器等。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE
6、AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学一、程序开始与结束一、程序开始与结束1程序开始:程序开始:可以用可以用name,title给程序起名。给程序起名。格式:格式:NAMEmodule_name汇汇编编程程序序以以模模块块名名作作为为模模块块的的名名字字,若若未未使使用用NAME,则则可可用用TITLE给程序指定标题给程序指定标题格式:格式:TITLEtext文文本本在在每每一一页页上上打打印印出出来来,
7、若若没没有有NAME,则则text的的前前6个个字字符符为为模块名,模块名,text最多为最多为60个字符。个字符。若未使用若未使用NAME、TITLE,则源文件名为模块名。,则源文件名为模块名。2程序结束:程序结束:表示原程序结束,不可缺,源程序的最后一条语句。表示原程序结束,不可缺,源程序的最后一条语句。格式:格式:ENDlabel标标号号指指示示程程序序开开始始执执行行的的起起始始地地址址,多多个个模模块块连连接接,主主程程序序用用标标号,其他程序不用,主程序缺省值为代码段第一条指令。号,其他程序不用,主程序缺省值为代码段第一条指令。3MASM6.0定义的入口点、出口点定义的入口点、出口
8、点入入口口点点:.STARUP;产产生生设设置置DS、SS、SP代代码码,此此时时,END不不用用标号。标号。出口点:出口点:.EXIT;返回操作系统,常用值为;返回操作系统,常用值为0。例:例:.STARUP.EXIT0END计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学二、处
9、理器选择二、处理器选择功能:功能:选择对应的指令集,也即对应的汇编执行语句集选择对应的指令集,也即对应的汇编执行语句集放在程序最前面放在程序最前面缺省值为缺省值为.8086.8086此类指令主要有:此类指令主要有:.8086 .8086 选择选择80868086指令系统指令系统.286 .286 选择选择8028680286指令系统指令系统.286P .286P 选择保护方式下选择保护方式下8028680286指令系统指令系统.386 .386 选择选择8038680386指令系统指令系统.386P .386P 选择保护方式下选择保护方式下8038680386指令系统指令系统.486 .486
10、 选择选择8048680486指令系统指令系统.486P .486P 选择保护方式下选择保护方式下8048680486指令系统指令系统.586 .586 选择选择PentiumPentium指令系统指令系统.586P .586P 选择保护方式下选择保护方式下PentiumPentium指令系统指令系统计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPU
11、TER SCIENCE AND TECHNOLOGY吉林大学吉林大学吉林大学远程教育学院微机原理及汇编语言微机原理及汇编语言微机原理及汇编语言微机原理及汇编语言 主讲人:主讲人:赵宏伟赵宏伟 教授教授 总学时:总学时:80 80吉林大学计算机科学与技术学院吉林大学计算机科学与技术学院第第二十二十讲讲计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUT
12、ER SCIENCE AND TECHNOLOGY吉林大学吉林大学三、段定义三、段定义段定义:段定义:确定代码组织与数据存储的方式确定代码组织与数据存储的方式2种种:完完整整的的段段定定义义和和简简化化的的段段定定义义(MASM5.0以上)以上)完整的段定义包括:完整的段定义包括:(1 1)segmentsegment和和endend段定义段定义 (2 2)ASSUMEASSUME段分配段分配 (3 3)GROUP GROUP 段组定义段组定义 计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TEC
13、HNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学segment和和end段定义段定义(1)格式:格式:段名段名 segment segment 定位类型组合类型定位类型组合类型 字长类型字长类型类别类别 段名段名 end end功能:功能:定义段名、段属性。定义段名、段属性。一一般般情情况况下下,选选项项可可以以不不用用,用用默默认认值值,但但若若需需连接本程序和其他程序,就要使用这些说明。连接本程序和其他程序,就要使用这些说明
14、。段名是段的标识符,指明段的基址,由程序员指段名是段的标识符,指明段的基址,由程序员指定。定。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学segment和和end段定义段定义(2)定位类型定位类型定位类型:定位类型:指定段起始边界,指定段起始边界,5 5种种BYTE:BYTE:
15、任意位置任意位置WORD:WORD:偶地址,地址低偶地址,地址低1 1位为位为0 0DWORD:DWORD:4 4的倍数地址,地址低的倍数地址,地址低2 2位为位为0 0PARA:PARA:16 16的倍数地址,地址低的倍数地址,地址低4 4位为位为0 0PAGE:PAGE:256 256的倍数地址,地址低的倍数地址,地址低8 8位为位为0 0,一页的,一页的起点,起点,默认值默认值。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TEC
16、HNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学segment和和end段定义段定义(3)组合类型组合类型组组合合类类型型:表表示示本本段段与与其其它它段段之之间间,具具有有相相同同段段名名的的各各段段的的组组合合关系,为连接程序提供信息,属于连接类型,关系,为连接程序提供信息,属于连接类型,6 6种。种。PUBLIC:PUBLIC:本本段段连连接接时时将将与与有有相相同同段段名名.public.public类类型型的的其其它它段段连连接接在在一一起起,连连接接次次序序由由连连接接命命令令
17、指指定定(共共用用一一个个段段),即即同同名名段段连连接接在一起,有共同段地址。在一起,有共同段地址。STACK:STACK:用用于于说说明明堆堆栈栈段段,把把不不同同程程序序段段中中的的具具有有SARCKSARCK类类型型的的同同名名段段组组合合而而形形成成一一个个堆堆栈栈段段,其其长长度度为为各各原原有有段段的的总总和和,LINKLINK自自动动将将新新段段的的段段地地址址送送SSSS,长长度度送送SPSP,若若未未定定义义SARCKSARCK类类型型,需需在在程序中用指令设置程序中用指令设置SSSS、SPSP。COMMON:COMMON:本本段段连连接接时时,使使具具有有COMMONCO
18、MMON类类型型的的同同名名段段具具有有同同一一个个起起始始地地址址,所所以以会会产产生生覆覆盖盖,新新段段的的长长度度是是最最长长COMMONCOMMON段段的的长长度度,新段的内容取决于依次覆盖的最后内容。新段的内容取决于依次覆盖的最后内容。MEMORY:MEMORY:表表示示该该段段应应定定位位在在所所有有段段的的最最下下面面(即即地地址址最最大大的的区区域域),如如果果模模块块中中不不止止一一个个MEMORYMEMORY段段,以以第第一一个个遇遇到到的的作作为为MEMORYMEMORY段段,其其它它段段作作为为COMMONCOMMON段段处处理理,而而LINKLINK程程序序在在处处理
19、理MEMORYMEMORY时时与与PUBLICPUBLIC同样对待。同样对待。PRIVATE:PRIVATE:独立段,与其它段逻辑上没有关系,不与同名段合并,独立段,与其它段逻辑上没有关系,不与同名段合并,默认值默认值。AT AT 表达式表达式:指定本段起始地址为指定本段起始地址为“表达式表达式”,偏移量为,偏移量为0 0,不能,不能用于代码段。用于代码段。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTE
20、R SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学segment和和end段定义段定义(4)字长类型字长类型字字长长类类型型:386386以以后后,说说明明使使用用1616位位寻寻址址方方式式,还是还是3232位寻址方式。位寻址方式。.USE16:.USE16:1616位位寻寻址址方方式式,段段长长64KB64KB,1616位位段段地地址,址,1616位偏移量,位偏移量,默认值默认值。.USE32:.USE32:3232位位寻寻址址方方式式,段段长长4GB4GB,1616位位段段地地址,址,3232位偏移量。位偏移量。
21、类别类别类别:类别:引号括起的字符串,连接时,引号括起的字符串,连接时,类别类别相相同的分段同的分段(他们可能不同名他们可能不同名)均放在连续的存储空均放在连续的存储空间中,但他们仍然是不同的分段(连续空间)。间中,但他们仍然是不同的分段(连续空间)。计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOG
22、Y吉林大学吉林大学ASSUME段分配段分配格式:格式:ASSUME ASSUME 段寄存器名:段名,段寄存器名:段名,功功能能:指指定定分分段段寄寄存存器器,说说明明哪哪个个段段使使用用哪哪个个段段寄存器。寄存器。说明:说明:程序段必须用程序段必须用CSCS,堆栈段必须用,堆栈段必须用SSSS该语句一般放在代码段的最前面该语句一般放在代码段的最前面说说明明性性语语句句,除除CSCS外外(初初始始化化赋赋值值),各各段段寄寄存器在程序中赋值。存器在程序中赋值。取消语句:取消语句:ASSUME NOTHING ASSUME NOTHING 计算机科学与技术学院计算机科学与技术学院COMPUTER
23、SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGY吉林大学吉林大学一般汇编格式举例一般汇编格式举例DATA1 SEGMENT DATADATA1 SEGMENT DATA DATA1 ENDSDATA1 ENDSDATA2 SEGMENT EXTRADATA2 SEGMENT EXTRA DATA2 ENDSDATA2 ENDSDATA3 SEGMENT
24、DATADATA3 SEGMENT DATA DATA3 ENDSDATA3 ENDSCODE SEGMENT CODECODE SEGMENT CODE ASSUME CS:CODE,DS:DATA1,ES:DATA3,SS:DATA2 ASSUME CS:CODE,DS:DATA1,ES:DATA3,SS:DATA2START:MOV AX,DATA1START:MOV AX,DATA1 MOV DS,AX MOV DS,AX ;数据段地址赋给;数据段地址赋给DSDS MOV AX,DATA2 MOV AX,DATA2 MOV SS,AX MOV SS,AX ;堆栈段地址赋给;堆栈段地址赋
25、给SSSS MOV AX,DATA3 MOV AX,DATA3 MOV ES,AX MOV ES,AX ;附加段地址赋给;附加段地址赋给ESES MOV AH,4CH MOV AH,4CH INT 21H INT 21H ;返回;返回DOSDOSCODE ENDSCODE ENDS END START END START 计算机科学与技术学院计算机科学与技术学院COMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECHNOLOGYCOMPUTER SCIENCE AND TECH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 汇编语言 程序设计
限制150内