《汇编语言程序设计》习题解答及课程实验、设计辅导

上传人:xt****7 文档编号:90769011 上传时间:2022-05-16 格式:DOC 页数:99 大小:808KB
收藏 版权申诉 举报 下载
《汇编语言程序设计》习题解答及课程实验、设计辅导_第1页
第1页 / 共99页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第2页
第2页 / 共99页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第3页
第3页 / 共99页
资源描述:

《《汇编语言程序设计》习题解答及课程实验、设计辅导》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》习题解答及课程实验、设计辅导(99页珍藏版)》请在装配图网上搜索。

1、实验一 汇编程序的汇编及运行1.实验目的(1)熟悉汇编程序的汇编、连接、执行过程;(2)生成LST文件,查看LST文件;(3)生成OBJ文件,修改语法错误;(4)生成EXE文件;(5)执行程序。2.实验涉及知识汇编程序从编写到执行的过程编程.ASM编译.OBJ连接.EXE加载内存中的程序执行1)编写源程序用EDIT或记事本输入各段,并存储成源程序(保存在MASM目录下),扩展名为ASM。2)对源程序进行汇编、连接操作如下:(1)在DOS状态下,进入MASM目录;(2)输入命令:MASM 文件名(连同扩展名);(3)在系统出现的提示中输入: object filename.obj:按回车键。So

2、urce listlingnul.lst:输入:文件主名,生成lst文件,也可以不生成,直接按回车键。Lst文件用于查看编译为目标文件的过程中产生的中间结果。 Cross-reference nul.crf:按回车键。(4)如果系统没有提示出错,那么编译过程就完成了。如果提示错误则应用edit打开源文件进行修改,然后再重复2和3步骤(5)输入:link 文件主名(不要输扩展名) run file .exe:按回车键。 List file nul.map:按回车键。 Libraries .lib:按回车键。 (6)没有提示错误,汇编过程就结束了,产生了exe可执行文件。如果出现no strack

3、 segment的错误警告,不用理会。3)执行程序(由DOS中的COMMAND命令将文件加载入内存)在DOS提示符下直接输入文件主名就可以执行文件了。程序执行后,有的会显示结果,有的可能执行后什么结果都没有,是因为程序中没有显示命令。3.实验内容1)将下面的数据段输入,取名1.ASM,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATA SEGMENT ORG 20H NUM1=9 NUM2=NUM1+10HDA1 DB Tinkpad PC DB 0AH, 0DHCOUNT EQU $

4、-DA1DATAENDS ENDCount 000C DA1 00202)输入下面错误的文件,修改错误语句。(MASM没有出现错误即可。不必连接、运行。) 将VAR3 DB ABCDEF改为VAR3 DB ABCDEF 正确代码:DATA SEGMENTVAR1DB 0, 25, 0DH, 255VAR2 DB 12H, 04H, 6BHVAR3 DB ABCDEFVAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENT ASSUMECS: CODE, DS: DATASTART:MOV AX, DATA MOV DS, AX LE

5、A SI, VAR5 MOV BX, OFFSET VAR2 MOV AX,0ABH MOV SI,AX MOV AL, VAR1+2 MOV AX,SI MOV BX,AX MOV AX,VAR4 MOV VAR5+4,AX MOV AH, 4CH INT 21HCODEENDS ENDSTART 3)输入下面程序并运行STACKSSEGMENT STACK DW 128 DUP(?)STACKSENDSDATASSEGMENT STRING DB WELCOME!, 13, 10, $DATASENDSCODESSEGMENT ASSUMECS: CODES, DS: DATASSTART

6、: MOVAX, DATAS MOVDS, AX LEA DX, STRING MOVAH, 9 INT 21H MOV AH, 4CH INT 21HCODESENDS ENDSTART修正代码STRING DB WELCOME!, 13, 10, $START: MOVAX, DATAS实验二 顺序程序设计 1.实验目的 (1)学习使用DEBUG的命令; (2)使用DEBUG命令在数据段中查看程序运行的结果; (3)利用DEBUG运行简单的程序段。 2.实验内容 1)输入程序观察寄存器变化 使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。

