汇编语言程序设计报告

合集下载

汇编实验2-循环程序设计-实验报告

汇编实验2-循环程序设计-实验报告

汇编实验2-循环程序设计-实验报告一、实验目的1、了解循环程序设计的方法2、理解汇编语言中循环指令的使用3、掌握汇编语言中常用的循环结构二、实验原理1、循环指令循环指令是计算机中常用的一种控制结构,其作用是重复执行一定的操作。

在汇编语言中,常用的循环指令有LOOP、LOOPE、LOOPNE等,具体功能如下:(1)LOOP:重复执行指定次数的操作;(2)LOOPE:执行操作直到CX寄存器为0或ZF寄存器为1;(3)LOOPNE:执行操作直到CX寄存器为0或ZF寄存器为0。

LOOP指令的语法格式如下:LOOP label其中,label表示循环的目标地址。

2、循环结构循环结构是计算机程序设计中常用的一种结构,其基本形式包括:while、do...while、for等。

在汇编语言中,常用的循环结构有以下两种:(1)无限循环结构:该结构适用于需要不停顿地进行某项操作的情况,底层逻辑基于测试指令;(2)计数器循环结构:该结构适用于需要循环指定次数的情况,底层逻辑基于循环指令。

三、实验内容1、使用循环指令实现计算1~10的和;2、使用循环结构实现计算1~10的和。

四、实验步骤1、使用循环指令实现计算1~10的和。

(1)将计数器初始化为10,即MOV CX,10;(2)将累加器初始化为0,即MOV AX,0;(3)将当前计数器值加到累加器中,即ADD AX,CX;(4)将计数器减1,即DEC CX;(5)判断计数器是否为0,若不为0,则执行第3步;若为0,则跳转到计算结果的部分。

2、使用循环结构实现计算1~10的和。

(1)将计数器初始化为10,即MOV CX,10;(2)将累加器初始化为0,即MOV AX,0;(3)将当前计数器值加到累加器中,即ADD AX,CX;(4)将计数器减1,即DEC CX;(5)判断计数器是否为0,若不为0,则执行第3步;若为0,则跳转到计算结果的部分。

五、实验结果(1)使用循环指令实现计算1~10的和MOV CX,10MOV AX,0LOOP label1ADD AX,CXDEC CXJNZ label1label1:MOV sum,AX(2)使用循环结构实现计算1~10的和MOV CX,10MOV AX,0label2:ADD AX,CXDEC CXJNZ label2MOV sum,AX六、实验总结本次实验实现了两种不同的循环方式,分别使用了循环指令和循环结构。

实验4 顺序结构程序设计

实验4  顺序结构程序设计

河北工业大学城市学院《汇编语言程序设计》实验报告实验4 顺序结构程序设计一、实验目的1.掌握汇编语言集成开发环境下编写完整汇编程序的书写方法。

2.掌握汇编语言集成开发环境下汇编程序的汇编、连接、执行和调试。

3.常用伪指令的使用。

4. 掌握顺序结构程序的编写方法。

二、实验内容1.从键盘输入一个大写字母,将其转换为小写字母并显示在屏幕上解:程序代码为:DATAS SEGMENTDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXMOV AH,1;功能号为1,键盘输入单字符并回显INT 21HADD AL,32MOV DL,ALMOV AH,2;功能号为2,显示输出单字符INT 21HMOV AH,4CHINT 21HCODES ENDSEND START运行结果如图所示:2.在内存X和Y单元各存放了一个非压缩BCD码,将它们组合为压缩BCD码并存于Z单元(高地址做高位)。

解:程序代码为:DATAS SEGMENTX DB 00000101BY DB 00000110BZ DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXMOV CL,4SHL X,CLMOV CL,YOR CL,XMOV Z,ALMOV AH,4CHINT 21H CODES ENDSEND START运行结果如图所示:3.在内存TAB开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤X ≤15),求X的平方值,并把结果存放在Y单元中。

解:程序代码为:DATAS SEGMENTTAB DB 0,1,4,9,16,25,36DB 49,64,81,100,121DB 144,169,196,225X DB 6Y DB? DATAS ENDS CODESSEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXLEA BX,TABMOV AL,XMOV AH,0ADD BX,AXMOV AL,[BX]MOV Y,ALMOV AH,4CHINT 21H CODES ENDSEND START。

