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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《汇编语言程序设计》实验报告一.docx

1、汇编语言程序设计实验报告一汇编语言程序设计实验报告(一)年级:_ 班级:_ 学号:_ 姓名:_一、 实验题目1. 编制一汇编源程序,求出下列公式中的Z值,并放在RESULT单元中。 2. 用查表的方法将1位十六进制数转换成相应的ASCII码(并在屏幕上显示)。3. 写一个完整的程序放在代码段 C_SEG中,要求把数据段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把结果存放在数据段D_SEG中的SUM中。其中AUGEND、ADDEND和SUM均为双字长变量,AUGEND赋初值为99251,ADDEND赋初值为-159622、实验要求1. 分别用远过程和DOS中断4CH的两

2、种方式编制完整的汇编语言源程序;2. 掌握汇编语言上机的完整过程:编辑、汇编、连接、运行、调试;3. 使用DEBUG察看并修改寄存器和存储器的内容;4. 使用DEBUG连续运行、单步运行。3、程序设计说明1.程序hbsy1_1功能:根据公式 计算z 的值,并将结果存储在result 单元中。 算法:1)在数据段中定义两个变量x和y ,并将x赋初值为6,y赋初值为7 2)定义一个适宜大小的堆栈段 3)指令 mov dx,x 实现dx=x;指令 add dx,y 实现 dx=x+y; 指令shl dx,cl实现dx=(x+y)*8(cl的值为3);指令sub dx,x实现dx=(x+y)*8-x;

3、 指令sar dx,1实现dx=(x+y)*8)/2;指令mov result,dx将z的值存储到result单元中。2.程序hbsy1_2 功能:将一位十六进制数转换成相应的ASCII码,并在屏幕上显示出来。算法:1)建立一个数据表TABLE存储0到9,A到F所对应的ASCII码。 2)在数据段中定义一个字节变量HEX存储一位十六进制数。 3)将HEX的值传给AL,再用换码指令XLAT将AL的值换为数据表TABLE中对应的ASCII码。 4)调用相应指令将HEX对应的ASCII码显示出来。 3.程序hbsy1_3功能:将数据段D_SEG中的AUGEND和E_SEG中的ADDEND相加,并把结

4、果存放在数据段D_SEG中的SUM中。算法:1)在数据段D_SEG中定义双字长变量AUGEND,并赋初值为99251 2)在附加段E_SEG中定义双字长变量ADDEND,并赋初值为-15962 3)将AUGEND的低16位传给AX,高16位传给DX。 4)将ADDEND的低16位与AX相加,高16位与DX相加。 5)用高低位的方法将AUGEND与ADDEND相加的结果传给SUM。 4、程序调试说明1.程序hbsy1_1用MASM编译程序hbsy1_1,再用LINK链接程序hbsy1_1:用DEBUG中的R指令显示寄存器的内容:用DEBUG中的D指令显示存储器的内容:用DEBUG中的T指令对程序

5、进行单步调试:用DEBUG中的G指令对程序设置断点进行调试:2.程序hbsy1_2用MASM编译程序hbsy1_2,再用LINK链接程序hbsy1_2:用DEBUG中的相应指令对程序进行调试:3.程序hbsy1_3用MASM编译程序hbsy1_3,再用LINK链接程序hbsy1_3:用DEBUG中的相应指令对程序进行调试:4、实验结果与结论1.程序hbsy1_1程序hbsy1_1运行的结果:2.程序hbsy1_2程序hbsy1_2运行后,屏幕显示结果为4:3.程序hbsy1_3程序hbsy1_3运行的结果:5、使用说明 1.程序hbsy1_1在DOS环境下,进入到程序hbsy1_1.exe 所

6、在的目录下,然后输入“hbsy1_1.exe”回车,就可以运行程序hbsy1_1.exe。2.程序hbsy1_2在DOS环境下,进入到程序hbsy1_2.exe 所在的目录下,然后输入“hbsy1_2.exe”回车,运行程序hbsy1_2.exe,屏幕上显示字符“4”。3.程序hbsy1_3在DOS环境下,进入到程序hbsy1_3.exe 所在的目录下,然后输入“hbsy1_3.exe”回车,就可以运行程序hbsy1_3.exe。6、实验中遇到的问题及解决方法1.1)在编译程序hbsy1_3时15-20行出现错误“Illegal size for operand”:2)进入源程序,找到对应的行

7、,发现在传值的时候没有注意源操作数与目的操作数的长度应保持一致:3)修改相应错误后,程序编译通过:7、程序源代码1.程序hbsy1_1data segment x dw 6 y dw 7 result dw ?data endssta1 segment para stack dw 20h dup(0)sta1 endscode segmentproc1 proc far assume cs:code,ds:data,ss:sta1start: push ds xor ax,ax push ax mov ax,data mov ds,ax mov dx,x add dx,y mov cl,3 s

8、hl dx,cl sub dx,x sar dx,1 mov result,dx retproc1 endpcode endsend start2.程序hbsy1_2data segmenttable db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h db 41h,42h,43h,44h,45h,46hhex db 4ascii db ?data endssta1 segment para stack dw 20h dup(0)sta1 endscode segment assume cs:code,ds:data,ss:sta1start: mov

9、ax,data mov ds,ax mov bx,offset table mov al,hex xlat table mov ascii,al mov dl,al mov ah,2 int 21h mov ah,4ch int 21hcode endsend start3.程序hbsy1_3d_seg segment augend dd 99521 sum dd ?d_seg endse_seg segment addend dd -15962e_seg endsc_seg segment assume cs:c_seg,ds:d_seg,es:e_segstart: mov ax,d_seg mov ds,ax mov ax,e_seg mov es,ax mov ax,word ptr augend mov dx,word ptr augend+2 add ax,word ptr addend add dx,word ptr addend+2 mov word ptr sum,ax mov word ptr sum+2,dx mov ah,4ch int 21hc_seg endsend start完成日期:_2012.03.23_

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

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