汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法).doc

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法).doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分 汇编语言程序设计 实验一 熟悉、使用DEBUG调试工具 上机目的: 了解并逐步熟悉汇编语言的编辑方法及特点. 复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 掌握汇编语言的编辑、汇编及连接的过程。 了解并逐步掌握运用DEBUG进行调试汇编语言程序。 实验内容: 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 程序清单: 多字节非压缩型BCD数除法 (88754/6=14792) DATA SEGMENT A DB 8,8,7,5,4 B DB 6 C DB 5DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE;DS:DATA;ES:DATA, START MOV AX,DATA MOV DS,AX MOV ES,AX CLD LEA SI,A LEB DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] MOV AH,2 开始 INT 21H DEC DI 设置被除数、商的地址指针 LOOP LP2 设置单位除法次数计数器 MOV AH,4CH INT 21H 取被除数一位作十进制调整 CODE: ENDS END START 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 实验二 设计汇编语言程序 8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。灵活使用这些特点,将会给编程带来很大的方便。 8088对算术运算只提供了基本指令。实际编程中需要我们加以扩展,这也要求我们很好地掌握。 实验内容 字符串统计。 在数据段中建立一个缓冲区BUFFER,变量VER,编程使得程序具有如下功能:从键盘输入一个子字符串存入VER,从键盘输入包含一个或几个子字符串的字符串存入BUFFER。统计BUFFER中的字符串含有多少个子字符串以及每个子字符串的位置。 双字乘法程序。 设计一个程序实现32位带符号双精度数乘法运算。由于只有8位和16位的乘法指令。因此32位乘法运算是不能直接用指令实现的。但可以用16位乘法指令,通过 4次想乘然后把部分积想加。对于带符号数,可以先根据绝对值求得积。然后判断积的符号,若积为负数,应将其用补码表示。 实验报告: 1.提供所设计的完整的程序清单。 2.记录调试过程中发现的问题及解决方法。 3.可以考虑如何设计更好功能的程序。 提示:可以参考的程序流程图 被乘数存放:NUM1 乘数存放:NUM2 积数存放: MRLT 乘积符号标志存放:SIGN 变量NUM1,NUM2,MRLT均用DW定义。 子程序入口

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档