汇编语言设计报告

汇编语言设计报告

实验报告课程名称: 指导老师: 成绩:__________________实验名称: 实验类型: 同组学生姓名:一、实验目的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五、实验总结。

《汇编语言程序设计》实验报告(一)

《汇编语言程序设计》实验报告(一)
MESS1 DB 'MATCH!’,13,10,’$'
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. 掌握建立、汇、链接、运行汇编语言程序的过程。

汇编语言程序设计报告

汇编语言程序设计报告

《汇编语言》课程设计报告专业计算机科学与技术学生姓名张竹青班级Z计算机151学号1560704132任课老师王志宏完成日期2017年12月29日目录1概述 (1)1.1 设计目的 (1)1.2 设计内容 (1)2系统需求分析 (1)2.1 系统目标 (1)2.2 主体功能 (2)2.3 开发环境 (2)3 系统概要设计 (2)3.1 系统的功能模块划分 (2)3.2 系统流程图 (4)4系统详细设计 (5)4.1界面设置 (5)4.2选择算法设置 (5)4.3十进制转换设置 (5)5测试 (6)5.1 测试方案 (6)5.2 测试结果 (6)6小结 (7)参考文献 (9)实现加减乘除四则运算的计算器1 概述1.1 设计目的使用汇编语言,通过实现简单计算器的一般功能,如加、减、乘、除的计算来了解并掌握DOS系统功能的调试方法,学会画出编程的具体流程图,同时在程序设计过程中熟悉各种指令的应用和意义,以及如何进行上机编辑、汇编、连接和调试。

本课程设计也是对课堂上所学的基本理论知识和程序设计方法的巩固和深化,提高我们的编程思想、分析问题和解决问题的综合应用能力,能够编写较复杂的应用程序,最终达到熟练地掌握结构化程序设计技术和编写汇编源程序的基本方法的目的。

1.2 设计内容设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的十六进制数,当程序执行时需在文件名后直接跟上计算表达式,每当读到一个有效的表达式时对表达式进行相应的运算后,输出用十进制数或十六进制数表示的运算结果,如在命令提示符下执行结果如下:c:\tasm>js 3+252 系统需求分析2.1 系统目标本次汇编语言课程设计的最终目的是要实现一个简单的加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

具体功能如下:(1)调用中断把要做运算的两个数输入到屏幕上并用程序将他们存储起来(2)判断用户所输入的运算是四则运算中的哪一种运算(3)判断运算过程中是进位还是借位(4)选择用何种输出方式(5)实现清屏2.2 主体功能要求该程序接受的是十六进制数,执行相应的计算后,计算结果以十六进制数或十进制数输出。

汇编语言程序设计报告

汇编语言程序设计报告
五、源程序清单
_DATA SEGMENT
MESS1 DB 'Please,input source file name:',0DH,0AH,24H
MESS2 DB 0DH,0AH,'Please,input target file name:',07H,0DH,0AH,24H
MESS3DB'***************************************',0DH,0AH,24H
FDF DB 0DH,0AH,'Target file has existed!',07H,0DH,0AH,24H
FDE DB 0DH,0AH,'Target path has not existed!',07H,0DH,0AH,24H
FRE DB 0DH,0AH,'File reading error.',07H,0DH,0AH,24H
MOV AH,0AH ;键盘输入到缓冲区DS:DX=缓冲区首地址
INT 21H
;------------------
MOV BL,[FBUFFER+1] ;将输入文件名的最后一个回车符换成0,因为建立的文件名不能包括不可见字符
XOR BH,BH
MOV SI,OFFSET FNAME
ADD SI,BX
MESS4 DB'*It is made byHuimingkun 0810704506*',0DH,0AH,24H
MESS5DB '***************************************',0DH,0AH,24H
FNF DB 0DH,0AH,'Source file has not existed!',07H,0DH,0AH,24H

汇编语言程序设计报告实验1

汇编语言程序设计报告实验1

