实验2汇编语言程序上机过程(续)、顺序程序设计.docVIP

实验2汇编语言程序上机过程(续)、顺序程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验2汇编语言程序上机过程(续)、顺序程序设计.doc

实验2 汇编语言程序上机过程(续)、顺序程序设计 实验目的 1.通过宏汇编(MASM)上机操作,使学生进一步掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。 2.进一步掌握调试过程中各命令的作用及使用方法,了解汇编和连接过程。 3.掌握顺序程序的概念和设计方法。 4.掌握汇编语言源程序框架的结构,伪指令的功能及使用。 实验内容与要求 要求学生按照教师的要求从下列编程题目中选择2-3题编写源程序、汇编、连接并调试得到正确结果。 编写程序计算Y=∑X1+X2+X3+X4+X5,其中Xi为字单元无符号数。 编写程序计算Z=(A+B)_SEG,要求把数据段DATA_SEG中的DATA1和附加段EXTRA_SEG中DATA2相加,并把结果存放在DATA_SEG段中的SUM中。其中DATA1 、DATA2和SUM均为双精度数,DATA1赋值为7725,DATA2赋值为-2341。 编写一个程序,将AX寄存器中的16位数分成四组,每组四位,然后把这四组数分别放在AL,BL,CL和DL中。 三、上机操作过程 1编写源程序 我所选的是第4题和第5题。 2建立源程序文件(MASM) 先建立一个文本文档(TEXT),再转变成MASM格式,然后经过汇编程序的汇编,使其转为目标代码文件。它是通过调用宏汇编MASM程序完成这一汇编操作的。汇编程序还将对源文件进行语法检查,如发现有错,将给出错误原因。程序设计者可根据它分析和修改源程序,并再经过汇编,直到无错误时为止,此时得到的是一个目标文件(OBJ文件)。 3连接目标文件(LINK) 目标文件为浮动的相对地址,是不可直接执行的。必须经过连接,把有关模块连接在一起,构成统一的编址,从而为运行提供条件。在运行时,装填到内存中的具体位置由段地址来确定。连接过程是由LINK连接程序实现的,此时得到的是一个可执行文件(EXE)。 4运行可执行文件 得到可执行文件后就可以直接调用可执行文件名,从盘上调到内存中运行。 四、源程序和结果如下 1.写一个完整的程序放在代码段CODE_SEG,要求把数据段DATA_SEG中的DATA1和附加段EXTRA_SEG中DATA2相加,并把结果存放在DATA_SEG段中的SUM中。其中DATA1 、DATA2和SUM均为双精度数,DATA1赋值为7725,DATA2赋值为-2341。 源程序如下: DATA_SEG SEGMENT WD1 LABEL WORD DATA1 DD 7725 WS LABEL WORD SUM DD ? DATA_SEG ENDS EXTRA_SEG SEGMENT WD2 LABEL WORD DATA2 DD -2341 EXTRA_SEG ENDS CODE_SEG SEGMENT ASSUME CS:CODE_SEG,DS:DATA_SEG,ES:EXTRA_SEG MAIN PROC FAR START:PUSH DS MOV AX,0 PUSH AX MOV AX,DATA_SEG MOV DS,AX MOV AX,EXTRA_SEG MOV ES,AX MOV AX,WD1 ADD AX,WD2 MOV WS,AX MOV AX,WD1+2 ADC AX,WD2+2 MOV WS+2,AX RET MAIN ENDP CODE_SEG ENDS END START 运行结果: 编写一个程序,将AX寄存器中的16位数分成四组,每组四位,然后把这四组数分别放在AL,BL,CL和DL中。 源程序如下: .model small .data x DB 4 dup(?) .stack 100H .code MAIN PROC FAR start: push ds and ax,00H push ax mov ax,1234H mov cx,04H mov si,00H lop: push cx mov cl,04H rol ax,cl push ax and al,0FH mov BYTE PTR x[si],al pop ax pop cx add si,2 Loop lop mov al,[X] mov bl,[X+2] mov cl,[X+4] mov dl,[X+6] print: mov ah,02H int 21H mov dl,al mov ah,02H int 21H mov dl,bl mov ah,02H int 21H mov dl,cl mov ah,02H int 21H exit: ret MAIN ENDP END st

文档评论(0)

suijiazhuang2 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档