汇编语言、微机原理、接口技术-八个实验(全)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩:计算机原理实验室实验报告
课程:汇编语言与微机原理
姓名:周晗
专业:计算机科学与技术
学号:1120542387
日期:2013-12-19
太原工业学院
计算机工程系
实验一:输入输出实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.10.29 一.实验内容
1.熟悉emu8086仿真系统
2.实现控制台输入输出
3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出)
扩展要求:
1.实现两位十进制和的输出
2.实现一位十进制四则运算
3.实现多位数运算
二.理论分析或算法分析
基本要求:
输入一位数保存在寄存器BL中,然后输出“+”,再输入被加数并加到BL。

将计算的结果输出。

扩展要求:
实现两位十进制和的输出,不同于基本要求的是有了低位的进位。

对于低位的相加有进位,并且要给了高位。

首先必须把输入的字符数转换为数值型,才可能有进位。

然后进行加法的aaaBCD调整。

从键盘读取第一个数
(1)从键盘键入一个数字(用DL保存“+”号),再键入第二个数字,(用DL存储等号)输出得数。

(2)从键盘读取第一个数的十位,输入被加数十位保存到BH,并且减去30H,第一个个位的数保存到BL且减去30H,从键盘读取第2个加数存储到CH中减去30H,第二个个位数存储到CL中,减去30H。

个位将AL,和CL用ADD相加,在传个AL。

十位上用ADC 将AL和CH相加。

再用aaaBCD调整
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
1、基本要求
MOV AH,1
INT 21H
MOV BH,AL;
输出加号
MOV DL,'+' MOV AH,2
INT 21H;
从键盘读第二个数MOV AH,1
INT 21H;
保存第二个数MOV BL,AL;
输出等于号
MOV DL,'=' MOV AH,2
INT 21H ;
两数相加
ADD BL,BH
SUB BL,30H;
输出结果
MOV DL,BL
MOV AH,2
INT 21H 2.扩展要求
MOV AH,1
INT 21H;
保存第一个数的十位
MOV BH,AL;
从键盘读取第一个数
的个位
MOV AH,1
INT 21H;
保存第一个数的个位
MOV BL,AL ;
输出加号
MOV DL,'+'
MOV AH,2
INT 21H ;
从键盘读第二个数的
十位
MOV AH,1
INT 21H;
保存第二个数的十位
MOV CH,AL ;
从键盘读第二个数的
个位
MOV AH,1
INT 21H;
保存第二个数的个位
MOV CL,AL;
输出等于号
MOV DL,'='
MOV AH,2
INT 21H
两数相加;
个位相加
MOV AL,BL
ADD AL,CL
AAA
MOV BL,AL ;
十位带CF加
MOV AL,BH
ADC AL,CH
AAA
MOV BH,AL
ADD BL,30H
ADD BH,30H;
输出结果的十位
MOV DL,BH
MOV AH,2
INT 21H ;
输出结果的个位
MOV DL,BL
MOV AH,2
INT 21H
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)1.实现了一位十进制的加法
2.实现两位十进制和的输出
五.结论
通过实验,初步了解emu8086仿真系统,能用汇编语言设计简单的程序我学会了简单的输入输出字符、对于的数据和计算的数据初步的理解。

实验二:分支程序实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.5 一.实验内容
1.实现控制台输入输出
2.实现两位十进制数猜数字游戏(基本要求:输入两位数和预设数值比较,对于输出>小于输出<等于输出=并退出)
扩展要求:
1.每次输出都换行
2.显示远大于>>(大于两倍)和远小于<<(小于二分之一)
二.理论分析或算法分析
首先将被猜的数字设成30。

输入两位十进制数,放在al和bl并将其减去30h转换为数值型。

输入数字和被猜数值30比较,如果大于30,则跳转到j4,并输出“>”;如果小于30,则跳转到j3并输出“<”;如果等于,则输出“=”并结束程序。

三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论
完成了本次实验,并通过本次试验的,学会了控制输入输出。

通过对程序的设计学会了运用比较进行程序的跳转
实验三:循环程序实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.12 一.实验内容
3.实现内存数据访问
4.用两种方法实现对五个字从大到小排序
5.用冒泡法时实现快排
二.理论分析或算法分析
选择排序
冒泡排序
提取数组中的第一个数,与后一个数做比对,如果第一个数比第二个数小,则交换位置,否则位置保持不变,依次和后边的数作比较,循环操作。

三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)验证了基本要求,实现了冒泡排序功能。

五.结论
该实验完成了基本要求,并通过这次实验学会了比较,循环。

实验四:子程序及中断实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.19 一.实验内容
4.实现子程序和中断服务子程序的设计
5.编写子程序设置40H中断为自定义中断服务子程序
6.编写中断服务子程序实现AX=AX+BX
7.编写主程序调用子程序和中断
二.理论分析或算法分析
1、让c=a+b。

