汇编语言课程设计--报告模版
汇编语言设计报告
实验报告课程名称: 指导老师: 成绩:__________________实验名称: 实验类型: 同组学生姓名:一、实验目的1. 熟悉80C51单片微机汇编语言设计及编程技巧。
2. 掌握逻辑运算程序的设计方法。
3. 掌握求最小数和最大数程序的设计方法。
4. 掌握多字节无符号十进制数加、减法程序的设计。
二、实验内容PART1 逻辑运算逻辑运算:根据下列逻辑运算式,编写程序计算运算结果。
Y=A ⊕B •C • D+A设: A =63H ,B=82H ,C=C5H ,D=36H 。
求Y=?PART2 求最小数和最大数求最小数和最大数:10个无符号数连续存放在以20H 为起始地址的RAM 中,找出其中的最小值存入30H 单元中,找出其中的最大值存入31H 单元中。
PART3 十进制加、减运算十进制加、减运算:286729+652430-752196=?在8051片内RAM 的20H~22H 中放入3字节被加数(低位在先)、23H~25H 放入加数(低位在先)、26H~28H 放入减数,结果存入2DH~2FH 单元(低位在先)。
三、主要仪器设备1. Micetek 仿真器一台2. 实验板一块四、实验详情PART 1 逻辑运算1、实验程序专业:姓名:学号:日期:地点:ORG 0000HSJMP MAINORG 0080HMAIN:MOV A,#82H ;将B值给累加器AMOV R0,#0C5H ;将C值给寄存器R0ANL A,R0 ;计算B和C逻辑与的值,并将结果存放在A中CPL A ;将A取反MOV R0,#63H ;将A值给R0XRL A,R0 ;计算两数异或的值,结果存于A中CPL A ;将A取反MOV R1,A;将A中的值存到R1中MOV A,#63H ;将A值给累加器AORL A,#36H ;计算A和D逻辑或的值CPL A;将A取反ANL A,R1 ;计算A和R1逻辑与的值END运行结果:A=80H程序功能:计算所给出逻辑运算式的值2、调试通过后的.LST文件ORG 0000H0000 807E SJMP MAINORG 0080H0080 7482 MAIN:MOV A,#82H0082 78C5 MOV R0,#0C5H0084 58 ANL A,R00085 F4 CPL A0086 7863 MOV R0,#63H0088 68 XRL A,R00089 F4 CPL A008A F9 MOV R1,A008B 7463 MOV A,#63H008D 4436 ORL A,#36H008F F4 CPL A0090 59 ANL A,R1END符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA= 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP= 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量MAIN = 0080H CODE 标号OV = 00D2H CONST 常量P= 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP= 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量公有符号: 57私有符号: 0PART2 求最小数和最大数1、实验程序ORG 0000HAJMP MAINORG 0020HMAIN:MOV R0,#10H ;采样值数据区长度MOV DPTR,#20H ;采样值存放首地址MOV 30H,#0FFH ;最小值单元初始值设为最大数MOV 31H,#00H ;最大值单元初始值设为最小数LP:MOVX A,@DPTR ;取采样值CJNE A,30H,CHR ;数值比较CJNE A,31H,CHK ;数值比较SJMP LP1 ;两值相等,转移CHR:JNC LP1 ;A值大,转移MOV 30H,A ;A值小,移送30HCHK:JC LP1 ;A值小,转移MOV 31H,A ;A值大,移送31HLP1:INC DPTRDJNZ R0,LP ;继续END运行结果:30H中为最小值,31H中为最大值程序功能:取得20H 及以后的10个数,将其中的最小数存放于30H,最大数存放于31H2、调试通过后的.LST文件ORG 0000H0000 0120 AJMP MAINORG 0020H0020 7810 MAIN:MOV R0,#10H0022 900020 MOV DPTR,#20H0025 7530FF MOV 30H,#0FFH0028 753100 MOV 31H,#00H002B E0 LP:MOVX A,@DPTR002C B53005 CJNE A,30H,CHR002F B53106 CJNE A,31H,CHK0032 8008 SJMP LP10034 5006 CHR:JNC LP10036 F530 MOV 30H,A0038 4002 CHK:JC LP1003A F531 MOV 31H,A003C A3 LP1:INC DPTR003D D8EC DJNZ R0,LPEND符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量CHK = 0038H CODE 标号CHR = 0034H CODE 标号CY= 00D7H CONST 常量DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA= 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP= 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量LP = 002BH CODE 标号LP1 = 003CH CODE 标号MAIN = 0020H CODE 标号OV = 00D2H CONST 常量P= 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP= 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量公有符号: 61私有符号: 0PART3 十进制加、减运算1、实验程序ORG 0000HAJMP MAINORG 0080HMAIN: MOV 00H,#01HMOV 20H,#29H ;将被加数放入20H-22HMOV 21H,#67HMOV 22H,#28HMOV 23H,#30H ;将加数放入23H-25HMOV 24H,#24HMOV 25H,#65HMOV 26H,#96H ;将减数放入26H-28HMOV 27H,#21HMOV 28H,#75HMOV A,20HADD A,23H ;最低字节相加DA A ;二-十进制调整MOV 29H,A ;将相加结果放入29HMOV A,21HADDC A,24H ;次地字节带进位相加DA A ;二-十进制调整MOV 2AH,A ;将相加结果放入2AHMOV A,22HADDC A,25H ;最高位字节进位相加DA A ;二-十进制调整MOV 2BH,A ;将相加结果放入2BHCLR C ;清零C标志位MOV A,#9AHSUBB A,26H ;求26H中二进制补码ADD A,29H ;加上补码DA A ;二-十进制调整MOV 2DH,A;将最低字节运算结果放入2DHCPL C ;标志位取反MOV A,#9AHSUBB A,27H ;求27H中二进制补码ADD A,2AH ;加上补码DA A ;二-十进制调整MOV 2EH,A;将次低字节预算结果放入2EHCPL C ;标志位取反MOV A,#9AHSUBB A,28H ;求28H中二进制补码ADD A,2BH ;加上补码DA A ;二-十进制调整MOV 2FH,A ;将最高字节运算结果放入2FHEND运行结果:2DH=63 ,2EH=69, 2FH=18程序功能:计算相应计算式的值2、调试后的.LST文件ORG 0000H0000 0180 AJMP MAINORG 0080H0080 750001 MAIN: MOV 00H,#01H0083 752029 MOV 20H,#29H0086 752167 MOV 21H,#67H0089 752228 MOV 22H,#28H008C 752330 MOV 23H,#30H008F 752424 MOV 24H,#24H0092 752565 MOV 25H,#65H0095 752696 MOV 26H,#96H0098 752721 MOV 27H,#21H009B 752875 MOV 28H,#75H009E E520 MOV A,20H00A0 2523 ADD A,23H00A2 D4 DA A00A3 F529 MOV 29H,A00A5 E521 MOV A,21H00A7 3524 ADDC A,24H00A9 D4 DA A00AA F52A MOV 2AH,A00AC E522 MOV A,22H00AE 3525 ADDC A,25H00B0 D4 DA A00B1 F52B MOV 2BH,A00B3 C3 CLR C00B4 749A MOV A,#9AH00B6 9526 SUBB A,26H00B8 2529 ADD A,29H00BA D4 DA A00BB F52D MOV 2DH,A00BD B3 CPL C00BE 749A MOV A,#9AH00C0 9527 SUBB A,27H00C2 252A ADD A,2AH00C4 D4 DA A00C5 F52E MOV 2EH,A00C7 B3 CPL C00C8 749A MOV A,#9AH00CA 9528 SUBB A,28H00CC 252B ADD A,2BH00CE D4 DA A00CF F52F MOV 2FH,AEND符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量CY= 00D7H CONST 常量DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA= 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP= 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量MAIN = 0080H CODE 标号OV = 00D2H CONST 常量P= 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP= 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TF1 = 008FH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量公有符号: 57私有符号: 0五、实验总结。
《汇编语言程序设计》实验报告(一)
MESS2 DB 'NO MATCH!’,13,10,’$'
DATA ENDS
对以上源程序重新汇编、连接、运行,结果输出为:MATCH!
七、实验总结
通过这次上机实践,我对汇编程序和连接程序的使用开始有一点了解。但刚开始还是很不顺的,总是出现找不到文件,后来经过同学的指导,终于知道自己的错误,原来是路径错误。所以还需要勤加练习,多多实践。
四、实验材料、工具、或软件
多媒体计算机、WINDOWS XP系统或纯DOS系统、MASM6.11以上版本或汇编语言程序设计实验集成环境。
五、实验要求
1. 编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。
2.完成课堂例题,并用DEBUG运行,观察结果。
六、试验内容与步骤:(附上必要的调试过程及运行结果截图,可加附页)
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。上机步骤如下:
《汇编语言程序设计》实验报告(一)
姓名
学号
系别
班级
指导教师
实验日期
课程名称
《汇编语言程序设计》
同组实验者
一、实验名称:实验一汇编程序和连接程序的使用
二、实验目的:
1. 熟悉汇编语言的上机环境;
2. 学习EDIT,MASM,LINK程序的使用;3. 掌握建立、汇、链接、运行汇编语言程序的过程。
汇编语言课程设计报告
课程设计报告课程名称:汇编语言程序设计课题名称:成绩评定姓名:班级:带教老师:报告日期:2009年电子信息学院目录第一章前言 (3)1.1 背景 (3)1.2基本功能要求 (3)第二章程序设计 (4)2.1题目基本内容 (4)2.2系统流程框图 (5)2.3课程设计的具体内容说明 (6)2.4课程设计中关键内容的分析设计说明 (6)第三章课程设计小结 (7)参考文献 (8)附录: (9)源程序代码 (9)第一章前言1.1 背景课程设计的主要目的是提高实践能力,包括对硬件的理解分析能力和汇编语言的编程能力。
与其他课程不同的是,本课程对硬件有较高的依赖性,因此课程设计的灵活性受到了一定的限制,最好有相应的实验平台支持(尤其是硬件部分),本次课程设计主要是汇编语言部分的练习,通过这部分的练习,学生应该熟悉汇编语言的寻址方式和指令系统,掌握BIOS和DOS系统的功能调用,编制较大程序时的基本方法和熟悉宏汇编的编程环境。
使学生既具备完备的理论知识,也能够解决实际学习中碰到的问题。
1.2基本功能要求1.显示简易的数字菜单,并根据选择的菜单号执行相应的分支程序,并得到正确的结果。
2.从键盘输入一个成绩能评定成绩的等级,并显示其结果。
第二章程序设计2.1题目基本内容设计题目:成绩评定具体要求:(1)显示简易数字菜单(2)输入成绩,显示成绩评定的等级(90-100为优,80-90为良,70-80为中,60-70为及格,60分以下为不及格)2.2系统流程框图图2.2.12.3课程设计的具体内容说明根据课题的要求,主要完成一下几方面的设计:1.显示简易数字菜单,根据选择的菜单号,执行相应的分支程序2.从键盘输入一个十进制数字(编写一个子程序)3.对输入的数据进行比较,显示相应成绩等级(优,良,中,及格,不及格可以分别用A,B,C,D,E表示)2.4课程设计中关键内容的分析设计说明1.简易数字菜单只有两个选择号(1~2),选择1表示就跳转到执行成绩评定的程序,选择2就返回到DOS窗口。
汇编语言课程设计1实验报告
汇编语言课程设计1实验报告一、引言本实验报告旨在探讨汇编语言课程设计1的实验内容和相关实验结果。
通过对实验的详细介绍和分析,可以更好地理解和应用汇编语言的基本知识和技术。
本实验报告分为以下几个部分进行讨论。
二、实验目的本实验旨在通过设计汇编语言程序,掌握汇编语言的基本语法和编程技巧,提高对计算机底层的理解和应用能力。
具体实验目的如下:1.熟悉汇编语言的基本知识和编程环境;2.学习如何使用汇编语言进行简单的数据处理和运算;3.掌握汇编语言中的跳转、循环和分支等控制结构;4.加深对计算机组成原理的理解和应用。
三、实验设计3.1 实验环境本实验使用的汇编语言编程环境为MASM(Microsoft Macro Assembler),具体配置如下:•操作系统:Windows 10•开发工具:MASM32•编辑器:Notepad++3.2 实验内容本实验的实验内容为实现一个简单的加法计算器程序。
具体要求如下:1.输入两个整数,并将其保存到内存;2.将两个整数相加,并将结果保存到内存;3.从内存读取结果,并输出到屏幕。
3.3 实验步骤下面是实验的具体步骤:1.打开MASM32开发工具,创建一个新的汇编语言项目;2.在编辑器中编写汇编语言程序,包括数据定义、输入输出处理和计算过程;3.使用MASM进行编译和链接,生成可执行程序;4.运行程序,输入两个整数,并查看输出结果。
四、实验结果经过以上步骤,我们成功实现了一个简单的加法计算器程序。
以下是实验结果的截图:Enter the first number: 10Enter the second number: 20The sum is: 30五、实验分析通过以上实验结果可以看出,我们的加法计算器程序能够正确地将输入的两个整数相加,并输出计算结果。
这证明我们所编写的汇编语言程序是正确的。
同时,通过这个实验,我们还可以总结出一些经验和教训:•在程序设计过程中,要仔细考虑数据定义和处理逻辑的正确性和合理性;•在编写汇编语言程序时,要注意语法和命令的正确使用,避免出现语法错误;•在调试程序时,要仔细检查每一步执行的结果,找出可能的错误原因。
《汇编语言程序设计课程设计》课程设计报告模板
课程设计2013~ 2014学年第二学期设计题目汇编语言程序设计课程设计-打字练习程序的设计院(系)计算机科学与信息工程学院专业计算机科学与技术班级学号学生姓名设计时间2014年 6 月 30 日——2014年7 月 5日指导教师提交日期 2014年7月5日上海应用技术学院课程设计任务书指导教师(签名):教研室主任(签名):杨晶鑫2014年6 月25 日2014年6 月25 日目录上海应用技术学院课程设计任务书..................................................... i错误!未定义书签。
目录............................................................................................................................................ i ii 1概述. (1)1.1基本功能 (1)1.1.1三级标题 (1)1.1.2代码的格式 (1)1.2拓展功能 (2)1.3其他功能 (4)2详细设计说明 (5)2.1原“TYPETEST.ASM”程序结构 (5)2.2已经实现的功能(修改的、新编写的)程序结构 (5)2.3欲穷千里目 (5)2.4更上一层楼 (5)3对该“打字练习程序”的进一步设想 (6)3.1春眠不觉晓 (6)3.2处处闻啼鸟 (6)3.3夜来风雨声 (6)3.4花落知多少 (6)4课程设计总结 (7)4.1故人西辞黄鹤楼 (7)4.2烟花三月下扬州 (7)4.3孤帆远影碧空尽 (7)4.4惟见长江天际流 (7)5软件使用说明 (8)5.1长风破浪会有时 (8)5.2直挂云帆济沧海 (8)参考文献 (9)附录 (10)1 概述开场白……(所有论文的正文内容样式设置为:论文正文)↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑1.1 基本功能一般,标题之后,次一级标题之前应该写些过渡性的话。
汇编语言课程设计模版
汇编语⾔课程设计模版中⽂摘要中⽂摘要本次设计主要完成了霓虹灯的显⽰界⾯⼤⼩、霓虹灯的颜⾊及代表霓虹灯的字符(@、*)的运动情况和霓虹灯的界⾯显⽰。
关键字:霓虹灯汇编语⾔程序设计主流程图和⼦流程图的设计I⽬录⽬录中⽂摘要 .............................................................................................I 第⼀章霓虹灯内容和功能 ................................ 错误!未定义书签。
第⼆章霓虹灯设计. (1)第⼀节霓虹灯设计思路、模块划分 .............................. 错误!未定义书签。
第⼆节霓虹灯主流程图 (2)第三节霓虹灯⼦流程图 .................................................. 错误!未定义书签。
第四节霓虹灯界⾯显⽰ (6)第五节霓虹灯程序源代码及注释 (7)第三章总结 (12)致谢 (13)参考⽂献 (14)II第⼀章霓虹灯内容和功能第⼀章霓虹灯内容和功能◆内容⼀、设置霓虹灯的显⽰界⾯⼤⼩(15⾏77列字符)屏幕⼤⼩(24⾏79列)⼆、设置控制霓虹灯字符的颜⾊三、“霓虹灯”的模拟显⽰步骤1、显⽰霓虹灯的上横杠@(从左到右);2、显⽰霓虹灯的下横杠@ (从右到左);3、显⽰霓虹灯的左横杠*@;4、显⽰霓虹灯的右横杠@*;5、字符(@*)分别从左右两边进⼊向中间移动,然后⼀起从中间向左右运动并且变换颜⾊;6、整个的模拟图形显⽰出来◆功能:霓虹灯模拟显⽰图形并且变换颜⾊第⼆章霓虹灯设计第⼀节霓虹灯设计思路、模块划分⼀、霓虹灯设计思路:写出主程序,根据主程序调⽤⼦程序完成霓虹灯显⽰。
⼆、霓虹灯课程设计的模块划分:主程序:设置寄存器的内容,调⽤⼦程序设置屏幕⼤⼩、屏幕显⽰的颜⾊和字符的运动情况。
汇编语言设计(微机实验报告)
一、实验名称:汇编语言设计二、实验目的:1.熟悉 MASM.EXE 和 LINK.EXE 的使用方法。
2.了解 debug 调试工具,观察程序的执行过程和对寄存器和内存单元的影响。
三、实验内容1、首先在硬盘上建立一个文件夹E:\MASM。
2、下载 MASM.EXE 和 LINK.EXE 到E:\MASM 文件夹里。
3、经过以上两步,已经做好了准备工作,接下来书写程序。
计算y = a × b + c - 18,a、b、c均为带符号的8 位二进制数据,为了实验观看实验结果,假设 a = 34H、b = 56H、c = E7H。
程序源代码如下(分号后面内容为注释内容,可以不输入):CC EQU 18 ;伪指令定义CCSTACK SEGMENT ;堆栈段起始DW 256 DUP(?) ;在堆栈段中预留了256 个字的内容TOP LABEL WORD ;TOP 为栈顶偏移地址STACK ENDS ;堆栈段结束DATA SEGMENT ;数据段起始DAT1 DB 34H ;DAT1为题中操作属数a,为字节,存于数据段中DAT2 DB 56H ;DAT2 为题中操作书b,为字节,存于数据段中DAT3 DB 0E7H ;DAT3 为题中操作书c,为字节,存于数据段中DATY DW ? ;DATY为题中计算结果预留空间,为字,存于数据段中DATA ENDS ;数据段结束CODE SEGMENT ;代码段起始ASSUME CS:CODE,DS:DATA,SS:STACK ;分配段地址对应关系START: MOV AX,DATA ;START为标号,MOV语句将DATA数据段地址送AX MOV DS,AX ;将AX内容送入DS,赋予DS数据段DATA段地址MOV AX,STACK ;将STACK堆栈段地址送入AXMOV SS,AX ;将AX内容送入SS,赋予SS堆栈段STACK的段地址MOV SP,OFFSET TOP ;SP设初值MOV AL,DAT1 ;取a,直接寻址方式MOV BL,DAT2 ;取b,直接寻址方式IMUL BL ;AX <- AL * BL,即将a * b 的值存入AXMOV BX,AX ;将AX 内容保存至BXMOV AL,DAT3 ;取c,直接寻址方式CBW ;由于c 是8位有符号数,所以做符号扩展至AHADD AX,BX ;AX <- AX + BX,完成将a*b+c结果存入AX操作SUB AX,CC ;AX <- AX - 18MOV DATY,AX ;将a*b+c-18的值,存放至数据段中偏移地址DATY的内存中MOV AH,4CH ;将4CH存入AH,为了下句调用DOS 21号中断INT 21H ;调用DOS 21中断,由AH=4CH决定返回DOS操作系统CODE ENDS ;代码段结束END START ;程序结束将以上代码保存为扩展名为.ASM 的文件的方法如下:点击“开始”菜单“运行”notepad,打开记事本程序,在记事本中输入如上代码。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告引言汇编语言是一种低级语言,用于编写计算机的底层程序。
在计算机科学与技术领域,汇编语言程序设计是一门重要的课程。
本篇实验报告将介绍我在汇编语言程序设计实验中所学到的知识和经验。
实验目的本次实验的目的是通过编写汇编语言程序,加深对计算机底层原理的理解,并掌握汇编语言的基本语法和编程技巧。
实验环境在实验中,我使用了一台运行Windows操作系统的计算机,并安装了MASM 汇编语言开发工具。
实验内容1. 汇编语言基础知识在实验开始前,我先学习了汇编语言的基础知识。
汇编语言使用助记符来代表机器指令,与机器指令一一对应。
了解了寄存器、内存和指令的概念,并学会了如何使用它们来编写汇编程序。
2. 汇编语言程序设计在实验中,我编写了一些简单的汇编语言程序,以加深对汇编语言的理解和应用。
例如,我编写了一个计算两个数之和的程序,通过将两个数存储在寄存器中,并使用加法指令进行运算,最后将结果保存到指定的内存位置。
3. 汇编语言程序调试在编写汇编语言程序时,我遇到了一些错误和问题。
为了解决这些问题,我学会了使用调试工具来定位错误。
通过逐步执行程序,并观察寄存器和内存的变化,我能够找到程序中的错误并进行修正。
4. 汇编语言程序优化在实验中,我也尝试了对汇编语言程序进行优化,以提高程序的性能和效率。
通过减少指令的数量和使用更高效的算法,我成功地改进了程序的执行速度。
实验心得通过本次实验,我深刻体会到了汇编语言程序设计的重要性和挑战性。
汇编语言虽然复杂,但它能够直接操作计算机的硬件,提供了更高的灵活性和效率。
通过编写汇编语言程序,我不仅加深了对计算机底层原理的理解,还提高了问题解决和调试能力。
总结汇编语言程序设计实验是一门重要的课程,它为我们提供了学习计算机底层原理和编程技巧的机会。
通过实验,我掌握了汇编语言的基本知识和技巧,并成功编写和优化了汇编语言程序。
这次实验不仅加深了我的理论知识,还培养了我的实际操作能力。
汇编语言实验报告模板
《汇编语言》实验报告班级网131学号139074272姓名王祥兵指导教师刘恒实验一汇编语言运行环境及方法、简单程序设计一、实验目的:1、熟悉汇编语言运行环境和方法2、了解如何使用汇编语言的编制程序。
3、熟悉DEBUG有关命令的使用方法。
4、利用DEBUG掌握有关指令的功能。
5、利用DEBUG运行简单的程序段。
二、实验内容:编写一程序:比较两个字符串string1和string2所含的字符是否相同。
若相同则显示‘match’,否则‘No match’。
三、实验步骤:1.在dos提示符下,进入MASM目录2.在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编,链接和运行3.记录每一步的命令,以及查看结果的方法四、程序代码:五、实验总结及教训1.代码运行结果:2.debug调试结果:熟悉了汇编环境的使用,学会了用debug来调试程序实验二:用DEBUG编程:使用堆栈段将AX和BX的内容进行交换一、实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。
3、掌握简单指令的执行过程。
二、实验内容:1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG 的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX 中的内容是什么。
程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT三、实验要求:1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
汇编语言课程设计模版
湖南农业大学课程设计报告学院:信息科学技术学院班级:2009级信息工程班姓名:学号:课程设计题目:课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月目录概述.............................................................................................. 错误!未定义书签。
一、设计要求.............................................................................. 错误!未定义书签。
二、设计思想 (1)三、程序工作原理 (1)四、程序流程图及说明 (2)五、程序源代码 (3)六、程序运行示例 (4)七、设计过程中遇到的问题及解决方法 (4)八、设计心得 (5)九、参考文献 (5)统计男女人数概述统计一个有10人的班中,男、女生的人数各为多少。
将男生人数存入变量MAN、女生人数存入变量WOMAN中。
一、设计要求(小标题一律用宋体小四加粗)清屏,任意输入10个二进制数字。
代表一个班的人数。
统计男生女生各多少。
设计要求如下:(1)由键盘作为输入部分。
(2)字符串的输入和结果的输出都要有必要的提示,且提示独占一行。
(3)正确的计算出男女人数。
(4)要用到子程序。
二、设计思想三、程序工作原理四、程序流程图及说明五、程序源代码DATA SEGMENTMAN DB 0,0WOMAN DB 0,0STRING DB ' iuput people number! (man is 0, woman is 1 ) $' SM DB 'man is :$'SW DB 'woman is :$'DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AH,09H ;将STRING的内容输出MOV DX,OFFSET STRINGINT 21HCALL CRLFMOV CX,10 ;男女生总人数AA: MOV AH,01H ;从键盘输入,0为男,1为女INT 21HCMP AL,30H ;与'0'比较JNZ ADDW ;不为'0',女生人数加1INC MAN ;否则男生人数加1BB: LOOP AAJMP DISPLY ;打印ADDW: INC WOMANJMP BBDISPLY: CALL CRLFMOV AH,09H ;字符串输出MOV DX,OFFSET SMINT 21HMOV AH,02H ;男生人数统计结果输出MOV DL,MANADD DL,30HCALL JUDGECALL CRLFMOV AH,09H ;字符串输出MOV DX,OFFSET SWINT 21HMOV AH,02H ;女生人数统计结果输出MOV DL,WOMANADD DL,30HCALL JUDGEMOV AH,4CH ;返回DOSINT 21HMAIN ENDPJUDGE PROC NEAR ;判断结果是否为39HCMP DL,3AHJZ SHICC: INT 21HRETSHI: MOV DL,31HINT 21HMOV DL,30HJMP CCJUDGE ENDPCRLF PROC NEAR ;回车换行子程序MOV AH,02H ;回车MOV DL,0DHINT 21HMOV DL,0AH ;换行INT 21HRETCRLF ENDPCODE ENDSEND START六、程序运行示例执行自己的程序截图,例如:计算出男生人数,女生人数。
汇编语言课程设计模版
中文摘要中文摘要关键字:列出本文需要的关键字,3-5个I目录目录中文摘要 (I)第一章简易文本编辑器内容和功能................... 错误!未定义书签。
第二章简易文本编辑器设计............................... 错误!未定义书签。
第一节简易文本编辑器设计思路、模块划分 .............. 错误!未定义书签。
第二节简易文本编辑器主流程图 .................................. 错误!未定义书签。
第三节简易文本编辑器子流程图 .................................. 错误!未定义书签。
第四节简易文本编辑器界面显示 .................................. 错误!未定义书签。
第五节简易文本编辑器程序源代码及注释 .................. 错误!未定义书签。
第三章总结 ........................................................... 错误!未定义书签。
致谢 .. (4)参考文献 (5)II第一章简易文本编辑器内容和功能第一章简易文本编辑器内容和功能第 1 页第二章简易文本编辑器设计第二章简易文本编辑器设计第一节简易文本编辑器设计思路、模块划分第二节简易文本编辑器主流程图图2.1 主程序流程图第三节简易文本编辑器子流程图图2.2 子程序流程图第四节简易文本编辑器界面显示第五节简易文本编辑器程序源代码及注释第 2 页第三章总结第三章总结第 3 页致谢致谢第 4 页参考文献参考文献[1] 微型计算机原理及应用电子工业出版社朱定华编著[2] 汇编语言程序设计西安电子科技大学出版社韩海编著[3] 微型计算机原理及应用清华大学出版社杨素行刘慧银编著[4] IBM PC汇编语言程序设计清华大学出版社沈美明温冬婵编著[5] 微机原理与汇编语言实训天津轻工职业技术学院武洪娟编著第 5 页参考文献第 6 页。
《汇编语言》实验报告模板实验一
成 绩 评 定 教师签名: 2015 年 月 日
1. 熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器
(Windbg)的使用。
2. 掌握汇编语言的寻址方式和常用指令。 3. 掌握汇编语言基本的程序设计方法和调试手段。 4. 掌握子程序和宏指令的设计和调试手段。
实验要求:
1. 上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据
2、执行结果截图
内容包括:总结经验提高编程及调试能力。调试情况,如上机时遇到的问题及解决的办 法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结 果的分析;实验的心得体会等。
实 验 结 果 分 析 及 心 得 体 会
通过本次实验熟悉了汇编语言的寻址方式和一些常用指令(运算,循环,过程及 其调用) ,了解了汇编语言中程序的特点,掌握了汇编语言中程序编写的方法,完善了 编写一个完整的简单程序的整体思维结构。
grade 2 ? percent 2 ? grade 3 ? percent 3 ? 75 20 82 60
score is : 81 提示: 总评成绩 = (期中成绩×百分比 1+实验成绩×百分比 2+期末成绩×百分比 3)/100
1、程序清单。 数据段:
.DATA ; reserve storage for data grade1 DWORD ? grade2 DWORD ? grade3 DWORD ? string BYTE 20 DUP (?) prompt1 BYTE "Please input the grade1 : ",0 prompt2 BYTE "Please input the percent of the grade1 : ",0 prompt3 BYTE "Please input the grade2 : ",0 prompt4 BYTE "Please input the percent of the grade2 : ",0 prompt5 BYTE "Please input the grade3 : ",0 prompt6 BYTE "Please input the percent of the grade3 : ",0 prompt7 BYTE "The result is : ",cr,lf,0 sum DWORD ? result BYTE 20 DUP (?) BYTE cr,lf,0
汇编课程设计报告正文
目录第1章需求分析 (1)1.1 设计题目 (1)1.2 设计目的 (1)1.3 程序运行环境及开发工具 (1)1.3.1 运行环境 (1)1.3.2 开发工具 (1)1.4 课程设计任务及要求 (1)1.4.1 设计任务 (1)1.4.2 设计要求 (1)第2章概要设计 (2)2.1 设计思想和原理 (2)2.1.1 设计思想 (2)2.1.2 设计原理 (2)2.2 系统流程图 (2)第3章详细设计 (5)3.1 数据段的设计 (5)3.1.1 数据段定义(DATA SEGMENT) (5)3.2 主程序的设计与实现 (5)3.3 子程序的设计与实现 (5)3.3.1 键盘输入成绩模块 (5)3.3.2 冒泡排序模块 (5)3.3.3,数据输出模块 (6)第4章系统调试与操作说明 (7)第5章设计中存在的问题及解决方法 (9)第6章总结与体会 (10)参考文献: (10)附录:源程序 (12)第1章需求分析1.1 设计题目成绩分段统计(2)1.2 设计目的在此课程设计中,通过对成绩统计分段程序的设计,来实现键盘输入,排序,输出功能,熟悉常用系统功能调用和常用算法的实现。
如01H功能调用,02H 功能调用以及BIOS功能调用的09H调用;掌握常用排序算法的汇编实现,如本设计中的冒泡排序算法实现降序排列。
汇编语言程序设计课程设计是计算机教学实践基础上的一次重要的大型实验,也是对汇编语言程序设计课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与调试出具有实际功能的应用程序,并且在实验的基本技能方面上进行一次全面的训练。
培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够比较全面巩固和应用课堂中所学的基本理论和程序设计方法,能够比较熟练完成汇编程序的设计和调试。
提高学生对工作认真负责,一丝不苟,和在遇到难题时的协同合作的素质,培养学生从资料文献,科学实验中获得知识的能力,初步培养工程意识和创新能力,培养学生勇于探索,严谨推理,实事求是的素质。
汇编语言编程实验报告
汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。
)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。
如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。
一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。
将包含QE文件的工作磁盘插入驱动器A:。
进入QEA\QE进入全屏幕后可以开始编程。
文件名取为Myprog。
asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。
汇编语言实验报告模板
合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:学号:姓名:实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三.实验过程和程序四.实验结果(包括必要的截图)五.实验体会实验二汇编语言程序设计(顺序、循环)一.实验目的1、掌握顺序和循环程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
二.实验内容1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。
试编写汇编语言程序完成以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。
2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否有‘asm’子串。
如果有,输出‘Yes’;否则,输出‘No’)。
三.实验过程和程序四.实验结果(包括必要的截图)五.实验体会实验三汇编语言子程序设计(分支、子程序)一.实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
汇编语言实验报告模版
(附录二)
汇编语言程序设计
实验报告
实验名称循环结构与子程序设计实验
班级
学号
姓名
日期
成绩
评阅人
软件学院
一、实验目的与意义
写出你认为比较重要的实验目的与意义。
二、实验环境
操作系统、调试软件名称、版本号,上机地点,机器台号三、实验的预习内容
写出你在实验前预习的主要内容、实验思路、程序框图等。
四、实验的步骤与调试方法
(1)简短明确地写出你实验的大致步骤
(2)简短明确地写出你在实验中遇到问题的调试方法五、实验数据与实验结果
实验成绩。
汇编语言实验报告..【范本模板】
汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法.汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。
目录1 利用DEBUG调试汇编语言程序段………………………………………2 初级程序的编写与调试实验(一) .................................................................................3 初级程序的编写与调试实验(二)………………………………………...4 汇编语言程序上机过程 .......................................................................................................... 5分支程序实验……………………………………………………………6 循环程序实验…………………………………………………………….。
1 利用DEBUG调试汇编语言程序段一.课程目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段.二.课程内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:—E100 41 42 43 44 48 47 46 45-D 100,L08结果:08F1:0100 41 42 43 44 48 47 46 45例2:—E 100:08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。
3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书课程设计名称:汇编语言程序设计课程设计学生所在院部:计算机学院网络工程系学号:班级: 姓名:设计题目: 字符串处理设计地点:_________基础五____________设计时间: 15周至16周成绩评定:1、工作量:大(),较大(),一般(),较小()2、难易度:难(),较难(),一般(),简单()3、答辩情况:基本操作:熟练(),较熟练(),一般(),不熟练()代码理解:准确(),较准确(),一般(),不准确()4、报告规范度:规范(),较规范(),一般(),不规范()5、学习态度:优秀(),良好(),中等(),一般()总评成绩:___________________________指导教师:___________________________1、汇编语言课程设计的目的、任务使学生综合使用所学过的汇编语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。
课程设计的目的和要求:(1)使学生巩固和加强《汇编语言》课程的理论知识。
(2)使学生掌握汇编语言的基本概念、语法、语义和数据类型的使用特点。
(3)使学生掌握汇编语言程序设计的方法及编程技巧,能正确使用汇编语言编写程序。
(4)进一步理解与运用结构化程序设计的思想和方法;学会利用流程图或N-S 图表示算法。
(5)使学生掌握调试程序的基本方法及上机操作方法。
(6)掌握书写程序设计开发文档的能力,使学生学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。
(7)通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
为学生做毕业设计打好基础。
(8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
(9)培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
(10)培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2、软件需求分析和设计从键盘输入字符串,内有数字和非数字字符(以空字符串作为输入结束标志),如:A32b2K456 178? Fgfre54f等,将其中的连续数字作为一个整数,依次存入数组a中,例如a[0]中存32、a[1]中存2、a[2]中存456、……,并将数组元素按升序排序后一次存入另一个数组中,再输出到屏幕主程序设计流程图:┌──────────────────────┐│字符处理│├──────────────────────┤│1--显示数字││2--将数字排序││3--显示字母││4--显示特殊字符││5—显示字符串││6--退出系统│└──────────────────────┘“显示字母”的二级菜单为:┌──────────────────────┐│1--显示大写字母││2--显示小写字母││3--显示元音字母│││└──────────────────────┘子程序流程图:3、程序实现说明从键盘输入字符串,内有数字和非数字字符,判断每个字符种类并存储到字符相对应字符空间。
Next:mov ah,1int 21hCMP AL,0DHJNZ GOONJMP TISHI ;显示结果GOON:inc zs 输入的字符个数+1MOV BX,OFFSET baocun 字符保存在BAOCUN存储空间MOV CX,0MOV CL,zsADD BX,CXDEC BXMOV [bx],alCMP AL,'!' 判断符号!到/之间的符号保存在FH_C中jl nextcmp al,'/'jg is_0_9inc FHXMOV BX,OFFSET FH_CMOV CX,0MOV CL,FHXADD BX,CXDEC BXMOV [bx],alis_0_9:cmp al,'0' 判断数字0之9之间的数字保存在SZ_C中jl NEXTcmp al,'9'jg NO_0_9inc SZMOV BX,OFFSET SZ_CMOV CX,0MOV CL,SZADD BX,CXDEC BXMOV [BX],ALJMP NEXTNO_0_9:cmp al,'A' 判断字母大写保存在DX_C中jl NEXTcmp al,'Z'jg NO_D_AZMOV BX,OFFSET DX_CMOV CX,0MOV CL,DAXADD BX,CXDEC BXMOV [BX],ALinc ZMMOV BX,OFFSET ZM_C 保存字母MOV CX,0MOV CL,ZMADD BX,CXDEC BXMOV [BX],ALJMP NEXT9号功能调用提示信息TISHI: MOV AH,2MOV DH,3MOV DL,9MOV BH,0INT 10Hmov ah,9mov al,'*'mov bh,0mov bl,0dahmov cx,24int 10hmov ah,9lea dx,mess1int 21hmov ah,9lea dx,mess2int 21hmov ah,9lea dx,mess3int 21hmov ah,9lea dx,mess4int 21hmov ah,9lea dx,mess5int 21hmov ah,9lea dx,mess6int 21hMOV AH,2 MOV DH,10 MOV DL,9MOV BH,0INT 10Hmov ah,9mov al,'*'mov bh,0mov bl,0dah mov cx,24int 10hxz:mov ah,1int 21hcmp al,'1'je DISP_1CMP AL,'2'JE DISP_4CMP AL,'3'JE DISP_5CMP AL,'4'JE disp_6CMP AL,'5'JE disp_7CMP AL,'6'jmp out1DISP_1: 输出数字个数和数字CALL CRLF_Pmov al,SZCALL DISP_CZRmov ah,09lea dx,SZ_Cint 21hCALL CRLF_PJMP xzDISP_2: 输出大写字母个数和大写字母CALL CRLF_Pmov al,DAXCALL DISP_CZRmov ah,09lea dx,DX_Cint 21hCALL CRLF_PJMP xz1DISP_3: 输出小写字母和个数CALL CRLF_Pmov al,XXXCALL DISP_CZRmov ah,09lea dx,XX_Cint 21hCALL CRLF_PJMP xz1DISP_4: 输出符号和符号个数CALL CRLF_Pmov al,FHXcall DISP_CZRMOV AH,09LEA DX,FH_CINT 21HCALL CRLF_PJMP xzDISP_5: 数字排序CALL CRLF_Pmov cl,szmov ch,0dec cxloop2:push cxmov bx,0loop3:mov al,SZ_C[bx] cmp al,SZ_C[bx+1]jle next2xchg al,SZ_C[bx+1]mov SZ_C[bx],al next2: add bx,1loop loop3pop cxloop loop2lea dx,SZ_Cmov ah,9int 21hcall crlf_pjmp xzxz1:call crlf_p 二级菜单设计mov ah,1int 21hcmp al,'1'je DISP_2CMP AL,'2'JE DISP_3CMP AL,'3'JE yyzmCMP AL,'4'jmp out1yyzm: 判断字母是不是元音字母并保持在yy_c中, call crlf_pmov ah,0mov cx,axmov di,0mov si,0loop1: mov al,zm_c[si] cmp al,'a'je yyzm1cmp al,'e'je yyzm1cmp al,'i'je yyzm1cmp al,'o'je yyzm1cmp al,'u'je yyzm1cmp al,'A'je yyzm1cmp al,'E'je yyzm1cmp al,'I'cmp al,'O'je yyzm1cmp al,'U'je yyzm1inc siloop loop1yyzm1:mov yy_c[di],al inc siinc diloop loop1lea dx,yy_cmov ah,9int 21hcall crlf_pJMP XZ14.程序总结在这次课程设计中我收获很多,熟悉汇编语言子程序设计方法熟悉利用汇编语言子程序参数传递方法熟悉串操作指令的功能和应用,掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理。
以往对编程的应用较少,只能编写一些简单较小的,这次课程设计一次编写了达到400行的代码。
我觉得挺不容易的,以我的基础来说本来很难做到,但是通过认真看书,不明白的又上网查阅资料,最终勉强做完了实验的要求,唯一较为遗憾的是在排序数字的要求上做的不够好,只是做了一个简单的个位数排序,没有达到要求的任意位数排序,另外题目要求的保存字符串在显示字符串,我的运行结果里只有显示字符串,在程序中直接把字符串保存在相应的存储位置在显示出来,对程序的运行思想基本做到理解,但是对程序的代码还不够熟练掌握。
需要依靠课本知识才能完成本次实验任务。
我希望可以通过更加多的实验提高我们的汇编知识,在这次选题中,每个人只做了一个属于自己的题目,所用到的知识也不相同,我觉得有点遗憾。