版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《汇编语言程序设计》实验报告实验室:S318最后一次实验时间:2010年5月18日第12周星期二1-2节学院:计算机科学与技术学院专业:计算机科学与技术实验一实验题目:认识Tddebug集成环境实验目的:熟悉汇编程序的开发过程。认识Tddebug集成操作软件。掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。掌握INT21H软件中断来调用DOS内部子程序的方法实验主要步骤:1.运行Tddebug软件,选择Edit菜单编写实验程序2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。3.使用Rmrun菜单中的Run运行程序,观察运行结果。4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下:按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。检查内存数据区的内容,关键是找出用户程序的数据段和附加段:方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区方法2:选择菜单View|Dump,弹出内存数据显示窗口。3)查看执行结果:按Alt+F5,切换到用户窗口。5.更改数据区中的数据,考察、调试程序的正确性。6.程序代码:;数据传送实验,采用相对寻址方式DDATA SEGMENT ;定义源数据段MSR DB"HELLO,WORLD!$"LEN EQU$-MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD DBLENDUP(?)EXDA ENDSMYSTACKSEGMENTSTACK ;定义堆栈段DW20DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUMECS:CODE,DS:DDATA,ES:EXDASTART: MOVAX,DDATA MOV DS,AX ;装载数据段寄存器 MOV AX,EXDA MOV ES,AX ;装载附加数据段寄存器 MOV SI,OFFSETMSR MOV DI,OFFSETMSD MOV CX,LEN MOV BX,0NEXT:MOV AL,MSR[BX] ;开始传输数据 MOV ES:MSD[BX],AL INC BX LOOP NEXT PUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器 MOV DX,OFFSETMSD MOV AH,9 INT 21H ;显示字符串 MOV AH,4CH INT 21H ;返回DOS状态CODE ENDS ENDSTART实验结果:通过Tddebug软件写好实验程序后,对程序进行编译连接,最终生成执行文件,在dos环境下启动后,进入Tddebug,对程序进行单步执行,可看到在每一步执行过程中,程序所分得的地址单元。连接试验箱后,通过对试验箱的操作,能够看到在dos环境下程序的执行步骤。代码运行结果:显示:“HELLO,WORLD!”心得体会:通过本次试验,是我回顾了在学习单片机的时候使用的Tddebug集成开发软件使用方法,了解了汇编程序的开发过程。能够在Tddebug环境下进行编辑、编译、连接程序,掌握了INT21H软件中断的调用DOS内部子程序的方法。但对于DOS环境下的汇编程序的编辑、编译、连接使用还不是很熟悉,只能是Tddebug集成软件开发环境下熟悉的编译连接运行。实验二实验名称:I/O程序设计实验目的:1.理解软中断的调用方法及中断过程。2.掌握INT21H软件中断来调用DOS系统I/O子程序的方法。3.掌握将存储在内存单元中的数据在屏幕上显示的方法。4.掌握从键盘输入信息到内存的方法。实验内容:1.将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。3.从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。4.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上实验步骤:1.画出实验流程图。2.运行Tddebug软件,选择Edit菜单编写实验程序3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4.使用Rmrun菜单中的Run运行程序,观察运行结果。5.使用Rmrun菜单中的Debug调试程序。单步执行指令,观察各寄存器及数据区的内容。更改数据区中的数据,考察程序的正确性实验代码:图2-1一个字节数以十六进制数形式显示处理流程DATA SEGMENT 图2-1一个字节数以十六进制数形式显示处理流程MES DB 'Showaashex:',0AH,0DH,'$'SD DB 'a'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOVAX,DATA MOV DS,AX MOV DX,OFFSETMES;显示提示信息 MOV AH,09H INT 21H MOV SI,OFFSETSD MOV AL,DS:[SI] AND AL,0F0H ;取高4位MOVCL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;显示字符 MOV AH,02H INT 21H MOV AL,DS:[SI] AND AL,0FH ;取低4位 CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL ;显示字符 MOV AH,02H INT 21H MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START实验结果:代码运行结果:显示“61H”心得体会:本次实验要求我们将指定数据区的一个数据转换为其十六进制数,通过这次实验,我充分理解了什么是软中断,以及软中断的调用方法和中断过程,并了解了INT21H软中断来调用DOS系统I/O子程序的方法,并知道如何将存储在内存单元中的素具显示在屏幕上。在老师的讲解过程中,我对试验提供的参考代码有了更深的了解,明白了如何进行调用软中断。实验三实验名称:代码转换程序设计实验目的:1.了解微机中所使用的各类数制及编码方法。2.掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。3.掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。实验内容:1.将5位十进制数的数字串转换为一个字的二进制数2.编写程序将内存中一个字的数转换为十进制数的数字串显示。((压栈或者字符串)3.编程将十进制的数字串转换为BCD码4.编程将BCD码转换为二进制数5.编程将二进制数转换为十进制数显示实验步骤:1.画出实验流程图。2.运行Tddebug软件,选择Edit菜单编写实验程序3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4.使用Rmrun菜单中的Run运行程序,观察运行结果。5.使用Rmrun菜单中的Debug调试程序。单步执行指令,观察各寄存器及数据区的内容。6.更改数据区中的数据,考察程序的正确性。实验流程图:图6-2将5位十进制数的数字串转换为二进制数参考流程图6-3将十进制数的数字串转换为BCD码参考流程图6-2将5位十进制数的数字串转换为二进制数参考流程图6-3将十进制数的数字串转换为BCD码参考流程代码:DDATA SEGMENTMES DB 'Theasciicodeofdecimalcodeare:$'BUF DB 30H,30H,30H,31H,32H;十进制00012的ASCII码 DB 10HDUP(0)DDATA ENDSCODESEGMENT ASSUMECS:CODE,DS:DDATASTART:MOVAX,DDATA MOV DS,AX MOVSI,OFFSETBUF MOV BL,0AH;送乘数 MOV CX,0004H;送转换位数MOVAH,00H MOV AL,[SI];取第一位ASCII码 SUB AL,30HA1:INCSIIMULBL;乘10(AL*BL)放在AX中 ADD AL,[SI] SUB AL,30HLOOP A1MOVBX,AX MOV DX,OFFSETMES;显示提示信息 MOV AH,09H INT 21HMOVAX,BX;显示结果MOVCX,4A3:PUSHCXMOVCL,4ROLAX,CL;向左移位POPCXMOVBX,AXANDAL,0FH;高4位清零,保留低4位的值CMPAL,0AH JBA2 ADDAL,07H A2:ADDAL,30H MOVDL,AL MOVAH,02HINT21HMOVAX,BXLOOPA3MOVAH,4CH INT21HCODE ENDS END START
实验结果:代码运行结果:显示“00001010”心得体会:本次实验要求我们将5位十进制数的数字串转换为一个字的二进制数,通过这次实验,我了解了微机中所使用的各类数制及编码方法,并知道了不同进制数及编码相互转换的程序设计方法,加深了对数码转换的理解,并掌握了将存储在内存单元中的数据以十六进制数形式显示在屏幕上的方法。在刚开始实验的时候对于将十进制数转换为二进制有点不知道怎么办,虽然知道应该怎么算,但是却不知道怎么样写代码,通过对参考代码的理解,对于将十进制转换为二进制有了一定的概念,知道了要写一个转换进制的实验的基本步骤了。对上述实验我进行了一定的修改,代码如下:datasegmentbufdb6,6dup(0)msg1db'PleaseinputX:',0ah,0dh,'$'msg2db0ah,0dh,'PleaseinputP:',0ah,0dh,'$'msg3db0ah,0dh,'Result:',0ah,0dh,'$'dataendscodesegmentassumecs:code,ds:data;将字符串转换为十进制数的子程序;输入参数:字符处首地址;输出参数:ax(保存十进制数)StrToNumprocpushbxmovbx,10StrToNum_s1:mulbxandbuf[si],0fhaddal,buf[si]incsiloopStrToNum_s1popbxretStrToNumendp;功能:输出P进制数子程序;输入参数:ax;输出参数:无Printprocpushaxpushbxpushcxpushdx;保护xorcx,cxs1:movdx,0divbxpushdxinccxcmpax,0jnes1movah,02hs2:popdxadddl,30hcmpdl,39hjas1int21hloops2jmpokadddl,7hint21hloops2ok:popdxpopcxpopbxpopaxretPrintendpstart:movax,datamovds,axmovdx,offsetmsg1;输出msg1movah,09hint21hmovdx,offsetbuf;输入十进制数Xmovah,0ahint21hmovcl,buf[1]movsi,2movax,0callStrToNum;调用将字符串转换为十进制pushax;暂存axmovdx,offsetmsg2;输出msg2movah,09hint21hmovdx,offsetbuf;输入pmovah,0ahint21hmovcl,buf[1]movsi,2movax,0callStrToNum;调用将字符串转换为十进制movbx,axmovdx,offsetmsg3;输出msg3movah,09hint21hpopaxcallPrintmovax,4c00hint21hcodeendsendstart运行结果如下:PleaseinputX://输入一个数9PleaseinputP://选择显示输出结果的进制数2Result:1001实验四实验名称:综合程序设计实验目的:掌握子程序的写法、循环的调用,利用汇编语言编写简单的程序。实验内容:编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上要求:含有子程序,循环实验步骤:1.画出实验流程图。2.运行Tddebug软件,选择Edit菜单编写实验程序3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。4.使用Rmrun菜单中的Run运行程序,观察运行结果。5.使用Rmrun菜单中的Debug调试程序。实验流程图:确定转化的位数n确定转化的位数nCX=8CF=0循环取数保存到相应单元转换完否送屏幕显示n实验代码:;输入一个数,选择显示进制,并在屏幕上显示出来datasegmentbufdb?msg1db'PleaseinputX:',0ah,0dh,'$'msg2db0ah,0dh,'Result:',0ah,0dh,'$'dataendscodesegmentassumecs:code,ds:datad_to_bprocnearmovbuf,2movcx,8moval,bufed:clcrclbyteptrbuf,1jnconemovah,02hmovdl,'1'int21hjmpll
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年亚东县林业和草原局关于公开招聘庞达木材检查站工作人员的备考题库带答案详解
- 2026年云南锡铟实验室有限公司招聘备考题库附答案详解
- 2026年中国中信金融资产管理股份有限公司深圳分公司人才引进及社会招聘备考题库及答案详解一套
- 2026年开江县人民医院关于招聘编外工作人员备考题库参考答案详解
- 2025年嘉禾县事业单位公开招聘引进高层次人才和急需紧缺人才备考题库及答案详解参考
- 2026年山东中建城市发展有限公司招聘备考题库及参考答案详解
- 2026年上汽安吉物流公开招聘备考题库及答案详解一套
- 2026年吉安市吉州区卫生健康委员会面向社会公开招聘编外工作人员36人的备考题库完整参考答案详解
- 2026年上海中远海运工程物流有限公司招聘备考题库完整答案详解
- 2026年佛山市顺德区北滘镇中心小学招聘语文临聘教师备考题库含答案详解
- 2025秋南方新课堂金牌学案中国历史七年级上册(配人教版)(教师用书)
- 企业财务会计制度完整模板
- 体育场所知识培训内容课件
- 绿色金融在绿色金融人才培养中的应用与展望研究报告
- 急性心力衰竭PBL课件
- 非遗双语语料库建设:技术架构与跨文化传播分析
- 装饰装修监理培训
- 【语文】北京市清华大学附属小学小学一年级上册期末试题
- 【2025秋新版】八年级历史上册期末复习压轴必考题
- 2025至2030中国异丙醇(IPA)行业市场占有率及投资前景评估规划报告
- php语法考试题及答案
评论
0/150
提交评论