西安郵電學院汇编语言程序设计报告一. 设计目的熟悉Emu8086并掌握其用法;理解8086的寻址方式,熟悉8086指令系统的常用指令,了解8086汇编语言程序的格式和上机过程,掌握顺序程序设计方法。

二. 设计内容✧假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X、Y和Z,试编制一个程序计算X←X+Y+Z。

✧写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把结果存放在D_SEG段中的SUM中。

其中,AUGEND、ADDEND和SUM均为双精度数,AUGEND赋值为99251,ADDEND赋值为-15962三.详细设计重点设计及编码。

1、x_seg segment ;定义数据段x dw 10Hx_seg endsy_seg segment ;定义附加段y dw 11Hy_seg endsz_seg segment stack ;定义堆栈段z dw 12Hz_seg endscode_seg segment ;代码段assume cs:code_seg,ds:x_seg,es:y_seg,ss:z_segstart:mov ax,x_seg ;将数据段放入dsmov ds,axmov ax,y_seg ;将附加段放入esmov es,axmov ax,z_seg ;将堆栈段放入ssmov ss,axmov ax,xadd ax,es:y ;计算x+y,并把结果放入axadd ax,ss:z ;计算x+y+z, 并把结果放入axmov x,ax ;;把x+y+z的结果放入xMOV BX, x ;打印结果MOV CH,4MOV DH,1AA:MOV CL,4ROL BX,CLMOV AL,BLAND AL,0fHADD AL,30HCMP AL,3AHJL PRINTADD AL,07HPRINT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ AAmov ah,4ch ;返回dosint 21hcode_seg endsend start2、D_SEG segment ;定义数据段AUGEND dd 99251SUM dd ?D_SEG endsE_SEG segment ;定义附加段ADDEND dd -15962E_SEG endsC_SEG segment ;代码段assume cs:C_SEG,ds:D_SEG,es:E_SEGstartmov ax,D_SEGmov ds,axmov ax,E_SEGmov es,axmov ax,word ptr [AUGEND] ;取AUGEND的低16位放入axadd ax,word ptr es:[ADDEND] ;取ADDEND的低16位和AUGEND的低16位相加mov dx,word ptr [AUGEND+2] ;取AUGEND的高16位放入dxadc dx,word ptr es:[ADDEND+2] ;取ADDEND的高16位和AUGEND的高16位相加,如低16为有进位,加上进位mov word ptr [SUM],ax ;相加和的低16为放入[SUM]的低16位mov word ptr [SUM+2],dx ;相加和的高16为放入[SUM]的高16位MOV CH,4 ;打印MOV DH,1AA:MOV CL,4ROL BX,CLMOV AL,BLAND AL,0fHADD AL,30HCMP AL,3AHJL PRINTADD AL,07HPRINT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ AAMOV BX,WORD PTR [SUM]MOV CH,4DEC DHJZ AAmov ah,4CH ;返回dosint 21HC_SEG endsend start四.测试数据及运行结果1、点击Single Step单步运行程序,查看执行结果运行结果如图:2、使用masm对程序进行汇编:使用link命令生成可执行文件:执行1_2.exe程序,结果如下:五.调试情况,设计技巧及体会1.对自己的设计进行评价,指出合理和不足之处,提出改进方案;2.对设计及调试过程的心得体会。

汇编语言程序设计实验小结

汇编语言程序设计实验小结

汇编语言程序设计实验小结在本次汇编语言程序设计实验中,我学到了很多关于汇编语言的知识和技能。

通过实验,我不仅加深了对汇编语言的理论理解,还掌握了如何利用汇编语言编写并调试程序的实际操作技巧。

以下是我在实验中得出的一些总结点:
1. 在编写汇编语言程序时,要注意代码的规范和紧凑性。

代码规范可以避免一些常见的错误,并且使得程序的可读性更强;代码紧凑性则可以减小程序的体积和复杂度,提高程序的执行效率。

2. 调试汇编语言程序时,要善于使用调试工具。

例如,我们可以使用单步执行、断点调试等功能,逐一排查代码中的错误点。

3. 在编写汇编语言程序时,要注意对内存的访问控制。

内存访问控制的不当会导致内存泄露、数据错乱等问题,因此需要谨慎处理。

