实验二:简单汇编语言程序设计与调试
实验二_指令系统相关程序的编写与调试实验
重庆大学学生实验报告实验课程名称汇编语言程序设计开课实验室DS1502学院软件学院年级16 专业班软件工程5班学生姓名吉沼橙学号********开课时间2017 至2018 学年第 1 学期软件工程学院制《汇编语言程序设计》实验报告Add sp,4Pop axPop bxPush axPush bxPop axPop bxMov ah,4chInt 21h Code endsEnd start先转换成asm格式然后转换成obj格式然后转换成exe格式(2)用debug跟踪lab2.exe 的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。
开始每一步的执行:1:AX=20002:SS=20003:SP=00044: AX=0000 SP=00065: BX=0000 SP=00086.7:AX与BX入栈SP由0008到00048:AX与BX出栈SP由0004到0008(5)习题:3.37 -教材114页。
MOV AL, STATUSAND AL, 00010101B ;只保留第1、3、5位CMP AL, 00010101BJZ ROUTINE_1 ;3位全为1转ROUTINE_1JZ ROUTINE_2 ;两位为1转ROUTINE_2 JZ ROUTINE_3 ;1位为1转ROUTINE_3JZ ROUTINE_4 ;3位全为0转ROUTINE_4 ROUTINE_3:JMP EXITROUTINE_1:JMP EXITROUTINE_2:JMP EXITROUTINE_4:EXIT: INT 21H。
汇编语言程序设计实验报告二(分支循环程序实验)
汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。
2、熟悉DEBUG程序的使用方法。
3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。
二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。
2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。
三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。
2、预习DEBUG调试程序的使用方法。
3、根据实验内容要求,编写好实验源程序。
四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。
2、汇编、连接源程序,产生.EXE可执行文件。
3、运行程序。
(1) 进入DEBUG。
打入DEBUGT MYPROG.EXE。
MYPROG为所编程序的文件名。
(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。
如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。
(3) 检查程序。
在程序中设置若干断点,以便杳出错误所在。
(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。
五、实验报告要求1、列出程序清单,并给出程序流程图。
2、总结实现数据传送的几种方法,指出它们的区别。
开始3、分析实验中所遇到的一些问题,分析错误原因。
4、说明本实验中是如何使用DEBUG进行调试的。
CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。
《汇编语言》实验报告
《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。
实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。
汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。
本实验通过编写汇编语言程序,加深对汇编语言的理解。
二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。
2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。
3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。
b.设置段寄存器,将数据段地址加载到DS寄存器中。
c.设置显示模式和光标位置。
d.将字符串逐个字符输出到屏幕上。
e.关闭显示模式。
4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。
5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。
三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。
通过程序分析和调试过程,加深了对汇编语言的理解和掌握。
四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。
通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。
同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。
在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。
总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。
程序的调试实验报告(范文2篇)
程序的调试实验报告(范文2篇)以下是网友分享的关于程序的调试实验报告的资料2篇,希望对您有所帮助,就爱阅读感谢您的支持。
程序的调试实验报告(1)微机原理与接口技术课程作业班级:目录一、实验目的:............................................................................................. . (3)二、实验环境................................................................................................. . (3)三、实验过程................................................................................................. . (3)(一)基础知识储备................................................................................................. .. (3)(二)汇编语言程序设计................................................................................................. (3)(三)汇编程序调试................................................................................................. .. (3)四、调试实例................................................................................................. . (4)(一)实例一................................................................................................. .. (4)(二)实例二................................................................................................. .. (5)(三)实例三................................................................................................. .. (6)(四)实例四................................................................................................. .. (7)五、实验总结................................................................................................. . (8)(一)实验收获................................................................................................. . (8)(二)实验感悟................................................................................................. . (9)一、实验目的:汇编语言是一种用助记符表示的程序设计语言。
微机原理实验报告
微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求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]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
汇编语言实验报告2
调试程序功能段一、实验目的1.继续学习使用DEBUG程序的各种命令。
2.利用DEBUG学习了解计算机取指令、执行指令的工作过程。
3.掌握8086/8088基本指令的使用方法和功能。
二、实验任务1.按照下列给定步骤完成求累加和程序:程序:MOV BX,1000MOV CX,10MOV AL,0LOP: ADD AL,[BX]INC BXJ: L OOP LOPINT3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。
2)用命令N AA将此程序命名为文件AA(文件名可任取)。
3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址) ,用R命令把BX设为:0000H,CX 设为文件长度。
4)用命令W 100将此程序存到AA命名的磁盘文件中。
5)用命令Q退出DEBUG。
6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序。
若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。
7)8)用E命令在内存地址1000H处键入16个数字9)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值。
10)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样, 若不一样,检查程序是否有错。
11)重复G J与T,再检查AX是否正确。
(J为断点地址)12)用G命令使程序运行到结束,检查AX值是否正确。
2.用命令A汇编下列指令,判断指令正误并说明原因。
(1)LEA DI,[AX](2)MOV DS,2010(3)PUSH AL(4)OUT 900,AL(5)MOV [BX],03.利用T,P,G命令,执行下列指令段,注意它们的不同之处。
(6)MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3(7)MOV AH,2MOV DL,41INT 21INT 34.程序: MOV DI,1000MOV CX,8MOV SI,2000CLCLOP: MOV AL,[SI]ADC[DI],ALINC SIINC DILOOP LOPINT20步骤:1)用A命令键入此程序2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。
汇编语言实验报告
汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。
2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。
4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。
4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。
4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。
5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。
希望对你有所帮助!。
汇编语言程序设计2
目录系统认识 (1)实验一数码转换编程及程序调试 (5)实验二运算类编程实验 (11)实验三分支程序、循环程序设计实验 (16)实验四子程序设计实验 (22)实验五显示程序实验 (26)实验六串行通讯应用实验 (27)附录WMD86 联机软件使用说明 (40)系统认识一、实验目的掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
二、实验设备PC微机一台,TD-PITE实验装置一套。
三、实验内容编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。
四、实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。
2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。
语言选择后,下次再启动软件,语言环境保持这次的修改不变。
在这里,我们选择汇编语言。
图13. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。
默认文件名为Wmd861。
图24. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。
图3程序:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000H ;建立数据起始地址MOV CX, 16 ;循环次数AA1: MOV [SI], ALINC SI ;地址自加1INC AL ;数据自加1LOOP AA1AA2: JMP AA2CODE ENDSEND START5. 点击,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击进行链接,链接无误输出如图5所示的输出信息。
图4图56. 连接PC与实验系统的通讯电缆,打开实验系统电源。
汇编语言程序设计实验二及答案
实验二:汇编语程序设计一、实验目的旨在通过实验使同学了解汇编语言的程序结构和编程方法,可以编写出顺序程序、分支程序和一般的循环程序,并学会修改和调试方法。
二、实验环境MASM、LINK、DEBUG或包含此软件的相关软件三、实验内容1.1、从FIRST开始的100个单元中存放着一个字符串,结束符为$。
编写一个程序,统计该字符串中字母‘A’的个数。
DATA SEGMENTFIRST DB 'AGHI K…$’ ;定义字符串,结束符为$NUMBER DB ? ;结果存放单元DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART: MOV AX,DATA ;建立数据段的可寻址性MOV DS, AXMOV BL,0 ;BL用作统计计数器LEA DI,FIRST ;取字符串首址NEXT: MOV AL, [ DI] ;取一个字符INC DI ;指向下一个字符CMP AL,’$’ ;与结束符’$’比较JE EXIT ;等于,搜索完结束CMP AL , 'A ;与字符‘A’比较JNE NEXT ;不等于。
不统计INC BL ;找到,计数IMP NEXT ;继续EXIT: MOV NUMBER,BLMOV AH,4CHINT 21HCODE ENDSEND START2.编程判断输入的ASCII码字符时数字还是字母,并将判断结果分别以“D”和“L”显示出来。
解:用宏实现字符显示。
程序如下:DISPLAY MACRD CHAR;显示字符宏定义MOV DL,CHARMOV AH,02HINT 21HENDMCODE SEGMENTASSUME CS: CODESTART : MOV AH, 0lH ;输人一个ASCI I码字符INT 21 HCMP AL, '0’JC ERROR ;非数字和字母,转ERROR处理CMP AL, '9'JA NEXT ;非数字,转NERTDISPLAY 'D' ;数字。
实验二、汇编语言程序的汇编与调试
实验二、汇编语言程序的汇编与调试一、实验目的掌握汇编语言程序的汇编与调试过程,熟悉MASM、LINK、DEBUG等程序的使用。
了解列表文件与交叉参考文件的基本内容。
二、实验原理编制好汇编语言的源程序后,若要在机器上运行,必须经过如图1- 1所示的几个步骤:1、编辑源程序图1- 1 汇编语言程序的上机过程可以使用任何一种文本编辑程序编辑汇编语言源程序,通常使用DOS提供的文本编辑程序EDIT,具体使用方法为:从Windows进入MS-DOS方式,在DOS提示符后键入:EDIT [文件名]进入EDIT后,对源程序进行全屏幕编辑。
编辑完成后选择File菜单的Save命令保存文件,选择File菜单的Exit命令退出EDIT。
对于汇编语言源程序,其文件的扩展名约定使用ASM。
2、汇编汇编程序的基本功能是把用汇编语言编写的源程序翻译成机器语言目标代码,同时生成列表文件及交叉参考文件。
汇编程序的操作步骤为:在DOS提示符后键入:MASM 源程序文件名或MASM 源程序文件名,列表文件名,交叉参考文件名其中文件名不必给出扩展名,汇编程序会按照默认情况处理或产生。
若汇编后出现警告错误或严重错误,应调用EDIT对源程序进行修改,再重新汇编,直至无错误为止。
列表文件[.LST]和交叉参考文件[.XRF]有助于程序的分析和错误的查找,根据需要可以生成这两个文件(缺省时无)。
其中列表文件是文本文件,可用EDIT打开。
交叉参考文件是二进制文件,通过执行程序CREF.EXE,将二进制交叉参考文件转换为索引列表文件[.REF],具体方法为在DOS提示符后键入:CREF 交叉参考文件名3、连接汇编以后的目标代码的地址还是可浮动的相对地址,需要经过连接才能生成可执行程序。
连接程序的功能是连接多个目标代码模块(如果有的话),确定每个程序段的地址,形成可执行程序文件[.EXE]。
连接程序的操作步骤为:在DOS提示符后键入:LINK 目标代码文件名当目标代码文件不止一个时,各个目标代码文件名之间用+(加号)连接;也可以用命令行方式运行LINK程序,其格式为:LINK 目标文件名,可执行程序文件名,内存映象文件名,库文件名4、调试程序通过汇编和连接,排除了语法错误,并不一定能正确执行,这就需要使用动态排错程序。
东南大学微机实验二_汇编语言程序设计
3.2 实验二汇编语言程序设计3.2.1 实验目的1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS功能调用的基本方法。
3.2.2 实验环境实验环境同实验一。
3.2.3 基本实验内容1)基本实验内容和要求(1)编写程序实现如下功能;①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。
②从键盘输入在0-65535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在0-65535之间的十进制数。
(2)复习功各种操作,并用DEBUG调试程序,学会基本命令操作,并通过单步、设置断点等方法观察中间结果,完成正常运行。
命令行方式下直接键入debug myfile.exe回车(myfile为待调试可执行程序),进入调试方式(显示—),键入H回车显示全部命令、格式和功能。
常用命令有;U(反汇编)、A(汇编输入指令程序)、R(寄存器显示/修改)、I(端口输入)、0(端口输出)、D(显示数据)、E(修改数据)。
除资源修改管理功能外,重点应用T(单步)、Tn(执行n步)、P(过程/指令)、G××××(从当前器:IP执行到断点××××)或G=××××l ××××2(从××××l执行到××××2断点)调试实驴程序。
2)编程提示(1)小写字母的ASCII码比其所对应的大写字母的ASCII码值大20H,如字符“a”的ASCII 码为61H,而字符“A”的ASCII码为41H,因此字符变换时将小写字母的ASCII码减去20H即为大写字母的ASCII码。
汇编语言程序设计实验报告
二、实验内容
P131作业29。
实验三子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
实验四宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2.主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2.掌握混合调用的方法;
二、实验内容
P156第5题。
实验一单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的只可能是0~9数字。
实验二完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
实验五多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2.掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显示“Y”,否则,显示“N”;
具体要求:
1.三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口参数:字节变量d=1是三角形,d=0不是三角形。
2.了解COM文件的编程方法及特点;
实验二 汇编语言程序上机过程及调试
实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期:2014 年 3 月10 日报告退发(订正、重做)一、实验目的学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。
二、实验内容1、学习使用全屏幕文本编辑软件EDIT。
用EDIT输入一段给定的源程序。
2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到EDIT进行修改。
3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)4、在DOS提示符下运行该可执行文件。
[汇编语言程序的编写格式]汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。
任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。
段的定义有两种格式,分述如下:1,完整的段定义格式:一个段由段头,段体,段尾组成,形式如下:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。
2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:DOSSEG.MODEL 存储类型;“存储类型”可选择为SMALL。
.STACK[大小];堆栈段,“大小”指定堆栈的字节数。
.DATA;数据段。
.CODE[名字];代码段;一般只有一个代码段,名字可缺少……例1:用完整的段定义编写一源程序。
NAME EXAM1;可以省略DATA SEGMENT;定义数据段,以下是数据段的内容STR1 DB “HELLO,WELCOME!”,13,10,‘$’STR2 DB “DO YOU LIKE COMPUTER?(Y/N)”,13 10,‘$’STR3 DB “NICE!”,13,10,‘$’STR4 DB “SORRY!”,13,10,‘$’STR5 DB “UNKNOW,ANSWER AGAIN!(Y/N)”,DB 13,10,‘$’STR6 DB “SEE YOU NEXT TIME!”,13,10,‘$’DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE;DS:DATA;以下是代码段内容START:MOV AX,DA TA;给数据段寄存器赋值MOV DS,AXMOV AH,9;显示一字符串的功能号MOV DX,OFFSET STR1;显示字符串STR1的偏址INT 21H;DOS功能调用ASK :MOV DX,OFFFSET STR2;显示字符串STR2INT 21HMOV AH,1;键盘输入一字符的功能号INT 21H;键入的字符ASCⅡ码在ALNOT AL;求反TEST AL,‘Y’;是否按下‘Y’或‘y’键JE NEXT1TEST AL,‘y’JE NEXT1TEST AL,‘N’;是否按下‘N’键或‘y’键JE NEXT2TEST AL, ‘n’JE NEXT2MOV DX,OFFSET STR5;不是按上述键MOV AH,9INT 21HJMP ASK;再返回ASKNEXT1:MOV DX,OFFSET STR3;是按下‘Y’或‘y’键MOV AH,9INT 21HJMP BYENEXT2:MOV DX,OFFSET STR4;是按下‘N’或‘n’键MOV AH,9INT 21HBYE:MOV DX,OFFSET STR6INT 21HMOV DL,7;喇叭响的ASCⅡ码MOV AH,2INT 21HMOV AH,4CH;退回DOSINT 21HCODE ENDS;代码段结束END START;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
合工大(汇编)语言程序设计实验报告
.合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:****************学号:**********姓名:*****目录实验一··3实验二··7实验三··12实验四··22实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三.实验过程和程序实验内容一:e ds:0200 E7 1A 3F 00e ds:0204 C4 E5 6B 00实验内容二:(1)直接寻址方式MOV AX,[0200]MOV BX,[0202]ADD AX,[0204]ADC BX,[0206]MOV [0208],AXMOV [020A],BX(2)寄存器间接寻址方式MOV SI,0200HMOV DI,0204HMOV BX,0208HMOV AX,[SI]MOV DX,[SI+2]ADD AX,[DI]ADC DX,[DI+2]MOV [BX],AXMOV [BX+2],DX四.实验结果(包括必要的截图)实验内容一:输入数据:显示数据:实验内容二:(1)直接寻址方式程序段编辑:反汇编:运行:结果在DS:0208 单元中为00AB00ABH(2)寄存器间接寻址方式程序段编辑:反汇编:运行:结果高字存放在dx中,低字存放在ax中(结果为00AB00ABh)五.实验体会通过本实验,实践debug程序中的命令,并在debug下调试运行汇编语言源程序。
汇编语言编程实验报告
汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的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文件只是个文本文件,计算机无法执行。
实验二 初级程序的编写与调试
实验二初级程序的编写与调试一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2、深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3、掌握各种寻址方法及简单指令的执行过程。
二、程序(调试)说明1、设堆栈指针SP=2000H,AX=3000H,BX=5000H。
请编写程序将AX的内容和BX 的内容进行交换。
用堆栈作为两存储器交换的中间存储单元,用DEBUG调试程序进行汇编与调试-A 1000BB3:0100 MOV SP,20000BB3:0103 MOV AX,3000 ;赋初值0BB3:0106 MOV BX,50000BB3:0109 PUSH AX ;压入堆栈0BB3:010A PUSH BX0BB3:010B POP AX ;弹出堆栈0BB3:010C POP BX0BB3:010D INT 20 ;中断当前执行程序0BB3:010F HLT0BB3:0110-用堆栈作为两存储器交换的中间存储单元,使用起来很方便。
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]INT 20HHLT第一步:显示、填充、清零。
第二步:给存储器偏移地址300H~304H连续单元设初值1、2、3、4、5;并在0AH~0EH上显示出来;第三步:输入代码,并显示。
这时AX、BX、CX、DX都为0。
赋BX、SI的初值第四步:,并显示存储器偏移地址300H~304H连续单元。
微机实验二 熟悉汇编程序建立及其调试方法
微机原理实验报告实验二熟悉汇编程序建立及其调试方法一、实验目的1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。
2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。
二、实验内容1.学习编写汇编语言源程序的方法,了解数据存放格式。
2.阅读给出的程序,找出程序中的错误。
3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。
三、修改后的程序STACKSG SEGMENT PARA STACK'STACK' ;定义堆栈段DB 256 DUP (?) ;堆栈段为256个字节空间,STACKSG ENDSDATASG SEGMENT PARA 'DATA' ;设置数据段BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512;定义数据段有20个字的数据 DW 23, 56, 420, 75, 0,-1024,-67,39,-2000COUNT EQU 20 ;定义计数次数常量COUNT等于20MAX DW ? ;保留1个字空间,用以存放最大值结果DATASG ENDSCODESG SEGMENT ;代码段ASSUME SS : STACKSG, CS : CODESG ;STACKSG为堆栈段CODESG为代码段ASSUME DS : DATASG ;DATASG为数据段ORG 100H ;指令语句的起始偏移量为100HBEGIN: MOV AX, DATASG ;保存最大值结果MOV DS,AX ;给段寄存器赋值LEA SI,BLOCK ;将SI设为指向数据的指针MOV CX,COUNT ;设置循环次数,CX中装入计数初值DEC CX ;CX循环次数减1MOV AX,[SI] ;从内存取数到AXCHKMAX: ADD SI,2 ;取完一次数据,地址偏移量加2CMP [SI],AX ;数据指针当前所指单元的值与 AX比较JLE NEXT ;取其中较大者存于AX中MOV AX,[SI]NEXT: LOOP CHKMAX ;与数据段最后一个数据比较后跳出循环MOV MAX,AX ;保存最大值到MAXMOV AH,4CH ;退出程序INT 21HCODESG ENDSEND BEGIN程序的功能:输入20个数,比较出数值最大的一个数。
汇编语言程序设计实验报告
实验报告实验名称汇编语言程序设计||专业班级:信息安全学号:姓名:实验一汇编语言上机过程和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:datarea start: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.对源文件汇编产生目标文件obj D:\masm 文件名。
汇编实验心得体会
汇编实验心得体会在学习计算机组成原理的过程中,汇编语言是一个非常重要的环节。
通过学习汇编语言,我们可以更深入地了解计算机的工作原理,从而更好地理解高级语言的运行机制。
在学习汇编语言的过程中,实验是非常重要的一部分。
通过实验,我们可以更加深入地理解汇编语言的运行机制,同时也可以提高我们的实践能力。
在这篇文章中,我将分享我在学习汇编语言实验过程中的心得体会。
实验一:汇编语言程序设计在实验一中,我们需要编写一个简单的汇编语言程序,实现对两个数的加法运算。
这个实验对于初学者来说比较简单,但是也有一些需要注意的地方。
首先,我们需要了解汇编语言的基本语法。
在汇编语言中,每一条指令都是由操作码和操作数组成的。
操作码用来表示指令的功能,操作数则用来指定操作的对象。
在编写汇编语言程序时,我们需要注意指令的顺序和操作数的使用。
其次,我们需要了解汇编语言的寻址方式。
在汇编语言中,寻址方式有直接寻址、寄存器寻址、间接寻址等多种方式。
不同的寻址方式对应不同的指令格式,我们需要根据具体的情况选择合适的寻址方式。
最后,我们需要注意程序的调试和测试。
在编写汇编语言程序时,我们需要不断地进行调试和测试,确保程序的正确性。
在调试和测试过程中,我们可以使用调试器或者打印输出等方式来查看程序的执行结果,从而找到程序中存在的问题。
实验二:汇编语言程序调试在实验二中,我们需要使用调试器来调试一个汇编语言程序。
这个实验对于初学者来说比较难,需要一定的耐心和技巧。
首先,我们需要了解调试器的基本操作。
在调试器中,我们可以设置断点、单步执行、查看寄存器和内存等操作。
这些操作可以帮助我们更加深入地了解程序的执行过程,从而找到程序中存在的问题。
其次,我们需要注意程序的调试技巧。
在调试程序时,我们需要注意程序的执行顺序和变量的值。
通过设置断点和单步执行等操作,我们可以逐步地了解程序的执行过程,从而找到程序中存在的问题。
最后,我们需要注意程序的测试和验证。
实验二_综合程序的编写与调试实验
软件实验二综合程序的编写与调试实验1. 实验目的(1) 熟练掌握编写汇编语言源程序的基本方法和基本框架。
(2) 学会编写顺序结构、分支结构和循环结构的汇编程序。
(3) 掌握程序中数据的产生与输入输出的方法。
2 •实验内容(1)用汇编语言编写一个加法程序:1234+5678请用ASCII码的形式将加数与被加数存放在数据区DATA和DATA中,并将相加结果存入DATA3 并显示输出。
(2)假设有一组数据:5, -4 , 0, 3, 100, -51,请编一程序,判断:每个数大于0,等于0, 还是小于0;并输出其判断结果。
即 1 「当X> 0Y= 0 J 当X = 0-1 当X< 03.实验要求(1)实验前准备①分析题目,将程序中的原始数据,中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图③写出源程序④对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
(2)本实验要求在P(机上进行。
(3)汇编过程中出现问题,可用DEBU进行调试。
4 •编程提示(1)实验内容1 (参考教材P165例3.19 )①两个数据可用相反的顺序以ASCII码的形式存放在数据段的DATA和DATA中,相加时可从DATA和DATA的起始字节开始相加,即从数的个位数开始相加。
相加结果可存放在DATA开始的存储单元中。
②程序中的加法运算是ASCII码运算,采用带进位的加法运算指令ADC后面应加一条ASCII 码加法调整指令AAA经AAA调整的加法指令,将ASCII码的数据高4位清“0”,因此要将结果每位数高4位拼成3位,变成ASCII码存在DATA中,才可方便地取出输出。
③程序中应有输出程序段,采用MOV AH 02H, INT 21H,将要输出字符的ASCII码送入D冲。
(2)实验内容2 (参考教材P148例3.10)①首先将原始数据(5,-4,0,3,100,-51) 装入起始地址为X的字节存储单元中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告
课程名称微型计算机技术
项目名称实验二:简单汇编语言程序设计与调试
学院
专业
指导教师
报告人学号
实验时间 2015-11-01 提交时间 2015-11-15
教务处制
一、实验目的与要求
1.1掌握使用运算类指令编程及调试方法。
1.2掌握运算类指令对各个状态标志位的影响及其测试方法。
二、实验内容与方法
8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对表2-1所示的数据类型进行算术运算。
表2-1 数据类型算术运算表
2.1二进制双精度加法运算
2.1.1 实验要求:
计算X+Y=Z,将结果Z存入某存储单元。
2.1.2 实验原理:
本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低16位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。
由于低位和可能向高位有进位,因而高位字相加语句需要用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。
2.1.3 参考程序清单:
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
XL DW ?;请在此处给X低位赋值
XH DW ?;请在此处给X高位赋值
YL DW ?;请在此处给Y低位赋值
YH DW ?;请在此处给Y高位赋值
ZL DW ?
ZH DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,XL ;X的值送AX
ADD AX,YL ;X低位加Y低位
MOV ZL,AX ;存低位和
MOV AX,XH ;X高位送AX
ADC AX,YH ;X高位加Y高位
MOV ZH,AX ;存高位和
CODE ENDS
END START
2.2十进制数的BCD码减法运算
2.2.1 实验要求:
计算X-Y=Z,其中X,Y,Z为BCD码。
2.2.2 参考实验程序及流程图如下:
STACK SEGMENT STACK
DW 64 DUP(?) STACK ENDS
DATA SEGMENT
X DW ? ;请在此处给X赋值
Y DW ? ;请在此处给Y赋值
Z DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,00H
SAHF
MOV CX,0002H
MOV SI,OFFSET X
MOV DI,OFFSET Z
A1: MOV AL,[SI]
SBB AL,[SI+02H]
DAS
PUSHF
AND AL,0FH
POPF
MOV [DI],AL
INC DI
INC SI
LOOP A1
A2: JMP A2
CODE ENDS
END START
2.3乘法运算
2.3.1实验要求:
本实验实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,乘积在屏幕显示。
2.3.2 参考程序清单:
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
DATA1 DB 5 DUP(?) ;乘数
DATA2 DB ? ;被乘数
RESULT DB 6 DUP(?) ;乘积
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CALL INIT
MOV SI,OFFSET DATA2
MOV BL,[SI]
AND BL,0FH
CMP BL,09H
JNC ERROR
MOV SI,OFFSET DATA1
MOV DI,OFFSET RESULT
MOV CX,0005H
A1: MOV AL,[SI+04H]
AND AL,0FH
CMP AL,09H
JNC ERROR
DEC SI
MUL BL
AAM
ADD AL,[DI+05H]
AAA
MOV [DI+05H],AL
DEC DI
MOV [DI+05H],AH
MOV CX,06H
MOV SI,OFFSET RESULT
DISPLAY:MOV AH,01H
MOV AL,[SI]
ADD AL,30H ;得到ASCII码
INT 10H ;显示器显示
INC SI
LOOP DISPLAY
A2: JMP A2
INIT: MOV SI,OFFSET RESULT ;RESULT区清零
MOV CX,0003H
MOV AX,0000H
A3: MOV [SI],AX
INC SI
INC SI
LOOP A3
RET
ERROR: MOV AX,0145H ;显示“E”
INT 10H
JMP A2
CODE ENDS
END START
2.4设计性实验-----开平方运算(选作)
2.4.1 设计要求:
设计一个用减奇数法的开平方运算程序
2.4.2 设计提示:
8086/8088指令系统中有乘除法指令但没有开平方指令,因此,开平方运算是通
过程序来实现的。
用减奇数法可求得近似平方根,获得平方根的整数部分。
我们知
道,N个自然数中的奇数之和等于N²,即:
1+3+5=9=3²
1+3+5+7=16=4²
1+3+5+7+9+11+13+15=64=8²
若要做S的开方运算,那么就可以从S中逐次减去自然中的奇数1,3,5,7。
,一
直进行到相减数为0或不够减下一个自然数的奇数为止,然后统计减去自然数的奇数个数,它就是S的近似平方根。
(设开平方数为正整数,存放在3500H单元)
(5)D350A↙,显示结果为:350A 04 00 CC…。
(6)反复试几组数,考察程序的正确性。
三、实验步骤与过程
2.1二进制双精度加法运算
(1)输入程序并检查无误,经汇编、链接后装入系统。
(设:CS:0000H,IP:2000H)
(2)打开寄存器窗口,观察各寄存器内容的变化。
(3)用U0000:2000查看MOV AX,XXXX(DATA)语句,即得到数据段段地址CS:XXXX用E命令EXXXX:0000↙给XL,XH,YL,YH赋值存入二进制数AO 65 15 00和9E B7 21 00.
(4) G=0000:2000↙,运行以上程序。
(5) DXXXX:0008↙,显示计算结果:3E 1D 37 00 CC….
(6)重新赋值,用T(T=0000:2000)↙命令逐步运行程序,观察寄存器内容的变化。
(7)反复试几组数,考察程序的正确性.
查看段地址CS:
用E命令赋值:
运行并查看显示计算结果:
单步运行过程:
2.2 十进制数的BCD 码减法运算
(1)输入实验程序并检查无误,经汇编、链连接后装入系统,并打开寄存器窗口。
(设: CS :0000H ,IP :2000H)
(2)用U0000:2000查看MOV AX ,XXXX (DATA )语句即得到数据段地址CS :XXXX 。
用E
命令EXXXX :0000↙给X ,Y 赋值存入40和12的BCD 码:00 04 02 01。
(3) G=0000:2000↙,运行以上程序。
(4) DXXXX :0004↙,显示计算结果
(5) 重新赋值,用T 命令单步运行程序,观察各寄寸器内容的变化。
(6) 反复试几组数,考察程序的正确性。
程序注释:
查看段地址CS:
用E命令赋值:
用D命令查看显示结果:
单步运行过程:
2.3 乘法运算
(1) 输入程序并检查无误,经汇编、链接后装入系统。
(2) 打开寄存器窗口,观察寄存器内容的变化。
(3) 用U2000↙命令查看MOV AX ,XXXX 语句,即得数据段段地址CS :XXXX 。
(4) 用EXXXX :0000↙命令在对应数据段填入乘数与被乘数。
(5) G=0000:2000↙,运行程序,屏幕显示结果,用ESC 可终止程序运行。
(6) 反复试几组数,考察程序的正确性。
要求画出调试正确的程序的程序框图,并给程序加注释
程序注释:
四、实验结论或体会
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。