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