资源描述:
《《汇编语言设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1微型计算机技术第4章8086/8088汇编语言设计2第一节汇编语言上机过程第二节汇编语言程序结构第三节指示性语句第四节汇编语言程序举例第五节BIOS和DOS功能调用第六节汇编语言程序设计3上机环境硬件系统软件应用软件操作系统:DOS系统编辑器:EDIT.exe汇编编译程序:MASM.exe连接程序:LINK.exe调试程序:DEBUG.exe用户开发的程序:ABC.exe等CPU、存储器(ROM、RAM)、I/O接口、输入、输出设备4第一节汇编语言上机过程D:>EDITABC.asmD:>MASMA
2、BC;有语法错,回EDIT下改该程序D:>LINKABC;有错,回在EDIT下改程序D:>ABC运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。D:>DEBUGABC.exe编辑源程序EDITABC.ASM汇编源程序MASMABC.ASM形成目标程序ABC.OBJ连接目标程序LINKABC.OBJ有连接错误信息?形成可执行程序ABC.EXE装入可执行程序到内存,并执行D:>sub>ABC下一程序用DEBUG调试可执行程序D:>sub>DEBUGABC.EXE找到原因YNYNNYN有汇编
3、错误信息?Y运行结果正确?用DEBUG调试程序查错?5第二节汇编语言程序结构一、程序结构二、语句结构6一、程序结构程序由数条语句构成,每条语句占一行。指令性语句(指令语句)指示性语句(伪指令语句)分段结构程序按段编写,与8088内存分段编址相对应。每段由伪操作SEGMENT开始、由ENDS结束。程序最后为END结束语句,后跟一启动地址。启动地址指示程序开始执行的第一条语句。程序中设有返回DOS的功能。使程序执行完后返回DOS系统的命令接受状态。程序中用到内存操作数时,应按操作数的寻址方式,给相应的段寄
4、存器赋值;汇编语言程序结构例一movs.asm;实现数据传送功能aaSEGMENT;数据段1str1DB'Hello!’aaENDSbbSEGMENT;数据段2str2DB6dup(?)bbENDSccSEGMENT;代码段ASSUMECS:cc,DS:aa,ES:bbstart:CLDMOVAX,aaMOVDS,AXLEASI,str1MOVAX,SEGstr2MOVES,AXMOVDI,OFFSETstr2MOVCX,6REPMOVSBMOVAH,4CHINT21H;返回DOSccENDSENDs
5、tart;指示程序结束7程序可由多个段构成,至少有一个代码段;汇编语言程序结构例二(子程结构)scans.asm;用二进制显示中断向量表中(0:0~0:3FFH)数据D0H的个数keyEQU0D0H;用符号表示常量(关键字)codeSEGMENT;代码段开始ASSUMECS:codebegin:MOVAX,0000HMOVDS,AXMOVSI,0000HMOVCX,0400HMOVBX,0MOVAL,keynext:CMP[SI],ALJNZpointINCBXpoint:INCSILOOPnextC
6、ALLdisplay;调用显示子程MOVAH,4CH;返回DOSINT21H;用二进制显示BX内容子程序displayPROCMOVCX,16rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回displayENDPcodeENDS;代码段结束ENDbegin;指示程序结束和;程序入口8二、语句结构dataSEGMENT;数据段varDB?dataENDScodeSEGMENT;代码段ASSUMECS:code
7、,DS:datastart:MOVAX,dataMOVDS,AXMOVvar,CLMOVAH,4CHINT21H;返回DOScodeENDSENDstart例:91.名字项据语句功能的不同,名字项可用来表示段名、变量名、标号、过程名以及常量名等。dataSEGMENT;数据段varDB?dataENDScodeSEGMENT;代码段ASSUMECS:code,DS:datastart:MOVAX,dataMOVDS,AXMOVvar,CLMOVAH,4CHINT21H;返回DOScodeENDSEND
8、start10名字项用一个符号表示。对符号的规定:①由字符A~Z,a~z,0~9及符号@、$、下划线_等组成,最长31个字符,超出部分忽略。②不能用数字打头,以免与十六进制数相混。③不使用汇编程序中的保留字。(如指令的助记符等)④对定义的符号不区分大小写。112.助记符项助记符可以是指令、伪操作中的助记符。对于指令,汇编程序将其翻译成机器语言指令。MOVAX,100→B80001对于伪操作,汇编程序根据其要求的功能进行处理。dataSEGMENT→dat