7、注意用T命令执行时,CS: IP寄存器的内容MOVAX, 4E20ADDAX, 1416MOVBX, 2000ADDAX, BXMOVBX, AXADDAX, BXMOVAX, 001AMOVBX, 0026ADDAL, BLADDAH, BL ADDBH, AL MOVAH, 0 ADDAL, BL ADDAL, 9CIP值在不断增加2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。如果是将小写字母改成大写字母带注释的语句该如何修改?DSEGSEGMENTMSG1DBabcDSEGENDSCSEGSEGMENT ASSUMECS: CSEG, DS: DSEGS

8、TART:MOVAX, DSEG MOVDS, AX LEABX, MSG1 MOVCX, 3 S:MOVAL, BX ANDAL, 11011111B ;将AL中的ASCII码的第5位置0,;变成大写字母。 MOV BX, AL INCBX LOOPS MOVAL, 0 MOVAH, 4CH INT 21HCSEGENDS ENDSTART3)程序的跟踪执行操作在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢?程序执行过程的跟踪操作步骤如下:(1)(2)在DEBUG提示符下输入U命令如果程序中有数

9、据段,可以看到反汇编后第一句可执行语句为:A地址:B地址 MOV AX, K地址 如:1261:0000 MOVAX, 1260其中:K地址就是数据段的段寄存器内容,A地址为代码段段寄存器地址,B地址为程序第一条指令的偏移地址。(3)可以用T命令单步执行指令,执行到 MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000)(4)用D命令查看程序执行后数据段的变化输入:D K地址:0 (如:D1260:0)在显示的数据中,对照源程序或LST文件查看结果所在的偏移地址的内容。4)输入下面的程序,按实验一和上面的步骤运行一遍。这是一个两个数相与的程序。结果存放在

10、MSG2单元中,偏移地址为?值为多少?DSEGSEGMENTMSG1DW7856H, 2038HMSG2DW?DSEGENDSCSEGSEGMENT ASSUMECS: CSEG, DS: DSEGSTART:MOVAX, DSEG MOV DS, AX MOVAX, MSG1 ANDAX, MSG1+2 MOVMSG2, AX MOVAL, 0 MOVAH, 4CH INT21HCSEG ENDS ENDSTART3.编写调试下面的程序,用DEBUG查看数据段中的结果1),X,Y,W为字节类型变量,结果存于Z单元,写出数据段和代码段。2)X,Y为字节类型数,求,写出完整的数据段和代码段,不用

11、乘除指令。实验三 分支循环程序设计 1.实验目的 (1)学习调试程序,查找逻辑错误; (2)学习分支语句的编程和调试; (3)学习循环语句的编程和调试。 2.实验内容 1)有10个数,统计正数的个数,存放在变量M中中。经过汇编后,形成EXE文件。在DEBUG中,先用G0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。用单步执行命令T0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确?(AL寄存器中存放正数的个数)DSEGSEGMENT MSGDB 4, -2, -6, 0, 5, 67, 8, -3, 5, 6MDB ?DSEGENDSCSEGSEG

12、MENT ASSUMECS: CSEG, DS: DSEGSTART:MOVAX, DSEG MOVDS, AX MOVCX, 10 MOVAL, 0 LEASI, MSGL1:MOVBL, SI CMP BL, 0 JBENEXT INCALNEXT:INCSI LOOPL1 MOVM, AL MOVAL, 0 MOVAH, 4CH INT21HCSEGENDS ENDSTART2)数据段中是一组无符号数,将最小数存放在M单元中。按上题方法查找一处逻辑错误。DSEGSEGMENT MSGDB 13, 15, 7, 25, 24M DB ?DSEGENDSCSEGSEGMENT ASSUMEC

13、S: CSEG, DS: DSEGSTART:MOVAX, DSEG MOVDS, AX MOVCX, 4 MOVAL, MSG MOVSI, OFFSET MSG+1L1:CMP AL, SI JBNEXT MOVAL, SINEXT:LOOP L1 MOVM, AL MOV AL, 0 MOVAH, 4CH INT 21HCSEGENDS END START3)编程:在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。4)编程:,Ai,Bi为字节型无符号数,分别存于NUM1和NUM2开始的连续存储单元中,结果存于REST单元中。实验四 子程序设计1