4. 另外,在实践中我还发现,为了更好的学习汇编语言,可以多观察和分析汇编代码,深入理解其中的奥秘和原理。

同时,还可以参考一些优秀的汇编语言程序设计实例,帮助自己更好的掌握汇编编程技巧。

总的来说,本次汇编语言程序设计实验是我学习汇编语言的一次很好的实践机会。

通过这次实验的学习,我不仅可以掌握基本的汇编语言编程技能,而且还能够通过实际实践的经验教训,提升自己的汇编语言调试和解决问题的能力。

汇编语言程序设计实验报告(韩阳)

汇编语言程序设计实验报告(韩阳)

汇编语言程序设计实验报告ASSEMBLY LANGUAGE PROGRAMMING班级:计科1103班学号:2011014257姓名:朱楠北京化工大学信息科学与技术学院二〇一三年六月实验一汇编语言源程序的建立、汇编、连接和运行一、实验目的:1.学习汇编语言源程序的编辑、汇编、连接、运行全过程。

2.了解汇编程序、连接程序、DOS系统装入和返回功能。

掌握MASM、LINK的应用。

3.掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言程序的开发过程。

4.掌握DOS系统功能调用的基本方法。

二、实验原理:调用DOS系统功能21h的简单输入输出功能。

三、实验内容:1.从键盘输入一个字符并回显到显示器上。

源程序: code segmentassume cs:codestart:mov ah,1int 21hmov ah,4chint 21hcode endsend start2.显示输出一个字符Q源程序:code segmentassume cs:codestart:mov ah,2mov dl,'Q'int 21hmov ah,4chint 21hcode endsend start3.在屏幕上显示输出“I love DOTA”源程序:data segmentznzn1 db'I LOVE DOTA$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ah,9hint 21hmov ah,4chint 21hcode endsend start4.编写一个程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示ERROR源程序data segmentstring db 'error!$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov ah,7int 21hcmp al,'a'jnl next1jmp next2next1:cmp al,'z'jg next2mov ah,2sub al,20hmov dl,alint 21hmov ah,4chint 21hnext2:mov ah,9lea dx,stringint 21hmov ah,4chint 21hcode endsend start5.在屏幕上输出10个“T”源程序:code segmentassume cs:codestart:mov cx,10again:mov ah,2mov dl,'t'loop againmov ah,4chint 21hcode endsend start四、结果与分析:按要求输入输出,完成实验要求。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

实验报告实验名称汇编语言程序设计||专业班级:信息安全学号:姓名:实验一汇编语言上机过程和Debug常用调试命令一.实验目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。

二.实验题目:熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。

在调试过程中,学习及掌握debug程序的各种操作命令。

三.问题描述:试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘match’; 否则,显示‘no match’。

四.方法说明:a)使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。

b)用汇编程序masm(或asm)对源文件汇编产生目标文件obj如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。

c)用连接程序link 产生执行文件EXE.d)执行程序,可直接从DOS执行程序。

e)使用debug程序调试程序的方法。

五.实验步骤:1.调用字处理程序EDIT 建立以sample.asm文件datarea segmentstring1 db‘move the cursor backward.’string2 db‘move the cursor backward.’mess1 db ‘Match..’,13,10,’$’mess2 db ‘No match!..’,13,10,’$’datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datareastart:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx, mess1disp:mov ah,09int 21hretmain endpprognam endsend start2.对源文件汇编产生目标文件objD:\masm 文件名。

汇编语言顺序程序设计实验报告

汇编语言顺序程序设计实验报告

实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。

实验内容:1. 汇编语言基础知识1.1 汇编语言的概念1.2 汇编语言的特点1.3 汇编语言的应用领域2. 汇编语言程序设计2.1 程序设计的基本流程2.2 程序设计的基本步骤2.3 汇编语言程序设计的规范与技巧3. 实验步骤3.1 确定实验题目和要求3.2 分析实验任务,设计程序流程图3.3 编写汇编程序3.4 调试程序,确保程序正确运行3.5 编写实验报告4. 实验报告要求4.1 实验题目4.2 实验目的4.3 实验内容和步骤4.4 程序设计思路和实现方法4.5 实验结果分析和讨论4.6 实验心得体会实验过程:1. 确定实验题目和要求本次实验的题目为“汇编语言顺序程序设计”,要求学生使用汇编语言编写一个顺序程序,实现指定的功能要求。

