- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西安交大微机原理第一次实验报告
微机原理第一次实验报告
一.实验目的
(1) 学习8086/8088指令系统中一些基本指令的用法和程序设计的基本方法。
(2) 熟悉PC机上建立、汇编、连接、调试和运行8086、8088汇编语言程序的全过程。
(3) 学习提示信息的显示及键盘输入字符的方法。
(4) 掌握分支程序的设计方法。
二.实验内容
(1) 设a,b,c,d四个数分别以单字节压缩BCD码形式存放在内存NUM开始的四个单元,计算(a+b)-(c+d)并将结果放在Y1单元中,将结果在屏幕上显示出来。在debug中不断改变a,b,c,d内容并查看结果。
1. a=09, b=06, c=04, d=07
2. a=38, b=41, c=29, d=34
3. a=70, b=23, c=42, d=41
4. a=63, b=73, c=62, d=50
(2) 在提示信息下,从键盘输入原码表示的二位十六进制有符号数,当此数大于0时,屏幕上显示此数为正数;当此数小于0时,屏幕上显示此数为负数;当此数为0时,屏幕上显示此数为零。
三.实验调试过程
3.1 题目一调试过程
C:\DEBUG ONE.EXE
-U 反汇编
-R 查看寄存器变量值
观察到0005时已完成数据初始化,利用g 5追踪到此处
利用-d0指令查看内存单元,在偏移地址为0,1,2,3的地方有9,6,4,7,正是我们在代码中赋的初值。
-g d,观察到此时AL已赋值a=15H
-g 16,计算出a+b的值并赋给AL,值为0b,正确
-g 19,DAA调整后AL变为11,计算正确
-g 1b,cl=04H成功赋值给AL,正确
-g 1f,计算出(a+b)-(c+d)结果为04H,正确
题目二程序调试过程
-U0, 反汇编
-g 5,程序执行到此处时,完成DS寄存器赋值DS=0B5EH
-g a,程序执行到此处时,完成SS寄存器赋值SS=0B69H
-g 24,程序执行到此处,实现提示信息输出INPUT DATA:,手动输入C9
-U
-g 2f,程序执行到此处,成功跳转,显示信息“THIS DATA IS –“
四.程序及框图
4.1 题目一程序
DSEG SEGMENT ; 定义数据段
NUM DB 13H,27H,11H,12H ;定义a,b,c,d
Y1 DB ?
DSEG ENDS ; 数据段定义结束
SSEG SEGMENT PARA STACK ;定义堆栈段
DB 20 DUP(?)
SSEG ENDS ; 堆栈段定义结束
CSEG SEGMENT ; 定义代码段
ASSUME CS:CSEG,DS:DSEG,SS:SSEG ;各段定义
START: MOV AX,DSEG
MOV DS,AX ;数据段段地址送DS
MOV AX,SSEG
MOV SS,AX ; 堆栈段段地址送SS
MOV AL,[NUM]
ADD AL,[NUM+1] ;计算a+b
DAA ;压缩BCD码加法调整DAA
MOV CL,AL ; 保存a+b
MOV AL,[NUM+2]
ADD AL,[NUM+3] ;计算c+d
DAA ;压缩BCD码加法调整DAA
SUB CL,AL ;计算(a+b)-(c-d)
MOV AL,CL
DAS ;DAS调整
MOV [NUM+4],AL ;保存结果
AND AL,0F0H ;取AL中高四位
MOV CL,4
SHR AL,CL ;BCD码高位移至低位
ADD AL,30H ;AL加30H得ASCII码
MOV DL,AL
MOV AH,02H
INT 21H ;显示DL
MOV AL,[NUM+4] ; 恢复AL
AND AL,0FH ;取AL低四位
ADD AL,30H ;AL加30H得ASCII码
MOV DL,AL
MOV AH,02H
INT 21H ;显示DL
MOV AX,4C00H
INT 21H ;返回DOS
CSEG ENDS
END START ;程序结束
4.2 题目二程序
CRLF
文档评论(0)