文档详情

微机原理实验报告.pdf

发布:2018-12-20约8.94千字共22页下载文档
文本预览下载声明
微 机 原 理 实 验 报 告 2130401097 电气34 班 郭永钊 1 实验一 顺序程序的设计 一、 实验目的 1. 学习8086/8088 指令系统中一些基本指令的用法和程序的基本方法。 2. 熟悉在PC 机上建立,汇编,连接,调试和运行8086.8088 汇编语言程序 的全过程。 二、 实验内容 设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 三、 实验调试过程 1. 利用dos 工具masm 以及link 生成exe 文件 2. 利用debug 工具反汇编后设置断点调试程序 ①利用-u 命令反汇编程序 ②设置断点一,查看a+b 结果是否正确 结果存在AL 中,等于23h,结果正确 ③设置断点二,查看c+d 结果是否正确 结果存在AL 中,等于30h ,结果正确 ④运行完程序,用-d 命令查看最终结果是否正确 其中数据段第五个地址处为计算结果,结果正确 ⑤利用-E 命令多次改变数值,运行程序,按以上步骤查看结果,查看结果 是否正确 特别的,在(a+b )- (c+d )中,若前者小于后者,结果有可能不正确, 此时应该判断借位标志位是否为负,若负,则用(c+d )- (a+b )再在结果 中输出负号即可 3. 调试成功,查看结果 在dos 命令下直接运行add.exe 或在debug 中利用-g 命令运行程序,查 看程序结果 四、 实验程序及框图 DSEG SEGMENT ;DEFINE DATA SEGMENT NUM DB 13H,27H,11H,12H ;DEFINE A,B,C,D Y1 DB ? DSEG ENDS ;DATA SEGMENT ENDS SSEG SEGMENT PARA STACK ;DEFINE STACK DB 20 DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:SSEG START: MOV AX,DSEG MOV DS,AX MOV AX,SSEG MOV SS,AX MOV AL,[NUM] ;COPY A TO AL ADD AL,[NUM+1] ;A+B DAA MOV CL,AL ;SAVE AL MOV AL,[NUM+2] ;COPY C TO AL ADD AL,[NUM+3] ;C+D DAA
显示全部
相似文档