14、.实验目的 (1)学习子程序的编写,主子程序的调用; (2)不同模块间程序的调用和调试。2.实验内容1)数据段中的3个字符,调用子程序将其逐个显示出来。子程序的功能是显示一个字符。单步执行,对CALL语句和RET语句观察SP,IP的变化,并用D命令查看栈顶的内容。DATASEGMENTMAGDB ABCDATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATA MOVDS, AX MOVSI, 0 MOVCX, 3LL:MOV DL, MAGSICALL MADD INCSI LOOPLLMOVAH, 4CHINT21HMADDPR

15、OCMOV AH, 02H INT 21HRETMADDENDPCODEENDS END START2)阅读S31.ASM和S32.ASM两个模块中的程序,并分别汇编,然后连接成一个可执行文件。具体步骤如下:MASM S31.ASM(分别汇编)MASM S32.ASMLINK S31 S32 (将两个文件连接成为一个文件名为S31)S31.EXE (运行)3)编程:利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来。(也可以将找到的不相等字符逐个显示,用INT 21H的02功能调用)4)编程:子程序搜索指定字符缓冲区中是否有N,如果有用Y替代。调用子程序

16、将BUF1,BUF2,BUF3中的N全部用Y替代。附源程序:不同模块间的段间调用。从键盘输入2位非压缩BCD数,存入AX寄存器中。为了将其转换为二进制数,编写一个子程序TRAN。显示子程序DISP完成将16进制数转换为对应的ASCII码并显示该字符,显示子程序在另一模块S32中。输入数据为00时结束。EXTRNDISP: FARCODESEGMENTPARA CODEASSUMECS: CODESTART:MOVAH, 01H INT21H MOVBL, AL INT21H MOVAH, AL MOVAL, BLCMPAX, 3030H JEEXIT CALLNEAR PTR TRAN CAL

17、LFAR PTR disp JMPSTARTEXIT:MOV AH, 4CH INT21HTRANPROCNEAR ;将输入的ASCII码转换成2进制数ANDAX, 0F0FH ;将ASCII码转换成非压缩BCD码,;高位在AL中 MOVBL, AH MOVCL, 10D MULCL ADDAL, BLRETTRANENDPCODEENDSEND STARTPUBLICDISPCODE1SEGMENTPARA CODEASSUMECS: CODE1DISP PROC FAR MOVBL, AL MOVBH, 00 MOVCH, 4ROLL:MOVCL, 4 ROLBX, CL MOVDL, B

18、L ANDDL, 0FH CMPDL, 9 JBENEXT1 ADDDL, 07HNEXT1:ADDDL, 30H MOVAH, 02H INT21H DECCH JNZROLLRETDISPENDPCODE1 ENDSEND 实验五 DOS功能调用1.实验目的(1)学会DOS中关于显示功能调用指令的用法;(2)领会修改显存方法显示字符。2.实验内容1)输入一个字符,显示出来。2)输入一个字符串,显示出来。3)BUF开始的3个16位二进制数用十六进制数的形式显示出来。(1)理解程序(2)输入程序,汇编,运行(在DOS状态下输入:文件名.EXE),观察结果。(3)如果要分行显示,程序要如何修改?

19、DATASEGMENTBUFDW4F59H, 56A8H, 0FF90HDATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATA MOVDS, AX MOVSI, 0P:MOVBX, BUFSI MOVCH, 4L:MOVCL, 4 ROLBX, CL MOVDL, BL ANDDL, 0FH CMPDL, 10 JBNEXT ADDDL, 7NEXT:ADDDL, 30H MOVAH, 2 INT21H DECCH JNZL INCSI INCSI CMPSI, 4 JNAP MOVAH, 4CH INT21HCODE ENDS

