资源描述:
《南京邮电大学微型计算机原理与接口技术5-01章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计Ch.5汇编语言程序设计5.1汇编源程序的编程格式5.2DOS系统I/O功能调用5.3BIOS键盘输入功能调用5.5分支程序5.6循环程序5.7子程序及其调用5.8宏指令与条件汇编5.9代码转换5.10数值计算和数据处理5.12模块化程序设计.486DATASEGMENTUSE16MESGDB‘A‘,0DH,0AH,'$'DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXDS初值;以上设置┇MOVAH,4CHINT21H;返回DOSCODEENDSEND
2、BEG;汇编结束语句例:将N1和N2两个单字节数以28为模求和→SUM单元.5.1汇编源程序的编程格式1.EXE文件编程格式允许源程序使用多个逻辑段,适合编写大型程序,最终能生成.EXE文件..486DATASEGMENTUSE16N1DBxxN2DBxxSUMDB?DATAENDSSTACK_SEGMENTSTACK‘STACK’USE16DB128DUP(?)STACK_ENDSBEG:MOVAX,DATAMOVDS,AXMOVAX,STACK_MOVSS,AXMOVSP,128MOVAL,N1ADDAL,N2MOVSUM,ALMOVAH,4CHI
3、NT21HCODEENDSENDBEG可省CODESEGMENTUSE16ASSUMECS:CODE,DS:DATA,SS:STACK_说明:.EXE文件中堆栈段的设置a本例以“STACK_”为段名的逻辑段,选用了“STACK”链接参数,DOS自动认为“STACK_”段为堆栈段。所以,DOS将自动给SS:SP赋初值,因此,源程序给SS:SP赋初值的三条语句是多余的。b链接程序要求:.EXE文件中的源程序必须有堆栈段,否则链接时将给出警告信息:Warningnostacksegment但这不代表源程序有错,仅仅是警告而已c如果源程序中不设置堆栈段(在链接
4、时,会给出错误信息),DOS将自动给程序分配最少128字节的堆栈区,故源程序中,如果没有大量数据压栈的话,可以不设置堆栈段,从而简化程序。.486DATASEGMENTUSE16N1DBxxN2DBxxSUMDB?DATAENDSSTACK_SEGMENTSTACK‘STACK’USE16DB128DUP(?)STACK_ENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATA,SS:STACK_BEG:MOVAX,DATAMOVDS,AXMOVAX,STACK_MOVSS,AXMOVSP,128MOVAL,N1ADDAL,N
5、2MOVSUM,ALMOVAH,4CHINT21HCODEENDSENDBEG2.COM文件的编程格式(1)汇编语言规定:COM文件的源程序只能有一个段:代码段,不允许有堆栈段;在代码段偏移地址=100H处,必须是程序的启动指令;程序中使用的数据可以放在代码段的开始或结尾..486.486CODESEGMENTUSE16CODESEGMENTUSE16ASSUMECS:CODEASSUMECS:CODEORG100HORG100HBEG:JMPSTARTBEG:MOVAL,N1N1DBXXADDAL,N2N2DBXXMOVSUM,ALSUMDB?
6、MOVAH,4CHSTART:MOVAL,N1INT21HADDAL,N2N1DBXXMOVSUM,ALN2DBXXMOVAH,4CHSUMDB?INT21HCODEENDSCODEENDSENDBEGENDBEG(2)上例写成COM格式源程序(3)COM文件的生成设上例的文件名为N1ADDN2.ASM编辑生成N1ADDN2.ASM调用TASM.EXE生成N1ADDN2.OBJTASMN1ADDN2调用TLINK.EXE生成N1ADDN2.COMTLINKN1ADDN2/t注意:链接参数为小写字母tDOS系统I/O功能的调用DOS操作系统由四个部
7、分组成,其中:IBMDOS.COM:是磁盘文件管理程序IBMBIO.COM:是基本I/O设备处理程序这两个模块中都有若干子程序,供应用程序调用,可调用的子程序集中存放在“21H型中断服务程序”中,用户程序调用这些子程序就称为“DOS系统功能调用”BIOS/DOS调用模式:MOVAH,功能号设置入口参数INTn分析出口参数BIOS/DOS功能调用1.调用模式MOVAH,功能号设置入口参数INT21H分析出口参数AH=?执行1#子程序执行2#子程序IRET21H型中断服务程序=1=25.2DOS系统I/O功能调用在DOS功能子程序调用中,我们把通过INT2
8、1H来实现的子程序调用成为DOS系统功能调用。[功能号01]等待键入一个字符,有回显,响应Ct