微机原理和接口技术实验报告.docx
- 文档编号:8840086
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:726.34KB
微机原理和接口技术实验报告.docx
《微机原理和接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理和接口技术实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
微机原理和接口技术实验报告
实验一DEBUG命令及其基本操作
一.实验目的:
1.熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。
2.深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。
3.掌握各种寻址方法,了解简单指令的执行过程。
二、实验内容:
1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。
2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的内容:
(具体到每个计算机所产生的段地址和偏移地址可能有所不同)
这表示在地址1383:
0100处,DEBUG等待用户键入程序助记符,下面键入程序:
3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。
4.现在让我们用“d”命令来看一下存储器
在100H~107H这8个单元内,程序覆盖了原来的内容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。
5.下面我们用反汇编命令来查看一下所键入的程序。
“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。
键入:
大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。
6.现在我们修改存储单元的内容,看看显示情况和变化。
我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII码字符。
7.下面我们给程序命名并存盘。
在键入“n”后紧跟程序名及扩展名
因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。
8.结束后可用Q命令退出DEBUG程序。
三、实验习题
1.写出完成下列功能的指令序列
(1)传送20H到AL寄存器
(2)将(AL)*2
(3)传送25H到BL寄存器
(4)(AL)*(BL)
问最后的结果(AX)=?
单步执行结果:
2.分别写出完成下列指令要求的指令:
(1)将BX的低4位清零;
(2)将AX的高4位置1;
(3)将DX的低4位取反;
(4)将CX的中间八位清零;
(5)将AX中与BX中的对应位不相同的位均置1.
解答:
(1)andbx,fff0。
设bx=c4b5,则
运行结果
(2)orax,f000。
设ax=c4b5,则
运行结果
(3)xordx,000f。
设dx=c4b5,则
运行结果
(4)andcx,f00f。
设cx=c4b5,则
运行结果
(5)xorax,bx。
设ax=c4b5,bx=5229,则
运行结果
3.上机运行下面指令序列,分析运行后(AX)=?
MOVAX,4312
MOVCL,8
SARAL,CL
DECAX
MOVCX,8
MULCX
运行结果
4.设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~305H
连续单元装入0AH,0BH,0CH,0DH,0EH,0FH。
在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?
当数据传送完毕时,AX中的内容是什么?
程序清单如下:
MOVAX,BX
MOVAX,0304H
MOVAX,[0304H]
MOVAX,[BX]
MOVAX,0001[BX]
MOVAX,[BX][SI]
MOVAX,0001[BX][SI]
实验二简单程序设计
一、实验目的:
1.进一步熟悉DEBUG常用命令及使用
2.掌握编写汇编语言源程序的基本方法和基本框架
3.学习设计顺序结构程序,学会使用DEBUG命令调试程序和查看结果。
二、实验内容:
1.开机后,解压clab文件,打开clab.exe,然后进入MASM子目录。
2.在MASM子目录下进入EDIT编辑环境,编写汇编语言源程序。
3.源程序编写完后,保存源程序
4.在NASM子目录中利用MASM.EXE汇编程序对源程序进行汇编和编译。
当源程序中无语法错误时,则在当前工作目录下自动生成一个.OBJ文件,即目标代码文件。
5.若源程序有语法错误时,会出现错误提示信息。
例如:
××Warningerrors(警告错误)
××Severeerrors(严重错误)
若存在严重错误时,则无法生成.OBJ文件,需回到编辑状态下修改源程序,直到错误数为零为止。
6.当源程序编译通过后,在MASM目录下,我们利用连接程序LINK.EXE对一个或多个目标文件进行编译连接,生成可执行文件(*.EXE)
7.最后利用DEBUG命令对汇编程序进行调试并查看结果。
8.编程:
求两个数的平均值。
这两个数分别方程在X单元和Y单元中,而平均值放在Z单元中。
即Z=(X+Y)/2
参考程序如下:
DATASEGMENT
XDB2
YDB6
ZDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
MOVAH,0
ADDAL,Y
ADCAH,0
MOVBL,2
DIVBL
MOVZ,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
9.输入下面源程序,并对程序进行汇编、连接、调试并说明程序的功能。
DATASEGMENT
NUMBERDW0168H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
ORG0100H
START:
MOVAX,DATA
MOVDS,AX
MOVDX,0
MOVBX,0001H
MOVDI,8000H
MOVSI,0
MOVAX,NUMBER
MOVCX,16
NEXT:
TESTAX,BX
JZCONTINUE
ORDX,DI
INCSI
CONTINUE:
ROLBX,1
RORDI,1
LOOPNEXT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
三、实验习题
1.编写程序:
求1+2+3+……+100的和
DATASEGMENT
RESULTDW?
;存放和
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,1;从1开始加
MOVRESULT,0;和的初值赋0
MOVCX,100;循环100次
NEXT:
ADDRESULT,AX;每次向和中累加AX
INCAX;然后AX加1
LOOPNEXT
MOVBX,RESULT
MOVAX,4C00H;结束程序
INT21H
CODEENDS
ENDSTART
2.在内存中以tab为首的地方存有1—9的立方值,从键盘输入某一数字(1—9),将该数存入X单元,立方值送入XXX单元中。
datasegment
inputdb'pleaseinputx(0~9):
$'
tabdw0,1,8,27,64,125,216,343,512,729
xdb?
xxxdw?
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,offsetinput
movah,9
int21h
movah,1
int21h
andal,0fh
movx,al
addal,al
movbl,al
movbh,0
movax,tab[bx]
movxxx,ax
movah,4ch
int21h
codeends
endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 报告