再将其传给子程序
2.用mov将ax,bx清零
3,用add函数将ax和bx相加,并用mov 将ax+bx的值传给c
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
data segment a dw 4Ch b dw 2Ah c dw '?' data ends code segment assume cs:code,ds:data change proc near MOV AX,0 MOV BX,0 mov ax,a mov bx,b add ax,bx mov c,ax iret
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等) A ,B 的值:
五.结论
通过本次试验,基本实现了实验要求,学会了调用中断程序,并能熟悉的使用add
change endp
start: mov dx,data
mov ds,dx
MOV AX,0
mov es,ax
mov ax,offset change
mov word ptr es:[80h],ax
mov ax,seg change
mov word ptr es:[82h],ax
int 20h
jmp s
code ends
s:
end start
实验五:存储器访问实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.11.26 一.实验内容
1.实现存储器串操作访问
2.编程实现安全的串拷贝功能
3.源串和目的串有重叠的处理方法
8.理论分析或算法分析
1、串拷贝功能
2、源串和目的串有重叠的处理方法
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)1、串拷贝功能
data segment
str1 db "qian$"
n equ $-str1
str2 db 30 dup('0')
data ends
code segment
start:
mov ax, data
mov ds, ax
lea dx,str1
mov ah,09h
int 21h
mov si,seg str1
mov ds,si
mov si,offset str1
mov di,seg str2
mov es,di
mov di,offset str2
cld
mov cx,n
rep movsb
mov dl,0DH ;显示回车符
mov ah,02h
int 21h
mov dl,0Ah
int 21h
mov ah,09h
lea dx,str2
int 21h
code ends
end start ; set entry point.
2、源串和目的串有重叠的处理方法
std
mov si,offset str1 + 8 -1
mov di,si add di,4
mov cx,8
rep movsb
hlt
str1 db "12341234" str2 db 8 dup ('0')
cld
mov si,offset str2
mov di,si
sub di,3
mov cx,16
rep movsb
hlt
str1 db 8 dup ('0')
str2 db 4 dup("1234")
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论
该程序完成了拷贝功能,但是源串和目的串有重叠的处理实验没有完成。

通过实验学会了拷贝一个字符串
实验六:8255交通灯实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.12.03 一.实验内容
4.使用IO方式实现十字路口交通灯控制
5.分别实现南北向和东西向绿灯等时和不等时的控制
二.理论分析或算法分析
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
#start=Traffic_Lights.exe#
name "traffic"
mov ax, all_red
out 4, ax
mov si, offset situation
next:
mov ax, [si]
out 4, ax
; wait 5 seconds (5 million microseconds)
mov cx, 4Ch ; 004C4B40h = 5,000,000
mov dx, 4B40h
mov ah, 86h
int 15h
add si, 2 ; next situation
cmp si, sit_end
jb next
mov si, offset situation
jmp next
; FEDC_BA98_7654_3210
situation dw 0000_0011_0000_1100b ;南北绿东西红
s1 dw 0000_0110_1001_1010b ;南北黄东西红黄s2 dw 0000_1000_0110_0001b ;南北红东西绿
s3 dw 0000_1000_0110_0001b ;南北红东西绿
s5 dw 0000_1000_0110_0001b ;南北红东西绿
s4 dw 0000_0100_1101_0011b ;南北红黄东西黄sit_end = $
all_red equ 0000_0010_0100_1001b
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论
完成了基本要求,实现了十字路口交通灯控制功能,通过本次试验掌握了基本的IO寻址方式。

实验七:温度控制实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.12.10 一.实验内容
6.使用IO方式实现温度采集和加热控制控制温度保持在19℃到20℃并维持1分钟
7.控制温度曲线如给定要求(先加热到20℃保持1分钟;加热到40℃保持2分钟;然后降温到0℃并保持)
二.理论分析或算法分析
算法流程:
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
#make_bin#
name "thermo"
mov ax, cs
mov ds, ax
start:
mov bx,0
j1: in al, 125
cmp al, 20
jl low
mov al, 0
out 127, al
mov cx, 0003h ; mov dx, 0d40h
mov ah, 86h
int 15h
inc bx
cmp bx,30
jl j1
mov bx,0
jmp high
j2:in al, 125
cmp al, 40
jl high
mov al, 0
out 127, al
mov cx, 0003h ; mov dx, 0d40h
mov ah, 86h
int 15h
inc bx
cmp bx,30
jl j2
jmp j3
j4:in al, 125
cmp al, 0
jg j3 mov bx,0
jmp j5
low:
mov al, 1
out 127, al ; turn heater "on".
jmp j1
high:
mov al, 1
out 127, al ; turn heater "off".
jmp j2
j3:mov al, 0
out 127, al
mov cx, 0003h ; 00030d40h = 200,000 mov dx, 0d40h
mov ah, 86h
int 15h
jmp j4
j5:in al, 125
cmp al, 0
jl j6
mov al, 0
out 127, al
mov cx, 0003h ; 00030d40h = 200,000 mov dx, 0d40h
mov ah, 86h
int 15h
inc bx
cmp bx,60
jl j5
jmp start
j6:
mov al, 1
out 127, al ; turn heater "off".
jmp j5
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论
该是实验完成了要求,但是方法可能不恰当,但是总算实现了功能。

实验八:Proteus 学习报告
一、安装proteus
1、下载proteus软件安装包,并解压
2、按照网上安装步骤完成安装。

3、完成破解
软件安装注意事项:
(1)系统用户名必须为英文
(2)安装路径不能为中文
(3)若安装有以前版本,需先清理注册表
二、运行proteus
(1)主界面:
(2)放置元件
元件通常以器件名或器件代号在库中存放,根据元件符号和预览选取元件
(3)绘制简单的电路原理图
选取各种模式:
选取元件:
改变元件的属性:
编辑元件:
添加元件后:
连线元件:
封装元件:
运行实例:。

相关文档
最新文档