《微机实验及课程设计》
实验报告
实验一 汇编语言与程序调试基础
姓 名: 学 号:
专 业: 仪器科学与工程学院 实 验 室:计算机硬件技术
实验时间: 2014年04月17日报告时间: 2014年04月23日
评定成绩: 审阅教师:
一、实验目的
1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点
2、掌握汇编语言程序指令编辑、宏汇编、连接和运行的基本概念
3、熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境
4、学会利用DEBUG或TD检查认识指令功能的正确方法
二、实验内容
1、必做内容
(1) 要求计算两个多字节十六进制数之差:
3B74AC60F8-20D59E36C1=?
式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。
(2) 以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。
2、选做内容
(1) 两个字符串的长度均为10,首地址分别为STRING1和STRING2,比较两个字符串是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器中。
三、实验原理
1、实验基本步骤
(1)用任意一种文本编辑器(EDIT、NOTEPAD、UltraEDIT等)建立编辑汇编源程序,并将其保存为文件名.asm文件,将其放入带汇编工具的文件夹中(d:\tasm)。
注:文件名不要起的过长,在连接时可能会出现can’t find file的问题。
(2)开始菜单,点运行条目,打入cmd命令进入DOS调试环境。
(3)进入该文件夹(cd d:\tasm) ,键入如下命令开始编辑程序 :
d:\zxj>edit 文件名.asm
(4)将程序保存后返回DOS进行汇编,键入如下命令:
d:\zxj>tasm 文件名.asm
如果汇编通过,进行下一步,如果出现error,返回3步骤,根据错误的行数进行修改,然后重新汇编,直到不产生error为止。此时若出现warning可不予理会。
(5)将程序进行连接,键入如下命令:
d:\zxj>link 文件名.obj
如果连接正确,进行下一步,如果错误返回3步骤进行修改,然后重新编译和连接。
(6)执行程序,键入如下命令:
d:\zxj> 文件名.exe
如果执行正确,则应该显示正确结果;如果执行错误,返回步骤3,重新编译连接和执行。
(7)如果不能直接从程序中找出错误,可以应用Debug程序进行调试,键入如下命令:
d:\zxj> td 文件名.exe
在找出错误后,重新返回3步骤,重新编译连接和执行。
2、实验相关操作界面
(1)TD操作界面
四、实验源程序和流程图:
1、实验1:
源代码:
data segment
data1 db 0F8H,60H,0ACH,74H,3BH
data2 db 0C1H,36H,9EH,0D5H,20H
data3 db 20 dup(?)
data ends
stacks segment stack
db 256 dup(?)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks
main proc far
start : mov ax,data
mov ds,ax
mov ax,stacks
mov ss,ax
clc
mov si,0
mov cx.2
loopl: mov al,data1[si]
sub al,data2[si]
mov data3[si],al
inc si
dec,cx
loop loop1
mov ah,4ch
int 21h
main endp
code ends
end start
2、实验2:
源代码:
data segment
buffer dw 1234H,2345H,3456H,5678H,6789H,789AH,0ABCDH,0BCDEH,0CDEFH,0EDF1H
min dw 1 dup(?)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
lea si,buffer
mov cx,10
cld
lodsw
mov min ax
dec cx
next:lodsw
cmp ax,min
jl less
jmp goon
less: mov min,ax
goon: loop next
out: mov ah,4ch
int 21h
code ends
end start
五、实验结果
1、实验1:
2、实验2:
六、遇到的问题及解决办法
1、一开始老师上课讲说是要在windows XP系统上运行dos环境,但由于自己的电脑本身是windows 7的系统,而又不想装虚拟机,便多方咨询了同学,从网上下了一个可以在win7 32位系统上运行的tasm.exe,link.exe等的调试汇编程序的相关软件,同时又下载了一个dosbox软件以运行相关程序。
2、在一开始调试程序的时候,由于对程序编写的规则还是不太清楚,因此忘记了对数据段(DS)进行初始化,导致用td调试结果的时候,执行go to:ds:0000的时候,查不到应该得到的数据。于是,又重新查找了一下书上的例子,找到了错误之处,改正后再次调试,得到了正确的结果。
3.因为初次接触dos环境和td调试界面,具体应该怎样操作并不是特别熟悉,在实验的过程中遇到了很多问题,譬如怎样在td中查找结果,验证结果是否正确;怎样运行td等等,经过一步一步的探索与尝试,慢慢了解了操作方法。
微机原理预计口技术
实验报告
李佳伟 思源1004 10274091
目录
I/O地址译码与交通灯控制实验..................................................................................................... 2
一.实验目的 .............................................................................................................................. 2
二.实验内容 .............................................................................................................................. 2
三.程序流程图和程序清单 ................................................................................................... 3
四.实验遇到的问题和解决方法 ........................................................................................... 5
I/O地址译码与交通灯控制实验
一.实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验步骤
如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。
(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5) 转(1)重复。
8255动态分配地址:控制寄存器: 0EC0BH
A口地址: 0EC08H
C口地址: 0EC0AH
三.程序流程图和程序
DATA SEGMENT
X DB ?
DATA ENDS
STACK1 SEGMENT STACK
DW 100H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
L3: MOV DX,0EC0AH
CALL DELAY CALL DELAY ;长延时,3s左右 MOV AL,24H OUT DX,AL ;南北绿灯,东西红灯亮 MOV DS,AX MOV DX,0EC0BH MOV AL,80H OUT DX,AL ;写控制字 ;---------------INIT----------------
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
MOV BL,8 (备注:黄灯闪烁的次数由BL确定) MOV AL,04H
L0: XOR AL,40H ;南北黄灯闪,东西红灯亮
CALL DELAY
CALL DELAY CALL DELAY ;长延时,3s左右 MOV AL,81H OUT DX,AL ;南北红灯亮,东西绿灯亮 CALL DELAY OUT DX,AL CALL DELAY ;延时 CALL DELAY DEC BL ;闪烁几次 JNZ L0
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
MOV BL,9 MOV AL,80H
L1: XOR AL,02H ;南北红灯亮,东西黄灯闪
CALL DELAY
;------------------------------
;-----------延时函数------------
DELAY : PUSH CX
PUSH DX
MOV CX,1FFFH
LOP1: MOV DX,0FFFFH
LOP2: DEC DX
LOOP LOP1 POP DX POP CX RET JNZ LOP2 MOV AH,4CH INT 21H MOV DL,0FFH MOV AH,06H INT 21H JZ L3 ;六号功能判断若无字符输入ZF=1继续循环 OUT DX,AL CALL DELAY DEC BL JNZ L1 ;闪烁几次 ;延时 CALL DELAY
CODE ENDS
END START
四.实验心得
在整个试验的过程中, 我们使用了8255可编程芯片,应用了8255可编程芯片的知识。对硬件编程有了初步的理解,突然地发现原来我们平时学习得很不扎实,知道但是却不会用。经过接口实验设计,我学到了很多,理解一个程序不能只靠
看,还应该多动动手,自己调试调试,遇到问题的时候进行原因的分析和解决;积极查找资料,不断思考,这样学习编程才会更加有效果。绿灯灭后黄灯没有出现闪烁的效果,一直保持常亮。修改程序,通过利用异或和循环指令使绿灯灭、红灯亮后,黄灯口的状态从0到1循环变换,并通过调用延迟子程序,从而实现人眼可辨的黄灯闪的效果。程序中的BL为控制黄灯的闪烁次数,闪烁次数为BL的值除以2。
以上为本次实验的心得。
实验一霍尔效应及其应用预习思考题1列出计算霍尔系数载流子浓度n电导率及迁移率的计算公式并注明单位霍尔系数载流子浓度电导率迁移率2如…
1实验前进教室以后把书包什么的放到一个角落里不能放实验台上占地方把实验报告和书拿出来最好再拿个本好随时记老师说的注意事项教室的黑板…
谋学网15秋学期大学物理在线作业3单选题一单选题共20道试题共100分1选择22R24R2R2R2选择3题面为图片选择4题面为图片…
虚拟仪器技术实验报告实验二利用DAQmx创建测量任务学生姓名学号日期20xx4一实验项目名称利用DAQmx创建测量任务二预习要求熟…
交流电桥交流电桥与直流电桥相似也是由四个桥臂组成但组成桥臂的元件不单是电阻还可包括电容电感互感以及它们的组合由于交流电桥的桥臂特性…
激光增益的测量一实验目的1掌握用腔内损耗法测量激光参数的原理和方法2根据自动测试系统测得的曲线取适当的数据编写程序利用计算机进行计…
东南大学自动控制原理实验报告实验名称实验四系统频率特性的测试院系专业姓名学号实验室416实验组别同组人员实验时间评定成绩审阅教师1…
物理演示实验报告院系土木工程学院学号05110540姓名顾红楼在这个学期的第七周的周六上午我们在老师的安排下去观看一些具有代表性的…