2. 分析实验任务,设计程序流程图在开始编写汇编程序之前,我们首先要明确实验的功能需求,然后设计程序的流程图,规划程序的整体结构。

3. 编写汇编程序在设计好程序流程后,根据汇编语言的语法规则,编写相应的程序代码,并确保程序的逻辑正确,语法无误。

4. 调试程序,确保程序正确运行编写完成程序后,需要对程序进行调试,逐步检查程序运行过程中的各个环节,发现并修复可能存在的错误。

5. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。

实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。

在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。

实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。

汇编语言程序设计报告

汇编语言程序设计报告

汇编语言程序设计报告计算机学院2011/6/7题目要求分支程序设计:1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。

子程序设计:2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其转换成大写字母,并显示在屏幕上。

循环程序设计:3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。

DOS功能调用:4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。

5、编写一个生成ASCII码表的程序,并显示在屏幕上。

6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年,则在屏幕上显示“Y”,否则显示“N”。

7、显示杨辉三角形。

要求:(1)从键盘接收正整数n;(2)屏幕显示杨辉三角形,显示n行信息;编程思路:1.在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。

利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错,值存入SCORE中,将SCORE的高位分别与9,8,7,6相比,跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A.2.在数据段设置ADDRESS存放数据偏移量和COUNT计数器利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。

COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。

3.在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a 则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。

4.堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2,CX出栈,进入外循环,输出下一行信息。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。

编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。

二、实验目的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文件只是个文本文件,计算机无法执行。

汇编语言程序设计报告

汇编语言程序设计报告

目录作品描述 (3)概要设计 (3)1.主程序: (3)2.MOVE子程序 (5)详细设计 (6)1.“汽车”图形表 (6)2.开始 (7)3.清屏并显示“汽车”,擦除 (8)4.延时程序 (9)5.判断是否出屏(换行) (10)6.检测键盘输入 (11)调试过程 (14)1.程序截图 (14)2.初始界面 (15)3.小车运动,暂停,继续 (15)4.键入q或Esc,返回主界面 (17)5.运动到最右端时,跳回左端,继续运动 (17)总结 (18)附录 (20)参考文献 (26)摘要:这次实验我的作品是小车动画。

要求的效果是:先在屏幕上显示主界面。

当选择‘1’时在屏幕上显示一辆小车,从屏幕的左方向右运动,至右方边界再回到左方,如此循环运动。

在汽车运动的过程中,要求对键盘进行检测,无键入则持续运动,若键入‘P’则暂停,再按空格键则继续运动。

若键入‘Q’或是‘ESC’则返回主界面;选择‘2’时则结束程序。

小车是由七个字符组成,先利用循环将字符显示在屏幕上,然后调用擦除子程序,用空格逐个覆盖方才显示的小车字符,实现擦除,然后将小车的列坐标加1,从而实现小车的向右运动。

在显示和擦除的中间添加中断,检测键盘。

通过对输入字符ASCⅡ码的比较,来判断是暂停或是返回主界面。

Abstract:My work in this experiment is the animation of the car. The effect I required is the points below. First, it must show the main interface on the screen. When you select the number '2', it will exit. And when you select the number '1', there will be a car displayed on the screen, and it runs from the left side to the right of the screen. When the car get to the end of the screen, it may jump to the beginning and repeat moving. Second, between the motion of the car, it required to detect the condition of the keyboard. If there input nothing, continue moving. If there input 'p', pause movement, then input space, it will continue moving. If there input the letter 'q' or the order Esc, it will return to the main interface. The car is made up of 7 characters. It displayed on the screen with a loop segment, and then call the subroutine whose name is ERASE. In this part of programme, it will make the space covered car characters one by one. After erasing, the row coordinates of the car will plus 1 that realize the movement. During the show and erase there plus a BIOS interrupt which function is detecting the condition of keyboard. According to the comparison of the input character and the ASCⅡof the character appointed, it can make a judgment to suspended or back to the main interface.作品描述本程序定义了一个汽车图形,4个变量分别表示组成图形的字符个数(CHAR_CNT),小车字符表的地址(POINTER),行坐标(LINE_ON),列坐标(COL_ON),用于控制汽车清图和画图。

