微型计算机原理实验指导书.doc
《微型计算机原理实验指导书.doc》由会员分享,可在线阅读,更多相关《微型计算机原理实验指导书.doc(70页珍藏版)》请在三一文库上搜索。
1、微型计算机原理 实验指导书杨鹏 陈玲玲 张雪萍 编写河北工业大学 自动化系二零零六年八月目 录实验一 简单程序调试(1)1实验二 简单程序调试(2)4实验三 汇编程序设计及调试(1)6实验四 汇编程序设计及调试(2)12实验五 32位微机接口技术实验17实验六 8254定时/计数器应用实验23实验七 并行接口8255 34附录1 TD-PIT+实验系统的硬件环境44附录2 Tddebug集成操作软件56微型计算机原理实验指导书实验一 简单程序调试(1)一 实验目的:1. 熟悉8086常用指令;2. 掌握Tddebug集成操作软件的操作指令。二 实验内容:1. 在Tddebug集成操作软件环境下
2、输入下列程序片段,用Trace命令单步执行并记录结果。程序片段 运行结果1) DATASEGMENTDATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, 2000HMOV DS, AXDS=MOV DX, 0100HMOV SI, 0000HMOV BYTE PTRSI+0100H, 0AAHDS: 0100=MOV AL, SI+0100HAL=MOV BX, 0100HMOV WORD PTRSI+BX, 1234HMOV AX, SI+BX+0HAX=INT 20HCODEENDSEND START2)DATASEGMENTD
3、ATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART: MOV AL, 0FFHMOV AH, 00HAX=XCHG AL, AHAX=MOV AL, 07HMOV AH, 00HMOV BL, 08HADD AL, BLAH= AL=AAAAH= AL=MOV AX, 0FFFFHMOV BX, 8080HSUB AX, BXAX=MOV AX, 0FFFFHMOV BX, 0FFFFHMUL BXDX= AX=MOV AX, 1000HMOV DX, 2000HMOV CX, 4000HDIV CXDX= AX=INT 20HCODEENDSEN
4、D START2. 自编程序段实现两个两字节无符号数相加。要求:已将1234H和5678H分别放在DATA1和DATA2开始的存储单元中,低位在前,高位在后,计算1234H+5678H,运算结果放在DATA1开始的单元。用Trace命令单步执行,并查看有关存储单元。DATASEGMENTDATA1DB 34H, 12HDATA2DB 78H, 56HDATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AX在此处输入自编的程序HLTCODE ENDSEND START三 选修实验在Tddebug集成操作软件环
5、境下输入下列带符号数乘法程序片段,单步执行并记录结果。程序片段 运行结果CODESEGMENTASSUME CS: CODESTART:MOV AX, 04E8HMOV BX, 4E20HIMUL BXDX= AX=MOV AX, 8100HMOV BX, 0050HIMUL BXDX= AX=INT 20HCODEENDSEND START实验二 简单程序调试(2)一 实验目的:1. 熟悉8086常用指令;2. 掌握Tddebug集成操作软件操作指令。二 实验内容:1. 在Tddebug集成操作软件环境下输入下列程序片段,用Trace命令单步执行,单步执行并记录结果。程序片段 运行结果1)
6、CODESEGMENTASSUME CS: CODESTART:MOVAL, 09HORAL, 30HAL=ANDAL, 0FHAL=INT20HCODE ENDSEND START2) CODESEGMENTASSUME CS: CODESTART:MOVAX, 0001HSHLAX, 1AX=MOVBX, AXSHLAX, 1AX=SHLAX, 1AX=ADDAX, BXAX=INT20HCODEENDSEND START3) CODESEGMENTASSUME CS: CODESTART:MOVAX, 1024HSHRAX, 1AX=XCHGAL, AHAX=CBWAX=INT20HCO
7、DE ENDSEND START4) 将两个无符号八位数分别存放在2000H和2001H单元中,比较它们的大小,大者存入2002H单元。CODESEGMENTASSUME CS: CODESTART:MOVSI, 2000HMOVAL, SIDS:2000=INCSIDS:2001=CMPAL, SIJNCNEXTMOVAL, SINEXT:INCSIMOVSI, ALDS:2002=INT20CODEENDSEND START2. 自编程序段,在Tddebug集成操作软件环境下运行1) 将3FH拆成03H和0FH分别存入BH和BL寄存器。2) 要求:用Trace命令单步执行。3) 将2000
8、H单元开始的20个字节移至3000H开始的单元。4) 要求:向2000H开始的20个单元写数,用Trace命令单步执行,检查3000H开始的单元内容。5) 从2000H单元开始存放的20个八位数据中找出最大者存入3000H单元。注:在1(4)、2(2)和2(3)三题中,均遇到向某单元写数的问题。本实验的解决方法为:在Tddebug主菜单中执行Rmrun 菜单中的Debug,就进入了实模式调试窗口。当焦点区域在数据显示区中时,利用Ctrl + G指定需要显示的代码区域首地址,然后修改光标当前指示存储单元的内容,即输入所需的数。实验三 汇编程序设计及调试(1)一 实验目的:1. 进一步熟悉8086
9、指令,掌握编程方法;2. 熟悉利用Tddebug集成操作软件编辑,编译,链接,调试和运行8086汇编语言程序的过程。二 实验内容:1. 根据框图读懂下面程序(多字节十进制数相加且显示),上机打开程序A.asm进行编辑,编译,链接,调试。 加法子程序开始DX SI ,BP DI将ASCII码表示的数转为十六进制数SI DX,DI BP带进位加法运算,进行AAA调整,SI ALSI DX,DI BP将十六进制数转换为ASCII码返 回开 始数据段寄存器DS,堆栈段寄存器SS,堆栈指针SP初始化SS,堆栈指针SP初始化显示被加数显示加数加法运算显示结果结束返回显示子程序开始显示被加数(加数或结果)的
10、一个字节BX BX-1BX=0?返回YN加法程序清单:CRLFMACRO ;回车换行宏定义MOVDL, 0DHMOVAH, 02HINT 21HMOVDL, 0AHMOVAH, 02HINT 21H ENDMDATASEGMENTDATA1DB 33H, 39H, 31H, 37H, 34HDATA2DB 36H, 35H, 30H, 38H, 32HDATAENDS STACK1SEGMENT STACKSTA DB 20DUP(?)TOPEQULENGTHSTASTACK1ENDSCODESEGMENT ASSUMECS: CODE, DS: DATA, SS: STACK1, ES: D
11、ATASTART:MOVAX, DATA;初始化MOVDS, AXMOVAX, STACK1MOVSS, AXMOVAX, TOPMOVSP, AXMOVSI, OFFSET DATA2;显示被加数MOVBX, 05CALL DISPLCRLFMOVSI, OFFSET DATA1;显示加数MOVBX, 05CALL DISPLCRLFMOVDI, OFFSET DATA2;加法运算CALL ADDAMOVSI, OFFSET DATA1;显示结果MOVBX, 05CALL DISPLCRLFMOVAX, 4C00HINT 21HDISPL PROCNEAR;显示子程序DSI: MOVAH,
12、02 MOVDL, SI+BX-1INT 21HDECBXJNZ DSIRETDISPL ENDPADDA PROC NEAR;加法子程序MOVDX, SIMOVBP, DIMOVBX, 05AD1: SUBBYTE PTR SI+BX-1, 30HSUB BYTE PTR DI+BX-1, 30HDECBXJNZ AD1MOVSI, DXMOVDI, BPMOVCX, 05CLCAD2: MOVAL, SIMOVBL, DIADCAL, BLAAAMOVSI, ALINC SIINC DILOOP AD2MOVSI, DXMOVDI, BPMOVBX, 05AD3: ADDBYTE PTR
13、SI+BX-1, 30HADDBYTE PTR DI+BX-1, 30HDECBXJNZ AD3RETADDA ENDPCODE ENDS ENDSTART2. 编辑程序并上机调试:1) 排序。要求:将十个无符号数放入DATA1开始的内存单元,由小到大排列后放回DATA1开始的内存单元中。2) 将一个BCD码00100转换成二进制数。要求:五位BCD码由高到低放在BHBLDHDL00万位千位 百位十位 个位转换结果放在DI寄存器中。BCD码转换二进制数框图:屏蔽BL高四位用加法指令实现AX*10 AX (AX+BX)循环次数CL 4DX算术左移1位,BL带CY循环左移1位CL CL-1,CL=
14、0?CH CH-1,CH=0?存结果DI AX开 始BCD低四位DX, BCD最高位 BL位计数CH 5,BH 0, 结果AX 0结束,返回三 选修实验1. 在Tddebug集成操作软件环境下输入下列程序片段,首先观察数据段内存单元的内容、各个变量在内存中的存储方式以及顺序,然后用Trace命令单步执行并观察寄存器的内容及执行结果。DATA SEGMENTDATA1 DW 64FFHEXPR DB 2*3+7STR1 DB WLCOMEAB DW ABBADW ABDATAENDSSTACK1SEGMENT STACKSTACK1ENDSCODESEGMENTASSUME CS: CODE,
15、DS: DATA, SS: STACK1START: MOV AX, DATA MOV DS, AX MOV AX, DATA1 MOV AL, EXPR MOV CX, 6NEXT: MOV SI, OFFSET STR1 MOV AL, SI LOOP NEXT MOV AX, AB MOV BX, BA MOV AX, 4C00H INT 21HCODE ENDS END START 2. 编写一个统计AX中1的个数的程序,将统计结果放在CL中。实验四 汇编程序设计及调试(2)一 实验目的:1. 掌握编程基本方法和Tddebug集成操作软件环境下运行汇编语言程序;2. 熟悉常用的DOS调
16、用和BIOS调用。二 实验内容:1. 编制程序上机调试,在屏幕上先显示A,下一行再显示I AM A BOY。2. 编制程序上机调试设置光标,设置光标类型起始行为第5行,结束行为第7行,设置光标在屏幕上的位置低18行18列;在光标位置上显示字符A,背景颜色为蓝色,前景为白色。DS,SS,ES,SP初始化用INT 10H的07H清屏用INT 10H的01H设置光标类型用INT 10H的02H设定光标位置设置字符的前景和背景颜色结束返回开 始3. 编制程序上机调试在首地址为DATA1的单元中存放6个有符号数,求出它们的平均值AL,并求出其中有几个数小于平均值,将结果放在BL中,程序框图:结束 返回Y
17、YNNN开始数据段DS,堆栈段SS初始化;计数CX6;BX0SI指向数组有效地址ALSI;将AL扩展成字CX=0?SI AL?CX=0?BXAX+BX;SISI+1;CXCX-1相加结果送AX;求平均值AX/6送AL计数BX0;SI指向数组有效地址;CX6计数BXBX+1SISI+1;CXCX-1CX=0?4. 将键盘收到的四位十进制数转换成二进制(或十六进制)数,在屏幕上显示。开 始段寄存器DS,SS和堆栈指针SP初始化调用GETUNM,接收键入数值保存在DX中调转换子程序使十二(或十十六)计数16送CXDX送BX,BX中内容循环左移1位BL移入DL;屏蔽DL高7位DL加30H变成ASCII
18、码显示CX CX-1;CX=0?结束 返回结 束YNDOSSEG.MODEL SMALL.DATAERR1 DB INPUT ERROR!, 0DH, 0AH, $CRLF DB 0DH, 0AH, $HIGHW DW 0.STACK 100H.CODESTART:MOV AX, DATAMOV DS, AXLP:MOV BX, 0LP0: ;GET BCD NUMBER AND CONVERT TO HEX MOV AH, 1INT 21HCMP AL, 0DHJZ LP1CMP AL, 27JZ LP4SUB AL, 30HJB ERRORCMP AL, 0AHJAE ERRORMOV A
19、H, 0ADD BX, BXADD AX, BXADD BX, BXADD BX, BXADD BX, AXJMP LP0LP1:LEA DX, CRLFMOV AH, 9INT 21HMOV CX, 4 ;DISPLAY 4 DIGITSLP2: MOV DL, 0SHL BX, 1RCL DL, 1SHL BX, 1RCL DL, 1SHL BX, 1RCL DL, 1SHL BX, 1RCL DL, 1ADD DL, 30HCMP DL, 3AHJB LP3ADD DL, 7LP3:MOV AH, 2INT 21HLOOP LP2LEA DX, CRLFMOV AH, 09HINT 21
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 实验 指导书
链接地址:https://www.31doc.com/p-3268062.html