8088微机原理及接口技术报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及接口技术
实验报告
课程(项目)名称:微机原理与接口技术学院:自动化专业:自控姓名:学号:
指导教师:成绩:
2014年11 月26 日
实验一认识实验及多字节加减法程序
一、任务与目的
1. 实验任务:
(1) 熟悉和掌握MASM汇编程序及TD调试软件的使用;
(2) 熟悉代码段、数据段、堆栈段的结构;
(3) 掌握8086/8088汇编程序的结构;
(4) 掌握多字节加减法程序的编写。
2. 实验目的:
(1). 掌握8086/8088汇编程序及调试程序的基本使用方法;
(2) 熟悉8086/8088汇编语言编写的基本结构;
(3) 熟悉多字节加减算术运算的基本方法。
二、原理(条件)
1.相关知识:
(1) MASM汇编程序及TD调试软件的使用方法;
(2) 8086/8088汇编程序结构及算术运算等相关指令。
2.实验条件:
MASM汇编程序及TD调试软件。
三、内容步骤
1.启动TD(Turbo Debugger)输入程序段,观察执行情况并分析结果:(1) MOV BL,08H
MOV CL,BL
MOV AX,03FFH
MOV BX,AX
MOV [0200H],BX
MOV ES:[0300H],AX
(2) MOV AX,0A268H
MOV SI,9D1CH
ADD AX,SI
AX= 3F84H CF= 1 AF= 1 ZF= 0 PF= 1 OF= 1 SF= 0 ADD AL,30H
AX= 3FB4H CF= 0 AF= 0 ZF= 0 PF= 1 OF= 0 SF= 1
ADC AX,0FFFFH
AX= 3FB3H CF= 1 AF= 1 ZF= 0 PF= 0 OF= 0 SF= 0
分析:第一个是两个字相加,第二个是两个字节相加,第三个是两个字带进位相加,AX内结果改变的同时,FLAGS标志位也相应发生变化。
(3) 输入程序段,分步运行:
MOV AX,0102H
MOV BX,0304H
MOV CX,0506H
MOV DX,0708H
PUSH AX
PUSH BX
PUSH CX
PUSH DX
POP DX
POP CX
POP BX
POP AX
分析:该段程序是对栈的操作,将AX,BX,CX,DX先后栈之后再出栈,观察到进栈出栈时栈内变化及SP指针值的变化。
2.编写多字节加/减汇编程序,观察执行情况并分析结果
利用MASM宏汇编程序及TD程序进行调试。
(1)编写多字节加法汇编程序:
DATA SEGMENT
BUFFER1 DB 4FH,0B6H,7CH,34H,56H,1FH
BUFFER2 DB 13H,24H,57H,68H,0FDH,9AH
SUM DB 6 DUP(?)
CONT DB 3
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUFFER1
MOV DI,OFFSET BUFFER2
MOV BX,OFFSET SUM
MOV CL,CONT
MOV CH,0
CLC
GOON: MOV AX,[SI]
SBB AX,[DI]
INC SI
INC SI
INC DI
INC DI
MOV [BX],AX
INC BX
INC BX
LOOP GOON
MOV AH,4CH
INT 21H
CODE ENDS
END START
(2)编写多字节减法汇编程序:
(3) 3.编写多字节加/减汇编程序时,考虑最高字节相加或相减时产生进
位或借位程序应如何编写?请思考。
四、数据处理(现象分析)
1、使用TD输入程序结果
(1)
分析:通过TD观察到执行一段程序相应的单元就跟着改变,将AX单元的值给BX单元,再将BX单元的值送入DS段中的[0200H]单元,最后将AX 单元内容送入到ES段中偏移地址是[0300H]单元内。
(2) MOV AX,0A268H
MOV SI,9D1CH
ADD AX,SI
AX= 3F84H CF= 1 AF= 1 ZF= 0 PF= 1 OF= 1 SF= 0
ADD AL,30H
AX= 3FB4H CF= 0 AF= 0 ZF= 0 PF= 1 OF= 0 SF= 1
ADC AX,0FFFFH
AX= 3FB3H CF= 1 AF= 1 ZF= 0 PF= 0 OF= 0 SF= 0
分析:第一个是两个字相加,第二个是两个字节相加,第三个是两个字带进位相加,AX内结果改变的同时,FLAGS标志位也相应发生变化。
(3) 输入程序段,分步运行:
MOV AX,0102H
MOV BX,0304H
MOV CX,0506H
MOV DX,0708H
PUSH AX
PUSH BX
PUSH CX
PUSH DX
POP DX
POP CX
POP BX
POP AX