20、ENDSTART4)直接改变显存内容显示。(1)显存空间分配:内存地址空间中,B8000H-BFFFFH共32KB的空间,为8025彩色字符模式显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。80252000个字符,每个字符在缓冲区中占2个字节,一个字节存放ASCII码,一个字节存放字符属性(字符颜色、字符背景颜色、闪烁、高亮度)(2)偏移地址计算:如第2行,第40列:(2-1)160402 这个偏移地址中存放字符的ASCII码, (2-1)1604021这个偏移地址中存放字符的属性。第M行,第N列的一般计算公式为: (M-1)160N*2 存放ASCII码 (M-1)16

21、0N*2+1 存放属性(3)运行下列程序,在屏幕的第1行,会显示一个字符X。根据上面(1)、(2)点理解程序段。STACKSEGMENT DB128DUP (0)STACKENDSCSEGSEGMENT ASSUMECS: CSEG, SS: STACKSTART:MOVAX, STACK MOVSS, AX MOVSP, 128 MOVAX, 0B800H MOVES, AX MOVAH, XS:MOVES: 160*1+40*2, AH MOVAL, 0 MOVAH, 4CH INT 21HCSEGENDS ENDSTART5)编程显示以下图案。*6)编写程序,统计字缓冲区中的20个数据的

22、正数、负数、0的个数,并将统计结果以16进制形式显示出来。实验六 字符处理程序设计1.实验目的 (1)熟悉串操作指令的功能与应用; (2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。2.实验内容从键盘键入一个字符串,存入内存BUF为首地址的单元中,现要求统计其中含有小写字母的个数,并将统计结果以两位十进制数形式显示在屏幕上。附参考源程序:DATASEGMENTBUFDB 90 DUP(?)DATA ENDSCODESEGMENT ASSUME CS: CODE, DS: DATASTART: MOVAX, DATA MOVDS, AX MOVCX, 0 LEADI, BUFA

23、GAIN:MOVAH, 1INT21HCMPAL, 0DHJZDONEMOVDI, ALINCDIINCCXJMPAGAINDONE:MOVDL, 0DHMOVAH, 2INT21HMOVDL, 0AHINT21H LEASI, BUFMOVCH, 0MOVBL, 0CLDNEXT1:LODSBCMPAL, 61HJBNEXT2CMPAL, 7AHJANEXT1INCBLNEXT2:LOOPNTXT1MOVAL, BLMOVAH, 0MOVCL, 10DIVCLXCHGAH, ALPUSHAXMOVDL,AHORDL, 30HMOVAH, 2INT21HPOPAXMOVDL, ALORDL,

24、30HINT21HMOVAH, 4CH INT21HCODEEDNS ENDSTART第3篇 课程设计辅导实例1 动画设计甜蜜的生活 1.设计要求 1)了解并掌握汇编语言设计的一般方法,具备初步的独立分析和设计能力; 2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2.主要仪器设备(实验用的软硬件环境)硬件环境:PC机软件环境:DOS操作系统。 3.设计内容 设计思路 整体:设计分为两个画面。 第一画面:男孩右手拿花向女孩跑去,这时天上忽然出现了一群小鸟,男孩向女孩求婚,女孩感动地接受了,迸出一颗心

25、。 第二画面:两人过着幸福的生活。两人站在房子外,气球飘向了天。 设计总体结构图 总体结构图见图所示。 设计流程图 1静止程序流程图如图3.2所示。 2移动程序的流程图如图3.3所示。 动画示意图如图3.4所示。开始设置为80*25彩色文本清屏幕在21行48列画静止女孩在21行8列画从左往右跑的男孩在5行8列画从左往右飞的小鸟清除小鸟并延时在17行39列写字符串Will you marry me?并延时在20行53列写字符串Yes I will. 并延时在9行48列画一颗心并延时清屏幕并延时在2行64列画一房子在15行48列画一对男女在14行37列画一颗心在17行24列写字符串After th

26、at,they have a happy life!并延时在21行24列画一上升的气球清屏幕结束音乐响起 图 程序总体结构图字符个数送CX,设置初始坐标DI指向第一个字符保存当前参数:字符个数,行列坐标,字符首址根据偏移计算行列号是否一行画完?否置光标,写字符是结束DI指向下一个字符图3.2 静止程序流程图否是字符个数送CX,设置初始坐标DI指向第一个字符保存当前参数:字符个数,行列坐标,字符首址根据偏移计算行列号是否一行画完?是结束DI指向下一个字符延 时取参数:字符个数,行列坐标,字符首址根据偏移计算行列号置光标,写黑色字符清除机器人DI指向下一个字符为重画图案设置字符个数,行列坐标,字符

