版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言实习报告实习题目: 16位二进制转换成十进制学生姓名: 班 级: 学 号: 指导老师: 目 录1 课程实习任务 32 基本知识.3 2.1 汇编语言程序结构3 2.2 关键指令分析3 2.3 汇编语言上机过程53 总体分析.7 3.1 程序功能分析.7 3.2 程序流程图84 详细设计.9 4.1 程序代码95 调试过程.106 总结137 参考文献131 课程实习任务题目一 16位二进制数转换成十进制数并显示基本功能:1、 在屏幕上输入一个16位的二进制数;2、 通过程序将输入的二进制转换成10进制;3、 通过屏幕输出10进制数; 2 基本知识2.1汇编语言程序结构该汇编语言的程序结
2、构主要有:顺序结构,循环结构及子程序结构。2.2关键指令分析该程序所涉及的关键指令及分析如下:指令1:LEA DX,UNM MOV AH,OAH分析:将从键盘输入的数存到num缓冲区。指令2:LEA BX,NUM INC BX MOV CL,BYTE PTRBX分析:把实际输入个数放到CX当中。指令3:INT BXMOV DL,BYTE PTRBXAND DX,0FFH ;将DX高位置零SUB DX,30H分析:将ASCII码字转换成数字。指令4:SAL AX,1ADD AX,DX分析:将AX中的数右移一位,相当于将这个数乘以2,再将这个数与DX中的数相加。 指令5:PUSH AXLEA DX
3、,PRT2MOV AH,9INT 21H分析:将AX保存在栈中,输出两个回车换行和提示信息。指令6:CALL DISPLAY分析:调用子程序。指令7:MOV AH,4CH分析:返回控制平台。指令8:DISPLAY PROC NEARXOR CX,CX分析:以10进制字符串方式输出数值,将CX清零。 指令9:XOR DX,DXDIV BXPUSH DX分析:除以10取余,并余数将其进栈处理。指令10:POP DXADD DL,30HMOV AH,2INT 21H分析:将数字转换成ASCII码字符显示。 2.3汇编语言上机过程一、 用汇编语言编写的源程序,使之运行必须经过以下几个步骤:1. 用编辑
4、程序建立一个扩展名为ASM的汇编语言源程序文件。2. 调汇编程序(MASM),对源程序汇编,生成机器码目标文件,扩展名为OBJ。3. 连接(LINK)目标文件,生成可执行文件,扩展名为EXE。4. 运行可执行文件。5. 如果程序运行有错,可调用DEBUG 程序对EXE文件进行调试。二、 编辑汇编语言源程序 可用各种编辑软件来建立汇编语言源程序,例如记事本。本次实习采用emu8086仿真软件经行仿真。利用该软件可大大的简化程序的编辑调试过程。三、 汇编语言程序的运行EMU8086仿真软件具有一个简洁的操作界面,界面第二行有一个绿色的“模拟”按钮,点击该按钮即开始仿真。四、 汇编程序的调试开始仿真
5、后有两个界面emulator和源文件,并可附加Random Access Memory内存模块和堆栈模块。运行过程中会出现模拟屏幕显示程序输出信息。根据emulator、内存和堆栈等的数值经行程序调试,以使程序得到正确的结果。 图1 (emulator) 图2(堆栈) 图3(屏幕) 图4(内存) 图5(源文件)3 总体分析3.1程序功能分析1、显示输入的16位二进制数功能描述:将从键盘输入的16位二进制数在屏幕上显示出来。 功能实现主要步骤: (1)、先将输入数据存入内存中,再利用mov ah,09h将其显示到屏幕上。 2、计算输入二进制数的值。功能描述:将输入的二进制数的所表示的数值计算出来
6、。功能实现主要步骤: 输入的二进制数据在内存中是以ASCII码存储的,取输入的的第一位将其存入DX中,再将DX中的二进制数减去30H得到它的实际数值。将AX置零,并通过左移指令AX每次将其左移一位,相当于将它的乘以2,然后将AX和DX中的相加。循环执行以上步骤将输入的二进制数表示的值求出来,并将其放在AX中。3、将计算出的二进制数的值换成10进制数输出 功能描述:将AX中的16进制数转换成10进制数输出功能实现主要步骤: 将AX中的数除以10,将余数放入堆栈。循环此操作直到AX为零。将堆栈中的数据进行出栈操作,每次出栈一位,并将这个数据加30H,然后输出,显示到屏幕。 3.2程序流程图将AX中
7、的16进制数通过除法运算将其转换成10进制数程序开始,等待用户输入将接收到的数据显示到屏幕上并保存在屏幕上显示10进制数通过循环计算将输入的二级制数转换成16进制数,并保存在AX中4 详细设计程序代码:data segment num db 17,18 dup(?) prt1 db 0ah,'The input number is $' prt2 db 0ah,0dh,0ah,0dh,'The 10 decimal number is $'data endscode segment assume cs:code,ds:datastart: mov ax,data
8、 mov ds,ax mov dx,offset prt1 mov ah,09h int 21h lea dx,num mov ah,0ah int 21h lea bx,num inc bx mov cl,byte ptrbx and cx,0ffh xor ax,axnext: inc bx mov dl,byte ptrbx and dx,0ffh sub dx,30h sal ax,1 add ax,dx loop next push ax lea dx,prt2 mov ah,9 int 21h pop ax call display mov ah,4ch int 21hdispla
9、y proc near xor cx,cx mov bx,10continue1: xor dx,dx div bx push dx inc cx cmp ax,0 jnz continue1continue2: pop dx add dl,30h mov ah,2 int 21h loop continue2 retdisplay endpcode endsend start- 14 - 5 调试过程程序开始界面:点击仿真软件“模拟”按钮,开始仿真。点击的emulator菜单栏中的运行按钮。屏幕提示输入数字输入16位二进制数1111110010101101回车,程序运行完毕,屏幕显示输出结果。用计算器检验输出结果是否正确。检验完毕,结果正确。6 总结为期一周的汇编语言课程实习结束了,我对汇编语言有了全新的认识,看懂课本和实际动手做出一个程序还是有很大的区别。在最开始做这个题目的时候我比较迷茫,不太清楚从何处入手。后来和小组成员讨论,请教老师,再结合课本,终于找到了突破口。然后通过查阅类似的资料,确定了实现程序功能的方法。知道如何做和把程序做出来是两回事,从写程序中我学到了不放弃的精神。面对一次次的失败,只有坚持,再坚持,最后终于成功的做出来了,有一种骄傲,觉得很有成就感。通过这次实习,我学到了很多东西,让我更加懂得团队合作的重要性,小组成员间的分工,各个不同个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州理工学院《工程力学》2025-2026学年期末试卷
- 阳泉职业技术学院《工程造价管理与编制》2025-2026学年期末试卷
- 长治学院《物权法》2025-2026学年期末试卷
- 奥乐齐人员精简方案
- 2026年苏教版小学六年级语文上册小升初期中卷含答案
- 2026年人教版小学五年级语文下册开头结尾优化练习卷含答案
- 2026年人教版小学三年级语文上册关联词运用基础卷含答案
- 2026年人教版小学六年级数学下册负数大小比较练习卷含答案
- 深度解析(2026)《GBT 3863-2008工业氧》
- 深度解析(2026)《GBT 3738-2008卡套式可调向端弯通管接头》
- 2025年住院医师规培-湖北-湖北住院医师规培(整形外科)历年参考题库含答案解析
- 工程资料提升方案(3篇)
- 学校档案 培训课件
- 人教版六年级数学下册期末复习专练:计算题(含答案+解析)
- (2025年标准)购买刀具协议书
- 2025~2026学年度下学期八年级期中考试 历史(含答题卡、答案)
- RCO运行管理制度
- 2025年防水卷材聚酯胎专用纤维项目市场调查研究报告
- 浙江省9+1联盟2024-2025学年高一下学期4月期中物理试题(PDF版含答案)
- 宠物行业入股合同协议
- 泄漏管理培训课件
评论
0/150
提交评论