微机原理与接口技术李珍香版十个实验程序说课讲解
- 格式:doc
- 大小:17.92 MB
- 文档页数:23
习题1010.1 试比较嵌入式计算机与通用PC机间的区别。
参考答案:嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向。
通用计算机系统的技术要求是高速、海量的数值计算,其技术发展方向是总线速度的无限提升、存储容量的无限扩大;而嵌入式计算机系统的技术要求则是智能化控制,技术发展方向是与对象系统密切相关的潜入性能、控制能力与控制的可靠性不断提高。
嵌入式系统(简称“嵌”)和通用计算机(简称“通”)的主要区别包括以下几点:(1)形式与类型“通”:实实在在的计算机。
按其体系结构、运算速度和规模可分为大型机、中型机、小型机和微机;“嵌”:“看不见”的计算机,形式多样,应用领域广泛,按应用进行分类(2)组成“通”:通用处理器、标准总线和外设、软硬件相对独立。
“嵌”:面向特定应用的微处理器,总线和外设一般集成在处理器内部,软硬件紧密结合。
(3)系统资源“通”:系统资源充足,有丰富的编译器、集成开发环境、调试器等,“嵌”:系统资源紧缺,没有编译器等相关开发工具(4)开发方式“通”:开发平台和运行平台都是通用计算机;“嵌”:采用交叉编译方式,开发平台一般是通用计算机,运行平台是嵌入式系统(5)二次开发性“通”:应用程序可重新编程;“嵌”:一般不能重新编程开发。
(6)发展目标“通”:编程功能电脑,普遍进入社会;“嵌”:变为专用电脑,实现“普及计算”10.2 请解释MPU、MCU、SoC和SOPC的含义。
参考答案:MCU(Microcontroller Unit)----嵌入式微控制器MPU(Micro Processor Unit)----嵌入式微处理器SoC(System On Chip)-----嵌入式片上系统SOPC (System On a Programmable Chip)----可编程片上系统10.3 简述当前微处理器的技术发展方向。
略10.4 简述当前存储器的发展方向。
略10.5 大胆想象嵌入式系统的应用景象。
实验一熟悉汇编语言环境及建立汇编的过程一、实验目的1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
二、实验要求通过一个小程序的编写达到以上的实验目的。
三、实验原理1.汇编语言程序的上机过程用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:四、实验步骤1、打开编辑环境2、输入程序CODE SEGMENTASSUME CS:CODESTART: MOV AL,01HMOV BL,40HADD AL,BLMOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、保存源程序,以.ASM为扩展名。
C:\MASM\1.ASM4、建立汇编过程(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需要的文件。
汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ5、执行程序:C:\MASM>1.EXE实验二两个多位十进制数相加的实验一、实验目的:1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二、实验内容:将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、实验原理1.ADC 带进位相加指令的功能和指令格式2.AAA 、DAA、 AAS、 DAS指令的功能和指令格式3.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用4.子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用5.循环指令LOOP的格式以及退出循环的条件6.中断指令的使用五、实验参考程序CRLF MACRO ;建立回车换行宏MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENT ;数据段DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPL ;显示被加数CRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示加数CRLFMOV DI,OFFSET DATA2CALL ADDA ;加法运算MOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示结果CRLFMOV AX,4C00HINT 21HDISPL PROC NEAR ;显示子程序段DS1: MOV AH,02HMOV DL,[SI+BX-1] ;显示字符串中的一个字符INT 21HDEC BX ;修改偏移量JNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串 DEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位位共5位CLC ;清进位位AD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;带进位相加AAA ;非组合BCD码的加法调整 MOV [SI],AL ;结果送加数区INC SIINC DI ;指向下一位LOOP AD2 ;循环MOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR[SI+BX-1],30H ;十六进制的数字串转化ADD BYTE PTR[DI+BX-1],30H ;为ASCII码表示的数字串 DEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START六、实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3. 执行程序观察结果七、拓展练习编写程序完成两个多位十进制数相减。
《微机原理与接口技术》第10 章微机接口开发技术教案作者:李芷2003.5.10第10章微机接口开发技术10.1应用系统设计概要10.2微机应用系统设计实例10.3抗干扰技术10.1 应用系统设计概要计算机应用系统的设计,一般要经过以下六个步骤:1.确定系统的功能和性能指标合理地确定系统的功能和性能指标,是系统设计和实现之前最重要的一步。
2.硬件和软件功能的划分一个计算机应用系统的功能都是由硬件和软件两部分协同完成的。
硬件,或者说接口电路的基本任务是实现信号的变换和传输,而软件则是在硬件实现功能的基础上,最终实现该应用系统的全部任务。
应用系统硬件和软件功能的划分,并不是固定不变的。
理论上说,计算机的硬件功能和软件功能是具有互换性的。
所以,应用系统设计的第一步,就是合理地划分系统中硬件和软件的功能。
10.1 应用系统设计概要3.系统硬件设计⑴选定硬件平台。
⑵把硬件的任务划分为若干个任务单一的模块。
⑶确定每个模块的工作方式,以及相关控制电路的类型。
⑷如需自行或部分设计组装,则进一步进行逻辑设计,并要验证设计的正确性(可用软件仿真、电路实验等方法)。
⑸综合各个模块设计,得到整个系统的逻辑设计。
⑹组装硬件系统并测试,确定性能和可靠性能否满足系统要求。
4.系统软件设计⑴确定软件的运行环境和选择软件的开发平台。
⑵根据系统需要完成的任务列举出全部的程序模块清单。
⑶确定每个模块的工作方式,编制流程图和源程序。
⑷测试每一个模块的功能和正确性。
⑸装配各程序模块,得到系统可执行机器代码。
10.1 应用系统设计概要5.系统测试系统测试主要是在硬件、软件两方面对正确性和性能指标的测试。
系统测试过程与开发过程恰恰相反,强调自低向上进行,即先进行模块测试,然后进行系统整体测试。
测试的顺序原则是:先硬件,后软件,最后综合测试;先测试其正确性,后测试其性能指标。
每项测试之前要制订测试方案,准备测试数据,测试过程要记录,测试完成之后要总结,得出测试结论。
微机原理与接口技术实验讲义实验一汇编程序的调试与Debug应用一、实验目的(1)掌握汇编语言的编程结构与方法。
(2)理解汇编语言的运行机制。
(3)掌握Debug调试语句及调试技巧。
二、预习要求复习汇编程序语言,提前将本实验相关内容进行预习。
三、实验设备带有MASM汇编工具的PC机一台。
四、实验原理程序的编写、编译的一般过程(1)汇编语言支持任意字处理软件,可以选用现有的文本编辑软件,例如EDIT,记事本等,进行源程序的编写,编写完毕之后,需将文件保存为*.asm文件(源文件)。
(2)利用MASM软件对所编写的*.asm文件进行汇编,生成*.obj文件(目标文件),以及调试用*.LST(列表文件)和*.crf(交叉引用表)(3)利用Link命令对程序进行连接,将目标文件与库文件进行连接,最终生成*.exe 文件(可执行文件)。
若上述几步无问题,则最终生成可直接运行的*.exe文件,若过程中出现语法错误,请按照提示将所有语法错误进行改正,若汇编过程通过,但运行结果不正确,则表明出现语义错误,此时,需利用调试软件,例如Debug进行调试,查找出现语义错误的语句进行修改,需反复进行调试,直至程序运行正确。
例:使用MASM50 汇编程序进行汇编,输入命令行masm 或者masm *.asm 后根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst 和*.crf。
*.obj-目标文件,用于连接生成可执行文件;*.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;*.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。
汇编连接命令行:link [*.obj] [*.obj] [*.lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行的*.exe 文件,同时可选择生成*.map 文件。
*.map-地址映像文件,给出内存地址分配的有关信息。
微机原理与接口技术概述微机原理与接口技术是计算机科学与技术专业的一门重要课程,主要介绍了微机的基本原理和接口技术。
本文将从以下几个方面对微机原理与接口技术进行详细讲解。
微机原理微机原理是微机技术的基础,是理解微机工作原理的关键。
微机系统由CPU、内存、外设等组成,它们之间通过总线进行通信。
下面将对这些组成部分进行介绍。
CPU(Central Processing Unit)CPU是计算机的核心部件,主要负责处理和执行指令。
它由运算器、控制器和寄存器组成。
运算器负责执行算术和逻辑运算,控制器负责控制指令的执行,而寄存器用于暂存数据。
内存内存是存储器的一种形式,用于存储程序和数据。
根据存取方式的不同,内存可以分为随机存取存储器(RAM)和只读存储器(ROM)。
RAM具有读写功能,数据读取速度快,但是断电后数据会丢失;而ROM只能读取,数据不会丢失。
外设外设是微机系统的输入输出设备,包括键盘、鼠标、打印机、显示器等。
它们通过接口和计算机相连,实现数据的输入和输出。
接口技术接口技术是将不同设备或系统连接起来的技术。
在微机系统中,接口技术用于将计算机和外设连接起来,实现数据交换。
下面将介绍常见的接口技术。
并行接口并行接口是一种数据传输方式,它使用多根信号线同时传输多位数据。
常见的并行接口有打印口(LPT口)和扩展卡槽。
打印口通过DB25接口将计算机与打印机连接起来,实现打印功能。
扩展卡槽用于插入扩展卡,如显卡、声卡等。
串行接口串行接口是一种数据传输方式,它使用一条信号线逐位传输数据。
常见的串行接口有串口(COM口)和USB接口。
串口通过DB9接口将计算机与外设连接起来,如调制解调器、鼠标等。
USB接口是一种通用接口,可以连接各种外设,如打印机、扫描仪、键盘等。
图形接口图形接口是一种通过图形显示界面进行人机交互的接口。
常见的图形接口有VGA接口和HDMI接口。
VGA接口用于连接计算机和显示器,HDMI接口用于连接计算机和高清电视。
微机原理与接口技术李珍香版课后习题3参考答案讲解学习微机原理与接口技术李珍香版课后习题3参考答案习题3参考答案1.设BX=0123H,DI=1000H,DS=3200H,试指出下列各条指令中源操作数的寻址方式,对于是存储器操作数的,还需写出其操作数的有效地址和物理地址。
(1)MOV AX,[2A38H](2)MOV AX,[BX](3)MOV AX,[BX+38H](4)MOV AX,[BX+DI](5)MOV AX,[BX+DI+38H](6)MOV AX,2A38H(7)MOV AX,BX参考答案:(1)直接寻址有效地址=2A38H,物理地址=32000H+2A38H=34A38H(2)寄存器间接寻址有效地址=0123H,物理地址=32000H+0123H=32123H(3) 寄存器相对寻址有效地址=0123H+38H=015BH,物理地址=32000H+015B=3215BH(4) 基址变址寻址有效地址=0123H+1000H=1123H,物理地址=32000H+1123H=33123H(5)相对基址变址寻址有效地址=0123H+1000H+38H=115BH,物理地址=32000H+115BH=3315BH(6)立即寻址(7)寄存器寻址2.设AX=96BCH,BX=AC4DH,CF=0。
求分别执行指令ADDAX,BX和SUB AX,BX后,AX与BX的值各为多少?并指出标志位SF、ZF、OF、CF、PF、AF的状态。
参考答案:执行ADD AX,BX后,AX=4309H,BX= AC4DH ,SF=0 ZF=0 OF=1 CF=1 PF=1 AF=1执行SUB AX,BX后,AX=EA6FH,BX= AC4DH ,SF=1 ZF=0 OF=0 CF=1 PF=1 AF=13.试比较CMP指令与SUB指令的异同。
参考答案:CMP指令与SUB指令的不同点有两点:4.采用三种不同的方法实现AX与DX的内容交换。
习题一1.1微型计算机系统主要由哪些部分组成?参考答案:微型计算机系统由硬件和软件两大部分组成。
1.2微型计算机中的CPU由哪些部件组成?各部件的功能是什么?参考答案:微型计算机中的CPU由运算器、控制器、寄存器组等部件组成。
其中运算器也称算术逻辑单元(ALU),主要用来完成对数据的运算(包括算术运算和逻辑运算);控制器是控制部件,它能自动、逐条地从内存储器中取指令,将指令翻译成控制信号,并按时间顺序和节拍发往其它部件,指挥各部件有条不紊地协同工作。
微机的数据输入/输出、打印、运算处理等一切操作都必须在控制器的控制下才能进行。
寄存器组是微处理器内部的一组暂时存储单元,主要起到数据准备、调度和缓冲的作用,寄存器的访问速度要比存储器快得多。
1.3微型计算机硬件结构由哪些部分组成?各部分的主要功能是什么?参考答案:微型计算机的硬件结构主要由微处理器、内存储器、输入/输出接口电路、输入/输出设备及系统总线组成。
其中微处理器是微型计算机的核心部件,其主要功能是负责统一协调、管理和控制系统中的各个部件有机地工作;内存储器的主要功能是用来存储微机工作过程中需要操作的数据、程序,运算的中间结果和最后结果,具有存数和取数的功能;输入/输出(I/O)接口电路的功能是完成主机与外部设备之间的信息交换;I/O设备是用户与微机进行通信联系的主要装置,其中输入设备是把程序、数据、命令转换成微机所能识别接收的信息,然后输入给微机;输出设备是把CPU计算和处理的结果转换成人们易于理解和阅读的形式,然后输出到外部。
微机的系统总线实现将CPU、存储器和外部设备进行连接,共有数据总线、地址总线和控制总线三种,其中数据总线主要用来实现在CPU与内存储器或I/O接口之间传送数据;地址总线是由CPU输出用来指定其要访问的存储单元或输入/输出接口的地址的;控制总线;控制总线用于传送控制信号、时序信号和状态信息,实现CPU的工作与外部电路的工作同步。
微机原理与接口技术李珍香版十个实验程序实验一1.实验目的:掌握汇编语言源程序的结构。
2.实验内容:显示一串字符串“hellow world! 班级,学号”。
3.实验代码:DATA SEGMENTMS DB ' Hello,World!$'NS DB ' 151044A,151044106$'DATA ENDSSTACK SEGMENT STACKDW 50 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE:CODE,SS:STACK START:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MSMOV AH,9INT 21HMOV AX,DATAMOV DS,AXMOV DX,OFFSET NS MOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START4.实验结果:实验二1.实验目的:熟悉汇编语言源程序的编辑、汇编、连接、调试过程2.实验内容:两个8位16进制数相加(生日+当天日期)3.实验代码:DATA SEGMENTSR DD 19970925HRQ DD 20171111HDATA ENDSSTACK SEGMENT STACKDB 50 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,WORD PTR SRADD AX,WORD PTR RQMOV BX,WORD PTR SR+2ADC BX,WORD PTR RQ+2MOV AH,4CHINT 21HCODE ENDSEND START4.实验结果:实验三1.实验目的:主要掌握汇编伪指令DB、DW、ORG、$的功能和用法2.实验内容:在内存单元X中定义一个8位数,要求将其高4位放入X+1单元的低4位,低4位放入X+2单元的低4位,并将X+1 与X+2单元的高4位清0。
3.实验代码:DATA SEGMENTX db 23h,?,?DATA ENDSSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XMOV CL,4SHR AL,CLMOV X+1,ALMOV AL,XAND AL,0FHMOV X+2,ALMOV AH,4CHINT 21HCODE ENDSEND START 4.实验结果:实验四1.实验目的:理解和掌握变量的定义方法及系统如何为变量分配空间2.实验内容:实现将存放在AX与DX中的32位数据循环右移二进制数的4位。
3.实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV CL,4MOV BH,ALSHL BH,CLSHR AX,CLMOV BL,DLSHL BL,CLSHR DX,CLOR AH,BLOR DH,BHMOV AH,4CHINT 21HCODE ENDSEND START 4.实验结果:实验五1.实验目的:掌握条件转移、无条件转移指令的使用方法2.实验内容:编写程序计算|X|的值,其中X为存放于X单元单元的16位操作数,要求将结果存入result单元中。
3.实验代码:DATA SEGMENTX DB -100RESULT DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,0JGE DONENEG ALDONE:MOV RESULT,ALMOV AH,4CHINT 21HCODE ENDS END START4.实验结果:实验六1.实验目的:掌握分支程序设计、编写、调试和运行的方法。
2.实验内容:从键盘输入一个字符,并判断该字符是否为一个数字,如果是请输出该数字字符,如果不是请输出“这不是一个数字”的英文提示信息(要求:能连续输入)。
3.实验代码:data segmentstr1 db 'PLEASE ENTER:',0AH,0DH,'$'STR2 DB 'This is not a number!',0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXAGAIN:MOV AH,09HLEA DX,STR1INT 21HMOV AH,08HINT 21HCMP AL,'#'JZ EXITCMP AL,'9'JA FALSEMOV AH,2MOV DL,ALINT 21HMOV DL,0AHMOV AH,02HINT 21HJMP AGAIN FALSE:MOV DX,OFFSET STR2 MOV AH,9INT 21HJMP AGAINEXIT:MOV AH,4CHINT 21HCODE ENDSEND START 4.实验结果:实验七1.实验目的:熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法2.实验内容:编写一汇编语言程序,实现统计DX数据中所含的1的个数。
3.实验代码:DATA SEGMENTSHU DW 10HCOUNT DB 0DATA ENDSSTACK SEGMENT STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV DX,SHUMOV CL,0JIA:AND DX,DXJE EXITSHL DX,1JNC JIAINC CLJMP JIAEXIT:MOV COUNT,CLMOV AH,4CHINT 21HCODE ENDSEND START4.实验结果:实验八1.实验目的:掌握循环指令LOOP、LOOPZ、LOOPNZ的使用方法2.实验内容:在数据段变量名为A的数据区内有10个字符,编程实现将这10个字符以相反次序传送到附加段变量名为B的内存区中。
源程序已部分给出,请将程序补充完整,并调试运行结果。
3.实验代码:DATA SEGMENTA DB '1234567890'n equ $-aB DB n dup(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,ALEA DI,BADD DI,9MOV CX,10 MOVE:MOV AL,[SI]MOV ES:[DI],AL INC SIDEC DILOOP MOVE MOV AH,4CH INT 21H CODE ENDSEND START4.实验结果:实验九1.实验目的:掌握实现单重、多重循环程序设计、编写、调试和运行的方法2.实验内容:编写一个程序,将内存1000H开始的连续100个字节送往2000H开始的连续100个内存单元中。
3.实验代码:DATA SEGMENTORG 1000HA DB 100 DUP(?)ORG 2000HB DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,SEG DATAMOV DS,AXMOV SI,OFFSET AMOV CX,100MOV BL,0L0:MOV [SI],BLINC SIINC BLLOOP L0MOV SI,0LEA SI,ALEA DI,BADD SI,99ADD DI,99MOV CX,100L1:MOV AL,[SI]MOV [DI],ALDEC SIDEC DILOOP L1MOV AH,4CHINT 21HCODE ENDSEND START 4.实验结果:实验十1.实验目的:掌握实现单重、多重循环程序设计、编写、调试和运行的方法。
2.实验内容:编程实现由键盘输入任意一个字符,将该字符用二进制形式显示出它的ASCII码值(譬如:若从键盘上键入“A”,则运行时在屏幕上显示出“01000001B”)。
3.实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AH,1INT 21HMOV BL,ALMOV CX,8L1:SHL BL,1JNC L2MOV DL,31HJMP L3L2:MOV DL,30HJMP L3L3:MOV AH,2INT 21HLOOP L1MOV AH,4CHINT 21HCODE ENDSEND START 4.实验结果:。