- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编上机报告2
汇编语言第二次上机实验报告
班级:通 信 工 程1003 班
上机时间: 2012 年 11 月 2日
题目
写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的AUGEND和附加段E_SEG中的ADDEND相加,并把结果放在D_SEG中的SUM中。其中AUGEND,ADDEND和SUM均为双精度数,AUGEND赋值为99251,ADDEND赋值为-15962。
设计思想
在数据段中分配两个双字AUGEND和SUM,AUGEND初始化为99251,在附加段中分配一个双字ADDEND并初始化为-15962。然后利用寄存器AX对低位字相加,DX对高位字相加。最后将结果放回SUM单元。
源程序代码
;********************************************
D_SEG segment ;define data segment
AUGEND DD 99251
SUM DD ?
D_SEG ends
;********************************************
E_SEG segment ;define extra segment
ADDEND DD -15962
E_SEG ends
;********************************************
C_SEG segment ;define code segment
;--------------------------------------------
main proc far ;main part of program
assume cs:C_SEG,ds:D_SEG,es:E_SEG
start:
;set up stack for return
push ds ;save old data segment
sub ax,ax ;put zero to AX
push ax ;save it to stack;
;set DS register to current data segment
mov ax,D_SEG
mov ds,ax
;set ES register to current extra segment
mov ax,E_SEG
mov es,ax
;the operation goes here
mov ax,WORD PTR AUGEND ;add low word
add ax,WORD PTR ES: ADDEND
mov dx,WORD PTR AUGEND+2 ;add high word
adc dx,WORD PTR ES: ADDEND+2
mov WORD PTR SUM,ax ;store low and high word to SUM
mov WORD PTR SUM+2,dx
ret
main ends
;--------------------------------------------
C_SEG ends
;********************************************
end start
编写代码完成后,命名为second.asm,存在masm目录下面。
编译
然后进行link操作产生EXE文件,如下:
直接进行程序执行不会显示结果,因为程序中没有调用中断把结果输出到屏幕上,其实程序已经瞬间执行完成并返回DOS了。要看到执行的结果,只能使用命令调试程序了。使用debug命令调用程序,如下:
可以看到DS段中前四个字节AUGEND为183B3H=99251D,后四个字节SUM为14559H=83289D。ES段中前四个字节ADDEND为0FFFFC1A6,是-15962D的补码。而99251D-15962D=83289D,证明程序结果正确。
心得
通过这次上机实验让我将书上的理论知识和实践紧密结合在一起对基础知识以及设计方法有了进一步的了解在巩固了理论知识的同时也提高了我的实践能力。由于课本上的知识太多平时课间的学习并不能很好的理解所以在这次上机实验过程中我从根本上了解了很多知识点并且对于它们在实际中的应用有了更多的认识。在设计实验过程中刚开始在程序上多次遇到错误因而无法得到准确的结果之后通过不断的检查发现错误修改错误并请教老师最终使设计的程序能够在计算机上运行正确。在此过程中增强了我独立思考和解决问题的能力也让我养成了做事谨慎认真有耐心的态度使我在知识和做事两方面都有所提高。经过这次上机实验的学习使我增强了对的兴趣
文档评论(0)