《汇编语言程序设计》报告

《汇编语言程序设计》报告
movcx,256
rep movsb
MOVAH,4CH
INT 21H
CODESENDS
ENDSTART
第二部分地址块减一方法移动块的源程序:
DATASSEGMENT
sourcedb256dup(055h)
targetdb256dup(0aah)
DATASENDS
STACKSSEGMENT
STACKSENDS
lea dx,mess2
jmp short disp
match:lea dx,mess1
disp:mov ah,9
int 21h
mov ah,4ch
int 21h
ret
main endp
code ends
end start
执行结果:
实验二用DEBUG编程:使用堆栈段将
AX和BX的内容进行交换等
一:程序说明:
一、程序说明:
第一个程序是存储块清零。程序流程大概为首先设置起始地址,然后设置块长度,然后将当前地址内容清零,地址加1,然后查看是否清除完全,若没有则回到当前地址清零,然后再查看,直到地址内容清除完,结束程序。
第二个程序是内存块移动。程序流程框图为:首先设置块的源地址,然后设置筷的目的地址,然后再设置移动长度,然后按长度重复传送数据,然后结束。
二、调试说明
调试程序可以在debug中进行,基本步骤和前面的实验大致相同,在软件Masm集成实验环境2008.4中编辑程序,则可以直接点击程序上的调试按钮,即可进行调试。调试时可通过-t指令来逐步运行程序,观察相关内容变化,来调试程序。
三:源程序代码和执行结果:
DATAS SEGMENT
string1 db ' this not is a zimu!Please input between a to z!',0ah,0dh,'$'
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:一、实验目的:1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。

2. 了解汇编程序、连接程序、DOS系统装入和返回功能。

掌握MASM、LINK的应用。

3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。

4. 掌握DOS系统功能调用的基本方法。

二、实验原理通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上三、实验内容及算法流程、源程序清单实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。

源程序清单:实验1.asm实验1.obj实验1.execode segmentassume cs:codestart: mov ah,1int 21hmov ah,4chint 21hcode endsend start实验二:编写程序,显示一个字符Q一、实验目的1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。

2、了解汇编程序、连接程序、DOS系统装入和返回功能。

掌握MASM、LINK的应用。

3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。

4、掌握DOS系统功能调用的基本方法。

二、实验原理通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 编写程序,显示输出一个字符Q。

源程序清单:实验2.asm实验2.obj实验2.execode segmentassume cs:codestart:mov ah,02mov dl,'Q'int 21hmov ah,4chint 21hcode endsend start实验三:编写程序,在屏幕上显示输出“I love DOTA”一、实验目的1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。

2、了解汇编程序、连接程序、DOS系统装入和返回功能。

掌握MASM、LINK的应用。

3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。

4、掌握DOS系统功能调用的基本方法。

二、实验原理考察通过调用(INT 21H)表中的0ah号功能显示输出字符串三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。

源程序清单:实验3.asm实验3.obj实验3.exedata segmentbuf db 'I love DOTA.$'data endscode segmentassume cs:code ds:datastart: mov ax,datamov ds,axlea dx,bufmov ah,9int 21hmov ah,4chint 21hcode endsend start实验四:实验名称:编写一个程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示ERROR。

一、实验目的综合转移指令与字符串显示操作。

二、实验原理对输入的字符进行比较,若为小写字母的字符,则通过02h号功能显示该字符的大写形式,否则通过JMP跳转指令输出字符串。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 编写一个汇编语言程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示error。

流程(流程框图)源程序清单:实验4.asm实验4.obj实验4.exedata segmentbuf db 'ERROR$'data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov ah,01int 21hpush axmov ah,02mov dl,0ahint 21hpop axcmp al,'a'jb Acmp al,'z'ja Asub al,20hmov dl,almov ah,02int 21hjmp BA: lea dx,bufmov ah,9int 21hB: mov ah,4chint 21hcode endsend start实验五:编写程序在屏幕上显示10个“T”。

