哈尔滨理工大学 电技 微机原理实验报告.docx
- 文档编号:15626418
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:31
- 大小:880.34KB
哈尔滨理工大学 电技 微机原理实验报告.docx
《哈尔滨理工大学 电技 微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《哈尔滨理工大学 电技 微机原理实验报告.docx(31页珍藏版)》请在冰点文库上搜索。
哈尔滨理工大学电技微机原理实验报告
哈尔滨理工大学
实验报告
课程名称:
微机原理
学院:
自动化学院
专业班级:
电技12-2
学生姓名:
学号:
指导教师:
薛萍
实验一
课程名称
微机原理与接口
时间:
2014.10
实验名称
DEBUG命令
地点:
B302
姓名
学号
班级:
电技12-2
成绩评定:
一.实验目的
●学习使用DEBUG命令R、D、E、F、M及A、U、G、T
●综合使用DEBUG命令调试程序
二.实验内容
(1)按照规定的格式练习使用DEBUG命令,观察命令执行的情况,
(2)按照题目编写简单程序,并利用A命令进行汇编,利用E命令准备初始数据
运行程序后利用D命令核查结果
(3)使用DEBUG命令调试程序
三.实验过程描述
3.1使用DEBUG命令R、D、E、F、M的实验步骤:
(1)(开始→程序→附件→命令提示符→DOS)。
阅读教材13~15页内容。
实现:
DOS环境的进入;路径的改变;路径下文件的查看等;
(2)cd\<CR>→cd
(3)屏幕显示DEBUG提示符一
注明:
回车键,
空格键
练习使用R命令(寄存器访问命令);
●键入R<CR>观察并记录屏幕显示内容;
●键入RAX<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RBX<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RCX<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RDX<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RSI<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RDI<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入RBP<CR>随后任意输入4位Hex数,并以<CR>结束命令;
●键入R<CR>核查以上输入数据,并记录。
(3)练习使用D命令(存储器显示命令):
●键入DF000:
1000,103F<CR>观察屏幕显示的单元地址及内容,记录显示格式;
●键入DF000:
1000<CR>观察屏幕显示的单元地址及内容;
●键入D<CR>观察屏幕显示的单元地址内容,注意缺省地址的形式;
●键入DF000:
1000L100<CR>观察屏幕显示的单元地址及内容;
●键入D1000<CR>,观察屏幕显示的单元地址及内容,注意段地址的缺省形式。
(4)练习使用E命令(存储器替换命令)
●健入E6000:
1000,××,…××,××<CR>其中××为任意2位Hex数,分隔符“,”也可用<SP>代替;
●键入D6000:
1000<CR>核查上步输入的数据;
●键入E1000‘itisacomputer’<CR>其中单引号也可用双引号代替;
●键入D1000:
0<CR>核查上步输入的字符串;
●键入E1000<CR>观察屏幕显示的单元地址及内容;
●键入××<SP>××<SP>…××<CR>其中××为任意2位Hex数。
●键入D1000<CR>核查以下输入的数据。
(5)练习使用F命令(存储器填充命令)
●键入F6000:
0,F,12<CR>分隔符“,”,也可用<SP>代替;
●键入D6000:
0<CR>观察屏幕显示的单元地址及内容,核查上步操作的结果;
●键入F6000:
40,7F,66,77,88,99<CR>分隔符“,”也可用<SP>代替;
●键入D6000:
0<CR>观察屏幕显示的单元地址及内容,核查上步操作的结果;
●键入F6000:
80L30‘Computer’<CR>;
●键入D6000:
0L100<CR>观察屏幕显示的单元地址及内容;
(6)练习使用M的命令(存储器移动命令)
●键入D6000:
0L100<CR>观察屏幕显示的单元地址及内容;
●键入M6000:
0,7F,7000:
0<CR>传送数据;
●键入D7000:
0<CR>观察屏幕显示的单元地址及内容;
●键入M6000:
1080L40,7000:
1080<CR>;
●键入D7000:
1080<CR>观察屏幕显示的单元地址及内容;
●键入M6000:
1000L100,1000<CR>;
●键入D6000:
1000L100<CR>观察屏幕显示的单元地址及内容。
3.2使用DEBUG命令A、U、G、T的实验步骤
(1)在DOS方式下键入DEBUG<CR>,屏幕显示DEBUG提示符一。
(2)练习使用A命令(汇编命令):
●键入A100<CR>观察屏幕显示格式,注意程序的起始地址;
●键入指令MOVAX,1234<CR>
●键入指令MOVBX,5678<CR>
●键入指令MOVCX,AX<CR>
●键入指令MOVDX,BX<CR>
●键入指令XCHGCH,CL<CR>
●键入指令XCHGDH,DL<CR>
●键入指令INT3<CR>
●键入<CR>结束A命令,至此,输入的所有指令已经汇编为二进制代码并存放在以100为首地址的存储单元中;
(3)练习使用U命令:
●键入D100<CR>观察指令的二进制代码;
●键入U100<CR>观察指令二进制代码反汇编后生成的指令,可用以核查程序;
(4)练习使用G命令:
●键入R<CR>观察程序运行前CPU各寄存器原有内容;
●键入G=100<CR>从起始地址100开始运行程序,运行至断点指令INT3暂停;
(5)练习使用T命令:
●键入RAX<CR>把AX的内容修改为0;
●类似地把BX、CX、DX的内容均修改为0;
●键入T=100<CR>从起始地址开始执行一条指令,观察屏幕显示CPU各寄存器内容以及下一条指令;
●键入T<CR>执行下一条指令,观察屏幕显示CPU各寄存器内容以及再下一条指令;
●重复上步,直到下一条指令是INT3为止。
(6)改用以下程序,重复以上
(2)(3)(4)(5)步:
MOVSI,1000
MOVDI,2000
MOVBX,3000
MOVBP,1000
LEAAX,[BX+SI]
LEACX,[BX+DI]
LEADX,[BX+DI+200]
INT3
3.3使用DEBUG命令调试程序的实验步骤
(1)已知从存储单元6000:
1000开始存放有两个16位无符号数1234H和5678H,求和后存放在原有数据之后。
(2)准备初始数据:
●键入E6000:
1000,34,12,78,56<CR>分别存放两个16位无符号数,注意数据的低8位存放在低地址,高8位存放在高地址;
●键入D6000:
1000<CR>核查数据。
(3)编写程序(同时进行汇编)
●键入A100<CR>开始输入程序;
●键入MOVAX,6000<CR>
MOVDS,AX<CR>
MOVAX,[1000]<CR>
ADDAX,[1002]<CR>
MOV[1004],AX<CR>
INT3<CR>
●键入<CR>结束A命令;
●键入U100<CR>核查程序(反汇编命令U);
(4)跟踪运行程序(跟踪命令T):
●键入T=100<CR>执行第一条指令,观察屏幕显示的寄存器内容,核查第一条指令执行结果,同时注意观察下一条指令;
●键入T<CR>执行下一条指令,观察屏幕显示的寄存器内容,核查第二条指令执行结果,同时注意观察下一条指令;
●重复上步,直到下一条指令为INT3为止;
(5)核查运行结果:
●键入D6000:
1000<CR>核查数据;
(6)重复
(2),自行随意存放两16位无符号数;
(7)运行程序:
●键入G=100<CR>连续运行程序;
(8)核查运行结果:
●键入D6000:
1000<CR>核查数据。
四.实验结果
实验二
课程名称
微机原理与接口
时间:
2014.10.25
实验名称
寻址方式与基本指令实验
地点:
新B302
姓名
学号
班级:
电技12-2
成绩评定:
一.实验目的
熟悉并掌握各种寻址方式与传送指令、算术运算指令、逻辑运算
熟悉并掌握移位循环指令和控制转换指令
二.实验内容及设计流程
在DEBUG介面下跟踪运行不同寻址方式的传送指令,观察并理解指令执行结果
在DEBUG介面下跟踪运行不同的算术运算指令、逻辑运算及移位、循环指令,观察并理解指令执行结果
在DEBUG介面下跟踪运行不同的控制转移指令,观察并理解指令的执行结果
三.硬件描述语言(顶层文件)
3.1寻址方式与传送指令
程序1:
练习寻址方式(记录段地址:
偏移地址)
MOVAX,1234
MOVBX,AX
XCHGBH,BL
MOV[1234],AX
MOV[BX],AX
MOV[BX+10],AX
MOV[BX-20],AX
INT3
程序3:
注意观察SP寄存器内容的变化
MOVAX,1234
MOVBX,5678
PUSHAX
PUSHBX
POPAX
POPBX
INT3
3.2算术运算指令的实验步骤
MOVAX,1234
MOVBX,5678
ADDAX,BX
SUBAX,5678
ADDAL,BL
DAA
XCHGAL,AH
ADCAL,BH
DAA
XCHGAL,AH
INT3
四.仿真结果及分析
3.1.1
A命令
3.1.2
3.2
实验三
课程名称
微机原理与接口
时间:
2014.10.29
实验名称
分支结构程序
地点:
新B302
姓名
学号
班级:
电技12-2
成绩评定:
一.实验目的
(1)熟悉汇编程序基本构架;掌握汇编程序开发过程;
(2)了解CodeView软件调试程序的基本方法;
(3)熟悉并掌握分支结构程序设计的基本方法;
(4)熟悉并掌握循环结构程序设计的基本方法。
二.实验内容及设计流程
●编写程序,练习分支结构程度的设计方法
●编写程序,练习循环程序的设计方法
三.硬件描述语言(顶层文件)
3.1汇编程序开发的基本实验步骤
2、用EDIT编辑源程序eg301.asm,并存盘
;eg301.asm
.modelsmall
.486
.stack
.data
msgdb’Hello,Assembly!
’,13,10,’$’
.code
.startup
movdx,offsetmsg
movah,9
int21h
.exit;程序执行结束,返回DOS
end;汇编结束
3.2分支结构程序的实验步骤
程序ex1_3_2.asm
.code
.startup
movah,1
int21h
xorah,ah
again:
cmpal,0
jedone
shral,1
jncnext
incah
next:
jmpagain
done:
3.3循环结构程序实验步骤
●程序ex1_3_3.asm
.data
arraydw136,138,133,130,6776,6778,6713
sumdd?
.code
.startup
movecx,lengthofarray
xoreax,eax
movebx,eax
again:
movzxedx,array[ebx*(typearray)]
addeax,edx
incebx
loopagain
movsum,eax
以上程序完成数组求和。
要求用CV调试运行该程序。
●程序ex1_3_4.asm
.code
.startup
movesi,offsetstring
xorebx,ebx;EBX
again:
moval,[esi]
cmpal,0
jzdone
cmpal,20h
jnenext
incbx
next:
incesi
jmpagain
done:
movspace,ebx
四.仿真结果及分析
3-1
3-2
3-3
3_4.
实验四
课程名称
微机原理与接口
时间:
2014.10.29
实验名称
子程序设计
地点:
新B302
姓名
学号
班级:
电技12-2
成绩评定:
一.实验目的
●熟悉并掌握子程序设计的基本方法
●熟悉并掌握主程序对子程序的调用
二.实验内容及设计流程
●编写程序,练习子程序的设计方法以及主程序对子程序的调用
三.硬件描述语言(顶层文件)
ex1_4_1.asm
.code
.startup
start:
movax,6000h
movds,ax
movsi,0
movax,-100
callabs_p
mov[si],ax
.exit
abs_pproc
andax,ax
jnsL1
negax
L1:
ret
abs_pendp
end
ex1_4_2.asm
.code
start:
movax,6000h
movds,ax
movsi,0
movax,-100
callsign_p
mov[si],ax
movax,1000
callsign_p
mov[si+2],ax
movax,0
callsign_p
mov[si+4],ax
.exit
sign_pproc
andax,ax
jzL1
jsL2
movax,1
ret
L1:
movax,0
ret
L2:
movax,-1
ret
sign_pendp
end
ex1_4_3asm
.data
msgdb'Well,Imadeit!
',0
.code
movsi,offsetmsg
calldpstri
.exit
;子程序
dpstriproc
pushax
dps1:
moval,[si]
cmpal,0
jzdps2
calldpchar
incsi
jmpdps1
dps2:
popax
ret
dpstriendp
dpcharproc
pushax
pushdx
movah,2
movdl,al
int21h
popdx
popax
ret
dpcharendp
end
四.仿真结果及分析
4-1
4-2
4-3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈尔滨理工大学 电技 微机原理实验报告 哈尔滨 理工大学 微机 原理 实验 报告