27、首址否否是置光标,写字符图是否画完?图是否清除?完?图 移动程序的流程图(a) 等待(b) 相遇,小鸟飞过(c) 求婚,心形图案降落(d) 幸福生活开始(e) 音乐响起,音符往上升起图3.4 动画示意图 设计源程序 PUSHRMACROX, Y, Z, WPUSHXPUSHYPUSHZPUSHWENDM;堆栈顶数据弹出到寄存器宏定义POPRMACROX, Y, Z, WPOPWPOPZPOPYPOPXENDMSTACKSSEGMENTDW 256DUP (?)STACKSENDSDATASEGMENTROBOTDB8 ;女孩DB2FH, 0EH, 0, 0 ;左手,字符属性,行偏移,列偏移DB

28、08H, 01H, 0, 1 ;胸部,字符属性,行偏移,列偏移DB5CH, 0EH, 0, 1 ;右手,字符属性,行偏移,列偏移DB1EH, 05H, 1, -1 ;腹部,字符属性,行偏移,列偏移DB13H, 7H, 1, 0 ;两腿,字符属性,行偏移,列偏移DB02H, 04H, -3, 0 ;面部,字符属性,行偏移,列偏移DB2AH, 04H, -1, 0 ;天线,字符属性,行偏移,列偏移DB77H, 0FCH, -2, -3 ;字母wDB68H, 0FCH, 0, 1 ;字母hDB 61H, 0FCH, 0, 1 ;字母aDB 74H, 0FCH, 0, 1 ;字母tDB 27H, 0F

29、CH, 0, 1 ;标点下引号DB 73H, 0FCH, 0, 1 ;字母sDB 0H, 0FCH, 0, 1 ;空格DB 75H, 0FCH, 0, 1 ;字母uDB 70H, 0FCH, 0, 1 ;字母pDB 3FH, 0FCH, 0, 1 ;标点问号ROBOT1DB22 ;男孩DB2FH, 0EH, 0, 0 ;左手,字符属性,行偏移,列偏移DB08H, 01H, 0, 1 ;胸部,字符属性,行偏移,列偏移DB5CH, 0EH, 0, 1 ;右手,字符属性,行偏移,列偏移DB0C5H, 02H, 0, 1 ;花柄DB05H, 0CH, -1, 0 ;花DB0DBH, 02H, 2, -

30、2 ;腹部,字符属性,行偏移,列偏移DB13H, 7H, 1, 0 ;两腿,字符属性,行偏移,列偏移DB02H, 07H, -3, 0 ;面部,字符属性,行偏移,列偏移DB48H, 0FCH, -3, -6 ;字母HDB 6FH, 0FCH, 0, 1 ;字母oDB6EH, 0FCH, 0, 1 ;字母nDB65H, 0FCH, 0, 1 ;字母eDB 79H, 0FCH, 0, 1 ;字母yDB 2CH, 0FCH, 0, 1 ;标点逗号DB 77H, 0FCH, 0, 1 ;字母wDB 61H, 0FCH, 0, 1 ;字母aDB 69H, 0FCH, 0, 1 ;字母iDB 74H, 0

31、FCH, 0, 1 ;字母tDB 00H, 0FCH, 0, 1 ;空格DB 66H, 0FCH, 0, 1 ;字母fDB 6FH, 0FCH, 0, 1 ;字母oDB 72H, 0FCH, 0, 1 ;字母rDB 00H, 0FCH, 0, 1 ;空格DB 6DH, 0FCH, 0, 1 ;字母mDB 65H, 0FCH, 0, 1 ;字母eBUFDB 12 ;小鸟DB0C4H, 08H, 0, 0DB 0F2H, 06H, 0, 1DB 0C4H, 08H, -2, 2DB 0F2H, 06H, 0, 1DB 0C4H, 08H, 3, -1DB 0F2H, 06H, 0, 1DB 0C4

