ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:119.36KB ,
资源ID:8724472      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8724472.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编实验报告.docx

1、汇编实验报告汇编语言程序设计实 验 报 告院 系 信息科学与技术学院 专 业 软件工程 年 级 2011 学 号 20112754 姓 名 尚孟昕 西南交通大学信息科学与技术学院年 月 日实验一 Masm6.11的使用方法一、实验目的1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。2、创建一个工程文件,对该工程文件进行编译,连接,并运行;3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。二、实验环境该试验包括的硬件和软件条件如下:1、硬件环境 (1)Intel Core Duo CPU P8700 (2)内存4G

2、2、软件环境 (1)Window XP Professor (2)MASM6.11开发软件三、实验步骤 1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。 2、将C:masm611Bin目录下的所有文件拷贝到C:Masm611binr目录下,将C:Masm611help目录下的所有文件拷贝到c:Masm61binr目录下。 3、执行C:Masm611Binr目录下的pwb.exe文件,打开开发环境。 4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。 5、执行Project菜单下

3、New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。 6、执行Project下Build子菜单编译连接该工程文件,并运行该可执行程序,观察程序执行的结果。 7、执行Run菜单下Debug子菜单,进入调试环境。 8、在程序的如下位置设置断点,并按要求观察寄存器堆栈或者内存单元的值。Data segment Msgl db please input the number of student:$ Num db 0 EnMsg db 0ah,0dh,$ Msg2 db please input the grade of each st

4、udent:$ Msg3 db the average grade of these student is:$ avg db 0 ascavg db 0,0,$Data endsStack segment para stack db 20h dup(0)Stack endscode segment Assume Cs:code,Ss:stack,ds:DataStart: mov ax,data mov ds,ax lea dx,Msgl ;此行设置断点,观察DS所指示的数据段的情况 mov ah, 09h int 21h Call Numproc ;此行设置断点,观察屏幕输出,并观察堆栈的变

5、化 mov num,bl ;此行设置断点,观察bl的值,并观察堆栈的变化 lea dx,EnMsg mov ah,09h int 21h lea dx,Msg2 mov ah,09h int 21h call Avgproc ;此行设置断点,观察屏幕输出信息 lea dx,EnMsg ;此行设置断点,观察avg所对应的存储单元的值 mov ah,09h int 21hlea dx, Msg3 mov ah,09h int 21h call bta ;此行设置断点,观察屏幕输出信息 mov ah,4ch ;此行设置断点,观察ascavg所对应的存储单元的值及屏 ;幕输出信息 int 21hNum

6、proc proc push ax push cx push dx lea dx,EnMsg mov ah,09h int 21h mov bl,0 lop1: mov ah,01h int 21h ;设置断点观察al寄存器的值 cmp al,0dh jz lop2 cmp al,0 jl lop1 cmp al, 9 ja lop1 sub al,30h mov cl,al mov al,bl mov ch,10 mul ch mov bl,al ;设置断点观察al寄存器的值 add bl,cl ;设置断点观察bl寄存器的值 jmp lop1 lop2: pop dx pop cx pop

7、ax retNumproc endpAvgproc proc push ax push cx xor dx,dx ;设置断点观察堆栈值的变化 mov cl,num ;设置断点观察cl寄存器的值lop3: call Numproc xor ax,ax mov al,bl add ax,dx Div num add avg,al ;设置断点观察avg存储单元的值 xor dx,dx mov dl,ah sub cl,1 jnz lop3 pop ax ;设置断点观察avg存储单元的值 pop cx ret ;设置断点观察堆栈值的变化 Avgproc endp bta proc push ax ;设

8、置断点观察堆栈值的变化 push bx xor ax,ax mov al,avg mov bl,10 div bl add ah,30h ;设置断点观察ax寄存器的值 add al,30h mov ascavg ,al ;设置断点观察ascavg存储单元的值 mov ascavg+1,ah lea dx,EnMsg mov ah,09h int 21h lea dx,ascavg ;设置断点观察dx寄存器的值 mov ah,09h int 21h pop bx pop ax ret bta endp code ends end start 9、按照程序的执行过程绘制出程序流程图。开始 输入数据

9、(调用Numproc、Avgproc)求平均值调用把bta并输出结果结束四、实验结果及其分析 1.实验结果 2.断点(1) lea dx,Msgl ;此行设置断点,观察DS所指示的数据段的情况(2)Call Numproc (输入人数) ;此行设置断点,观察屏幕输出,并观察堆栈的变化输入人数3。由寄存器和内存可知BX为3,即为输入人数,内存中181B:0125为num地址,其值为3.mov cl,num ;设置断点观察cl寄存器的值观察CX发现CL的值为3。(3)Call Numproc (输入成绩) ;此行设置断点,观察屏幕输出,并观察堆栈的变化此时屏幕提示输入学生成绩。输入成绩:3-1 输

10、入87:图1:将输入数字8存入BL中。图2:(AL)-(BL)图3:(CL)+(BL)-(BL) add bl,cl图4:输入7,(BL)-(AL),(AL)*10-(BL)。图5:(BL)+(CL)-(BL) 输入87后avg的值:观察内存,地址为181B:0178的avg值为1DH,其十进制数为29,即87/3=29。3-2 输入77:图1:输入7,已将AL值赋值给CL (CL)=7。图2:(AL)-(BL)图3:int 21h;AL值。图4:输入7之后(BL)-(AL)图5:add bl,cl图6:int 21h;AL值输入77后avg值:观察内存,地址为181B:0178的avg值为3

11、6H,其十进制数为54,即29+77/3=54。3-3 输入92:图1:输入9,已将AL值赋值给CL (CL)=9。图2:(AL)-(BL)图3:int 21h;AL值。图4:输入2之后(BL)-(AL)图5:add bl,cl图6:int 21h;AL值输入92后avg的值:(4)调用bta前屏幕输出:观察内存,地址为181B:0178的avg值为55H,其十进制数为85,即54+94/3=85。(5)调用bta压栈操作清零AX。(6) 观察avg与AX的值:地址为181B:0178的avg值为55其十进制数为85;(AL)为38H,(AH)为35H。分别为字符8,字符5。(7)分别将AL,AH的值放入ascavg中,观察知首地址为181B:0179的ascavg第一字节为(AL),第二字节为(AH),即ascavg0为8,ascavg1为5。五、结论通过本次实验我学习并掌握了如何使用MASM6.11开发软件来创建一个汇编语言程序,并对开发环境中一些环境境变量进行设置,建立工程,编译运行程序,设置环境,利用错误提示修改程序,设置和编辑断点,查看寄存器、存储单元以及变量的值等内容。 本次实验的经验及教训:一定要注意源程序的保存路径,否则无法运行结果。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1