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