一、实验目的通过LOOP循环语句控制输出,熟悉LOOP语句的用法。

二、实验原理通过LOOP循环语句置CX寄存器的值为10,并在循环体内调用02H功能,进行字符输出。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 编写程序,在屏幕上输出10个“T”。

源程序清单:实验5.asm实验5.obj实验5.execode segmentassume cs:codestart: mov cx,10again:mov dl,'T'mov ah,02int 21hloop againmov ah,4chint 21hcode endsend start实验六:从键盘输入一个字符,如果是x则显示10个*,如果是y,则显示10个@如果是z,则显示10个$,否则退出程序。

一、实验目的主要考察JMP转移指令以及条件转移指令。

二、实验原理对输入的字符进行比较,如果满足相应的条件则根据条件转移指令转移到不同的地方输出不同的字符。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 从键盘输入一个字符,如果是x则显示10个*,如果是y,则显示10个@如果是z,则显示10个$,否则退出程序。

源程序清单:实验6.asm实验6.obj实验6.execode segmentassume cs:codestart: mov cx,10mov ah,01int 21hcmp al,'x'jz Acmp al,'y'jz Bcmp al,'z'jz Cjmp DA: mov dl,'*'mov ah,02int 21hloop Ajmp DB: mov dl,'@'mov ah,02int 21hloop Bjmp DC: mov dl,'$'mov ah,02int 21hloop Cint 21hD: mov ah,4chint 21hcode endsend start实验七:从键盘输入一个字符串,要求将其转换为大写字符串显示。

一、实验目的考察DOS系统调用里的02H号功能进行字符串输入操作。

二、实验原理通过调用DOS系统调用里的02H号功能进行字符的输入操作,将其中的每个字符先进行判断,合乎要求的减去20h然后存储,最后对其输出。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 从键盘输一个字符串,要求将其转换为大写字符串显示。

流程(流程框图)源程序清单:实验7.asm实验7.obj实验7.exeassume cs:code,ds:datadata segmentstring db 100 dup(?)data endscode segmentstart: mov ax,datamov ds,axlea si,stringmov ah,01next:int 21hcmp al,13jz donecmp al,'a'jl noopsub al,20hnoop:mov [si],alinc sijmp nextdone:mov ah,02mov dl,13int 21hmov dl,10int 21hmov byte ptr [si],'$'mov ah,09lea dx,stringint 21hmov ax,4c00hint 21hcode endsend start实验八:编写程序从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。

一、实验目的通过条件转移指令产生不同的分支。

二、实验原理通过对输入的字符进行比较,若为小写字母字符,则先将该字符的ASCII码减去1输出,然后依次加上1后在输出,一共输出3个字符即可。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)实验内容: 编写程序,从键盘接受一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符。

流程(流程框图)源程序清单:实验8.asm实验8.obj实验8.exeassume cs:code,ds:datadata segmentbuf db 'Please input one character :$'str db 'ERROR!!!!$' data endscode segmentstart: mov ax,datamov ds,axlea dx,bufmov ah,09int 21hmov ah,07int 21hcmp al,'a'jz Ccmp al,'z'jz Dcmp al,'b'jb Acmp al,'y'ja Amov dl,almov ah,02int 21hmov bl,almov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02int 21hmov al,blsub al,1hmov dl,almov ah,02int 21hadd al,1hmov dl,almov ah,02int 21hadd al,1hmov dl,almov ah,02int 21hjmp B A:lea dx,strmov ah,09int 21hjmp BC: mov dl,almov ah,02int 21hmov dl,0dhmov ah,02int 21hmov dl,0ahmov ah,02int 21hmov dl,'a'mov ah,02int 21hmov dl,'b'mov ah,02int 21hjmp BD: mov dl,almov ah,02int 21hmov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02int 21hmov dl,'y'mov ah,02int 21hmov dl,'z'mov ah,02int 21hjmp BB: mov ax,4c00hint 21hcode endsend start实验九:从键盘接收一个小写字符串,并将该字符串在屏幕上进行显示,然后再下一行输出剔除其中数字字符的字符串。

相关文档
最新文档