微机原理实验4循环结构.docxVIP

  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文档。上传文档
查看更多
物理与机电工程系 (2015——2016学年第一学期) 《调试程序的使用》 上机实验报告 专业:电子信息工程 学号: 姓名:成功回 任课教师:官方个 实验地点:实验楼5537 项目编号:实验四 一、实验目的: 加深对循环结构的理解。 掌握循环程序的设计方法。 二、实验内容: 编制程序计算S=1+2·3+3·4+4·5++N(N+1)+直到N(N+1)大于200为止,并将结果由屏幕上显示出来。 将字形变量x以二进制数的形式在屏幕上显示输出。 将字形变量x以十六进制数的形式在屏幕上显示输出。 将内存单元缓冲区中的符号数(20个)按从小到大的序次摆列,并以十六进制数的形式显。 三、实验过程: 编制程序计算S=1+2·3+3·4+4·5++N(N+1)+直到N(N+1)大于200为止,并将结果由屏幕上显示出来。 程序流程图以下: 开始 BX=1 DL=2 DL赋值给 AL DL自加1 AL乘DL赋 值给AX 否 AX大于200否? 是 各位变换 为16进制 输出 结束 程序源代码以下: DATASSEGMENT sdw?;此处输入数据段代码 DATASENDS STACKSSEGMENT dw64dup(?);此处输入货仓段代码 STACKSENDS CODESSEGMENT ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATAS MOVDS,AX movbx,0001h;BX=1 lop2:  movdl,02h moval,dl incdl;加1  ;DL=2 ;AL=2 ;DL=3 lop1: next:  muldl;无符号数乘法AX=AL*DL=2*3 addbx,ax;BX=AX+BX cmpax,00C8h;与200比较 jbelop2;不高于转移 movs,bx movch,4 movcl,4 rolbx,cl movdl,bl anddl,0Fh cmpdl,09h jbenext;低于等于转移= adddl,7 adddl,30h movah,2 int21h decch jnzlop1;非零转移 MOVAH,4CH INT21H CODESENDS ENDSTART 程序运转结果以下: 程序反汇编过程以下: 将字形变量x以二进制数的形式在屏幕上显示输出。程序流程图以下: 开始 存入数与DX DX左移一位 有无 CF有无进位 DL加31HDL加30H 调用2号功能 键输出 结束 程序源代码以下: DATASSEGMENT xdw1325h;此处输入数据段代码 DATASENDS STACKSSEGMENT;此处输入货仓段代码 STACKSENDS CODESSEGMENT ASSUMECS:CODES,DS:DATAS,SS:STACKSSTART: MOVAX,DATAS MOVDS,AX movbx,x movcx,10h lop1:rolbx,1;不带cf的循环左移 jcnext;进位转移,即cf=1 movdl,30h;将0送入dl jmpnext2 next:movdl,31h;将1送入dl next2:movah,2 int21h looplop1;循环执行lop1 MOVAH,4CH INT21H CODESENDS ENDSTART 存入数据及程序运转结果以以下图: 程序反汇编过程以下: 3.将字形变量x以十六进制数的形式在屏幕上显示输出。 程序流程图以下: 开始 DX存入转 换数 CH存入循 环次数4 CF存入移 位次数4 DX循环左 移 否 DX小于9否? 是DL加7 否 DL加30H 调用2号功 能输出 CH减1 CH为0否? 是 结束 程序源代码以下: DATASSEGMENT dw933;此处输入数据段代码 DATASENDS STACKSSEGMENT;此处输入货仓段代码 STACKSENDS CODESSEGMENT ASSUMECS:CODES,DS:DATAS,SS:STACKS START: MOVAX,DATAS MOVDS,AX movbx,x movch,4 movcl,4 lop1:rolbx,cl;不带cf的循环左移 movdl,bl anddl,0Fh cmpdl,09h jbenext;低于等于转移 adddl,7 next:adddl,30h movah,2 int21h decch jnzlop1;非零转移 MOVAH,4CH INT21H CODESENDS ENDSTART 存入的变换数据及程序运转结果以下: 程序反汇编过程以下: 将内存单元缓冲区中的符号数(20个)按从小到大的序次摆列,并以十六进制数的形式显。程序流程图以下: 开始 定义数组X L=20 CL减1 CL赋值给CH X偏移地点[SI] 放

文档评论(0)

138****5510 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档