汇编语言程序设计(III)

汇编语言程序设计(III)

ID:42019499

大小:604.01 KB

页数:53页

时间:2019-09-06

汇编语言程序设计(III)_第1页
汇编语言程序设计(III)_第2页
汇编语言程序设计(III)_第3页
汇编语言程序设计(III)_第4页
汇编语言程序设计(III)_第5页
资源描述:

《汇编语言程序设计(III)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.1程序设计语言概述4.28086/8088汇编语言的基本语法4.38086/8088汇编语言程序设计基本方法第4章8086/8088汇编语言程序设计14.1程序设计语言概述汇编语言程序的上机与处理过程编辑程序Prog.asm文件汇编程序Prog.obj文件连接程序Prog.exe文件Edit.exeMasm.exeLink.exe24.28086/8088汇编语言的基本语法引例:求从1开始连续50个奇数之和,并将结果存放在名字为SUM的字存储单元中。DATASEGMENT;定义数据段,DATA为段名SUMDW0;由符号(叫变量名)SUM指定的内存单元类型定义为一个字,初值

2、为0DATAENDS;定义数据段结束STACKSEGMENTSTACK;定义堆栈段,这是组合类型伪指令,它规定在伪指令后须跟STACK类型名DB200DUP(0);定义堆栈段为200个字节的连续存储区,且每个字节的值为0STACKENDS;定义堆栈段结束3CODESEGMENT;定义代码段ASSUME:DS:DATA,SS:STACK,CS:CODE;由ASSUM伪指令定义各段寄存器的内容START:MOVAX,DATA;将DS初始化为数据段首址MOVDS,AX的段值DATAMOVCX,50;CX置入循环计数值MOVAX,0;清AX累加器MOVBX,1;BX置常量1NEXT:

3、ADDAX,BX;累加奇数和,计50次INCBX;求下一个奇数INCBXDECCX;循环计数器作减1计数JNENEXT;未计完50次时,转至NEXT循环MOVSUM,AX;累加和送存SUM单元MOVAH,4CH;DOS功能调用语句,机器将结束本INT21H程序的运行,并返回DOS状态CODEENDS;代码段结束ENDSTART;整个程序汇编结束4汇编源程序一般由若干段组成,每个段都有一个名字(叫段名),以SEGMENT作为段的开始,以ENDS作为段的结束,这两者(伪指令)前面都要冠以相同的名字。段可以从性质上分为代码段、堆栈段、数据段和附加段4种。代码段是不可少的,堆栈段、数

4、据段与附加段可根据需要设置。代码段部分开始要设置段寄存器,要加载DS内容。在上面这个例子中,一共定义了3个段:1个数据段1个堆栈段1个代码段5每一行只有一条语句,且不能超过128个字符(从MASM6.0开始可以是512个字符);但一条语句允许有后续行,最后均以回车作结束。每一条汇编语句最多由4个字段组成,它们均按照一定的规则分别写在一个语句的4个区域内,各区域之间用空格或制表符(TAB键)隔开。整个源程序必须以END语句来结束,它通知汇编程序停止汇编。END后面的标号START表示该程序执行时的起始地址。汇编语言程序中至少要有一启动标号,作为程序开始时目标代码的入口地址。启动

5、标号常用START、BEGIN、MAIN等命名。6(一)汇编语言语句的种类和格式1.语句的种类在8086/8088汇编语言中,有3种基本语句:指令语句伪指令语句宏指令语句(1)指令语句:是一种执行性语句,它在汇编时,汇编程序将为之产生一一对应的机器目标代码。例:汇编指令机器码MOVDS,AX8ED8 ADDAX,BX03C37(2)伪指令语句:是一种说明性语句,它在汇编时只为汇编程序提供进行汇编所需要的有关信息,如定义符号,分配存储单元,初始化存储器等,而本身并不代表生成目标代码。例:DATASEGMENTAADW20H,-30HDATAENDS(3)宏指令:是以某个宏名字定

6、义的一段指令序列,在汇编时,凡有宏指令出现的地方都将用相应的指令序列的目标代码插入。宏指令语句是一般性指令语句的扩展。81.指令语句指令语句的格式[标号:][前缀]指令助记符[操作数表][;注释]1)标号标号代表“:”后面的指令所在的存储地址(这里是逻辑地址),供JMP、CALL和LOOP等指令作操作数使用,以寻找转移目标地址。2语句格式92)前缀8086/8088中有些特殊指令,它们常作为前缀同其他指令配合使用,例如和“串操作指令”连用的5条“重复指令”(REP、REPE/REPZ、REPNE/REPNZ),以及总线封锁指令LOOK等3)指令助记符4)操作数表操作数表可以

7、是一个或两个操作数;对宏指令来说,可能有多个操作数。操作数之间用逗号分隔。5)注释以“;”开始,用来简要说明该指令在程序中的作用10伪指令语句的格式[名字]伪指令[参数表][;注释]2.伪指令语句111)标号的属性标号表示指令地址,是指令的符号地址,它具有3种属性——段地址、段内偏移量(或相对地址)以及类型。段值(SEG):标号所在段的起始地址偏移量(OFFSET):段起点距离标号所指存储单元位置的字节数类型(TYPE):NEAR,FAR2)在指令的助记符之前,使用标号并紧跟一个冒号“:”, 表示该标号

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。