32、H, 08H, -4, 2DB 0F2H, 06H, 0, 1DB0C4H, 08H, 3, -1DB 0F2H,06H, 0, 1DB 0C4H, 08H, 3, -1DB 0F2H, 06H, 0, 1BUF1 DBWill you marry me ?LEN1=$-BUF1BUF2 DB Yes,I will.LEN2=$-BUF2HOUSEDB90 ;房子DB2FH, 03H, 0, 0 ;屋顶上升面DB2FH, 03H, 1, -1DB 2FH, 03H, 1, -1DB 2FH, 03H, 1, -1DB 2FH, 03H, 1, -1DB 2FH, 03H, 1, -1DB 0F

33、EH, 0FH, -2, 5 ;窗户DB 0FEH, 0FH, 0, 1DB 0FEH, 0FH, 1, -1DB 0FEH, 0FH, 0, 1DB 5CH, 03H, -4, 0 ;屋顶的下降面DB 5CH, 03H, 1, 1DB 5CH, 03H, 1, 1DB 5CH, 03H, 1, 1DB 5CH, 03H, 1, 1DB 5CH, 03H, 1, 1DB 0A9H, 03H, 1, 0 ;屋顶的横DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0,

34、 -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0A9H, 03H, 0, -1DB 0B3H, 03H, 1, -1 ;房子的一竖DB 0B3H, 03H, 1, 0DB 0B3H, 03H, 1, 0DB 0B3H, 03H, 1, 0DB 0B3H, 03H, 1, 0DB 0B3H, 03H, 1, 0DB 0B3H, 03H, 1, 0DB 0DBH, 0EH, 0, 6 ;门 DB 08H, 0E1H, -1, 0DB 0DBH,

35、 0EH, -1, 0DB 0DBH, 0EH, 0, 1DB 0DBH, 0EH, 1, 0DB 0DBH, 0EH, 1, 0DB 0B3H, 03H, 0, 6 ;房子的另一竖DB 0B3H, 03H, -1, 0DB 0B3H, 03H, -1, 0DB 0B3H, 03H, -1, 0DB 0B3H, 03H, -1, 0DB 0B3H, 03H, -1, 0DB 0B3H, 03H, -1, 0DB 0C4H, 03H, 7, 0 ;房底的横DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H,

36、0,-1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C4H, 03H, 0, -1DB 0C5H, 02H, 0, -5 ;左边的花DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 0

37、2H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB05H, 05H, -1, 0DB 0C5H, 02H, 1, 15 ;右边的花DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0C5H, 02H, 1, 1DB 05H, 05H, -1, 0DB 0DBH, 08H, 2, -12 ;台阶DB 0DBH, 08H, 0, 1DB 0DBH, 0

38、8H, 2, -3DB 0DBH, 08H, 0, 1DB 0DBH, 08H, 2, -3DB 0DBH, 08H, 0, 1DB 0DBH, 08H, 2, -3DB 0DBH, 08H, 0, 1PEOPLEDB15 ;一对男女 DB2FH, 0EH, 0, 0 ;左手,字符属性,行偏移,列偏移DB08H, 06H, 0, 1 ;胸部,字符属性,行偏移,列偏移DB5CH, 0EH, 0, 1 ;右手,字符属性,行偏移,列偏移DB1EH, 04H, 1, -1 ;腹部,字符属性,行偏移,列偏移DB13H, 7H, 1, 0 ;两腿,字符属性,行偏移,列偏移DB02H, 04H, -3, 0

39、 ;面部,字符属性,行偏移,列偏移DB2AH, 04H, -1, 0 ;天线,字符属性,行偏移,列偏移DB0C5H, 02H, 2, -2 ;花柄DB05H, 0CH, -1, 0 ;花DB2FH, 0EH, 1, 4 ;左手,字符属性,行偏移,列偏移DB08H, 06H, 0, 1 ;胸部,字符属性,行偏移,列偏移DB5CH, 0EH, 0, 1 ;右手,字符属性,行偏移,列偏移 DB0DBH, 0AH, 1, -1 ;腹部,字符属性,行偏移,列偏移DB13H, 7H, 1, 0 ;两腿,字符属性,行偏移,列偏移DB02H, 07H, -3, 0 ;面部,字符属性,行偏移,列偏移HEART

