算术运算编程实验..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文档。上传文档
查看更多
重庆邮电大学 实验报告 实验课程名称: 微型计算机原理与接口技术 学 院: 软件工程学院 专 业: 日语 +软件 指导教师: 报告人姓名: 魏俊 学 号: 2012214271 班 级: 1301213 学 期: 2014-2015 上学期 实验 成绩 实验项目名称 实验一、算术运算编程实验 一、实验目的与要求: 1. 8088 系统中数据在内存中的存放方式和内存操作数的几种寻址方式。 2.求累加和程序和多字节加减法程序。 二、实验设备及软件: 硬件:处理器 Pentium Dual-Core E5400 x86 操作系统 Microsoft Windows Server 2003 Enterprise Edition sp2 开发平台 MASM.exe\debug\CREF.exe\LINK.exe 三、实验方法(原理、流程图) 实验基本流程 原理介绍 通过编辑、 汇编和连接后的程序是可以执行的程序。 同时 debug 的主要功能有显示和修改寄存器及内存单元的内容;按指定地址启动并运行程序。 四、实验过程、步骤及内容、实验数据(现象)处理分析一、内存操作数及各种寻址方式使用 : 内容 : MOV MOV MOV MOV MOV INC MOV DEC MOV MOV MOV MOV  AX,1234 [1000],AX BX,1002 BYTE PTR[BX],20 DL,39 BX [BX],DL DL SI,3 [BX+SI],DL [BX+SI+1],DL WORD PTR[BX+SI+2],2846 1)用 A 命令键入上述程序 ,并用 T命令逐条运行。 2)每运行一条有关内存操作数的指令 ,要用 D 命令检查并记录有关内存单元的内容并注明是什么寻址方式。 注意 D命令显示结果中右边的 ASCII 字符及双字节数存放法。 思考 :有关指令中 BYTE PTR 及WORD PTR 伪操作不加行不行 ?试一试。 答:不行,原操作数与目的操作数的位数不一致。 图1 使用A输入命令 图 2 执行第 1 步,查看初始内存内容,立即数寻址 图 3 执行第 2 步,查看当前内存内容,直接寻址 图 4 执行第 3 步,查看修改前的内存内容,立即数寻址 图 5 执行第 4 步,查看修改后的内存内容,基址变址寻址 图 6 执行第 5 步,立即数寻址 图 7 执行第 6 步,寄存器寻址,执行第 7 步,基址变址寻址,查看修改后的内存内容 图  8  执行第  8 步,寄存器寻址,执行第 9 步,立即数寻址,执行第 查看修改后的内存内容  10 步,基址变址寻址, 图 9 执行第 11 步,查看修改后的内存内容,相对基址变址寻址 图 10 执行第 12 步,查看修改前后的内存内容,基址变址寻址 图 11 有关指令中 BYTE PTR及 WORD PTR伪操作不加不行 二、求累加和程序 : 程序 : MOV BX,1000 MOV CX,10 SUB AX,AX LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP J: INT 3 用 A 命令将程序键入到 100H开始的内存中 ,在键入时记下标号 LOP和J的实际地址 ,在键入 LOOP指令时 LOP用实际地址值代替。 用 E命令在内存地址 1000H处键入 16个数字 3)用命令 G=100 J(J用实际地址代替 ),使程序运行并停在断点 J上 ,检查 AX,BX 的值是否符合你的预计值。 4)用 T命令运行一步 ,观察程序方向 (IP值)和CX 值是否与你的估计一样 , 若不一样 ,检查程序是否有错。 5)重复 G J与T,再检查 AX 是否正确。 6)用 G命令使程序运行到结束 ,检查 AX 值是否正确。 三、多字节加法程序。 程序 : MOV DI,1000 MOV CX,8 MOV SI,2000 CLC LOP: MOV AL,[SI] ADC [DI],AL INC SI INC DI LOOP LOP INT 20 步骤 : 用 A命令键入此程序 用 E命令在 1000H开始处键入一个 8字节被加数 ,在2000H开始处键入一个 8 字节加数 ,均为低字节在前面。 用 G命令运行此程序 ,并用 D命令检查其结果 (存放在哪里 ?),是否正确 ? 答:正确,结果已存入内存,如下图 将 INT 20H 指令改为 INT 3,有何区别 ?若这条指令不加 ,行不行 ?试一试。 改 成 3将显示当前所有寄存器和标志位的内容、 以及下一条将要执行的指令,如上图。不加此指令也一样,如下图 四、自编程序 : 用 16位减法指令编一个 32位(4字节 )数减法程序 ,两个源数及结果存放地址同上题。调试并做记录。 MOV AX,

文档评论(0)

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

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

1亿VIP精品文档

相关文档