40、DB17DB03H, 04H, 0, 0 ;心DB03H, 04H, 1, 0DB03H, 04H, -1, 1DB03H, 04H, 1, 0DB03H, 04H, 1, 0DB03H, 04H, -1, 1DB03H, 04H, 1, 0DB03H, 04H, 1, 0DB03H, 04H, -3, 1DB 03H, 04H, 1, 0DB03H, 04H, 1, 0DB 03H, 04H, -2, 1DB 03H, 04H, 1, 0DB29H, 04H, -1, 1DB 28H, 04H, 0, -6ZIDBAfter that,they have a happy life!LENZI

41、=$-ZIQIQIUDB10DB 4FH, 01H, 0, 0 ;气球DB 0F5H, 01H, 1, 0DB 4FH, 0BH, -2, 3DB0F5H, 0BH, 1, 0DB4FH, 0DH, -2, 3DB0F5H, 0DH, 1, 0DB 4FH, 0EH, 4, -4DB0F5H, 0EH, 1, 0DB4FH, 02H, -2, 3DB 0F5H, 02H, 1, 0FREQ DW 5 DUP (330) , 294, 262 ;音乐频率DW5 DUP (330) DW5 DUP (330) , 349, 392, 294 DW294, 262, 262, -1TIME DW 4

42、 DUP (400) , 800, 400, 400 ;音乐节奏时间DW4 DUP (400) , 800DW8 DUP (500)DW500, 500, 1600COUNTDW0 ;保存字符个数POINTERDW0 ;保存字符首地址 LINEDB0 ;保存行号 COLUMNDB0 ;保存列号DATAENDSCODESSEGMENT ASSUME CS: CODES, DS: DATA, ES: DATA,SS: STACKSSTART:MOVAX, DATAMOVDS, AXMOVES, AXMOVAH, 0;设置为8025彩色文本方式 MOVAL, 3 INT10HCALLCLEAR ;清

43、屏幕 LEADI, ROBOT ;将ROBOT数据段首地址送DIMOVDX, 1530H ;显示的起始行号和列号 MOVBH, 0 CALLSTOP ;调用静止子程序 LEADI, ROBOT1 ;将ROBOT1数据段首地址送DIMOVDX, 1508H ;显示的起始行号和列号 MOVBH, 0 CALL MOVES ;调用左到右移动子程序 LEADI, BUF ;将BUF数据段首地址送DIMOVDX, 0508H ;显示的起始行号和列号 MOVBH, 0 MOVSI, 0 ;用来判断调用左到右清除子程序 CALL MOVES ;调用左到右移动子程序 CALL ERASE ;调用右到左清除子程

44、序 CALL DELAY1 ;调用延时时间长的子程序 LEA BP, BUF1 ;将字符串数据段首地址送BP MOV CX, LEN1 MOV DX, 1127H ;显示的起始行号和列号 MOV BH, 0 MOV BL, 0FCH ;闪烁的白底红字 MOV AL, 0 MOV AH, 13H INT 10H CALLDELAY1 ;调用延时时间长的子程序LEA BP, BUF2 ;将字符串数据段首地址送BP MOV CX, LEN2 MOV DX, 1435H ;显示的起始行号和列号 MOV BH, 0 MOV BL, 0FCH ;闪烁的白底红字 MOV AL,0 MOV AH,13H IN

45、T 10H CALLDELAY1 ;调用延时时间长的子程序 LEA DI, HEART ;将心数据段首地址送DI MOVDX, 0930H ;显示的起始行号和列号 MOVBH, 0 CALL STOP ;调用静止子程序 CALLDELAY1 ;调用延时时间长的子程序 CALL CLEAR ;清除屏幕 CALL DELAY ;调用延时时间短的子程序 LEADI, HOUSE ;将房子数据段首地址送DI MOVDX, 0240H ;显示的起始行号和列号 MOVBH, 0 CALL STOP ;调用静止子程序 LEA DI, PEOPLE ;将人数据段首地址送DI MOVX, 1530H ;显示的起始行号和列号

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!