微机原理简单程序设计
- 格式:doc
- 大小:67.50 KB
- 文档页数:5
微机原理分支程序设计实验微机原理是计算机科学与技术专业的核心课程之一、在这门课程中,学生需要学习计算机的基本原理和体系结构,并通过实验来巩固所学的知识。
本文将介绍一个关于分支程序设计的微机原理实验。
实验背景:分支程序是计算机中的一种非线性控制结构,它根据条件的不同选择不同的执行路径。
分支程序设计是计算机编程中非常重要的一部分,也是实际应用中经常会遇到的情况之一、通过这个实验,学生将学会如何使用分支结构来解决实际问题。
实验目的:1.了解分支程序设计的基本概念和原理。
2.掌握使用条件语句和循环语句来实现分支程序。
3.通过实际案例分析和编程实践,巩固所学的知识。
实验内容:本实验以学生成绩管理系统为例,通过判断学生的成绩等级来计算总评成绩,并输出等级信息。
分支程序设计的思路如下:1.输入学生的成绩。
2.根据成绩的范围判断学生的等级。
3.根据等级计算总评成绩。
4.根据总评成绩输出相应的等级信息。
实验步骤:1.在开发环境中创建一个新的项目,并新建一个名为“GradeManage”的源文件。
2.在源文件中定义一个成绩变量和一个等级变量,并使用输入函数从键盘读取学生的成绩。
3.使用条件语句根据成绩的范围判断学生的等级,并将等级赋值给等级变量。
4.使用条件语句根据等级计算总评成绩,并将结果赋值给一个总评成绩变量。
5.使用条件语句根据总评成绩输出相应的等级信息。
6.在屏幕上显示输出结果。
7.编译并运行程序,进行测试。
实验总结:通过本实验,我学会了如何设计并实现一个简单的分支程序。
在实验过程中,我深入了解了分支结构的原理和使用方法,并通过编程实践巩固了所学的知识。
分支程序设计在实际应用中非常广泛,掌握这一技能对于计算机科学与技术专业的学生来说非常重要。
在今后的学习和工作中,我将继续探索和学习更多关于分支程序设计和其他相关知识,以提高自己的编程能力。
微机原理及程序设计微机原理及程序设计是一门结合了计算机硬件基础和软件编程技能的课程,它对于理解现代计算机系统的工作方式至关重要。
本课程旨在教授学生微机的基本组成原理、指令系统、存储结构以及程序设计的基本方法。
微机原理概述微机,即微型计算机,是一种体积小、价格低廉、功能相对单一的计算机系统。
它们广泛应用于个人计算、嵌入式系统、工业控制等领域。
1. 微机的基本组成:微机主要由中央处理器(CPU)、存储器、输入输出设备(I/O)等部分组成。
2. 中央处理器:CPU是微机的核心,负责执行程序指令。
它包括算术逻辑单元(ALU)、控制单元(CU)和寄存器组。
3. 存储器:存储器用于存储程序和数据。
主要分为随机存取存储器(RAM)和只读存储器(ROM)。
4. 输入输出设备:包括键盘、鼠标、显示器、打印机等,用于与用户进行交互。
指令系统与寻址方式1. 指令系统:是CPU可以执行的所有指令的集合。
指令系统的设计直接影响到微机的性能和功能。
2. 寻址方式:是CPU访问存储器中数据的方法。
常见的寻址方式包括直接寻址、间接寻址、基址寻址等。
存储结构1. 存储器的层次结构:通常包括高速缓存(Cache)、主存和辅助存储器。
2. 存储管理:涉及虚拟存储技术、内存分配和回收等。
程序设计基础1. 程序设计语言:包括汇编语言、高级语言等。
汇编语言与机器指令直接对应,而高级语言则更为抽象,易于编写和理解。
2. 程序结构:程序通常由数据定义、指令序列和控制结构组成。
3. 算法与数据结构:算法是解决问题的步骤,而数据结构是组织数据的方式。
程序设计方法1. 模块化设计:将程序分解为多个模块,每个模块完成特定的功能,易于管理和维护。
2. 面向对象编程:以对象和类为基础,强调数据和功能的封装、继承和多态性。
3. 程序调试:使用调试工具来查找和修复程序中的错误。
微机接口技术1. 总线接口:连接微机内部各部件的通信线路。
2. 外设接口:如串行接口、并行接口、USB接口等,用于连接外部设备。
微机原理实验报告(两个32位无符号数乘法程序以及码制转换程序设计)----05f17e0a-6eb2-11ec-86e4-7cb59b590d7d微机原理实验报告姓名:班级:学号:时间:实验名称:基本汇编语言程序设计实验1:两个32位无符号数乘法程序实验2:代码系统转换程序设计<1>十六进制到ascii<2>从二进制到ascii一、程序流程图1、两个32位无符号数乘法程序:2.十六进制到ASCII二、程序的实现:1、实验一程序:名称32位多数据段mulnumdw0000,0ffffh,0000,0ffffh,4dup(?)dataendsstack'stack'db100dup(?)斯塔克恩兹codesegment假设:代码,ds:data,ss:stack,es:datastartprocfarbegin:pushdsmovax,0pushaxmovax,datamovds,axmoves,axleabx,mulnummulu32:movax,[bx]movsi,[bx+4]movdi,[bx+6]乳化液mov[bx+8],axmov[bx+0ah],dxmovax,[bx+2]mulsiaddax,[bx+0ah]adcdx,0mov[bx+0ah],axmov[bx+0ch],dxmovax,[bx]muldiaddax、[bx+0ah]adcdx、[bx+0ch]mov[bx+0ah]、axmov[bx+0ch]、DXFmovax,[bx+2]muldipopfadcax,[bx+2]adcdx,0mov[bx+0ch],axmov[bx+0eh],dxretSTARTENDPCODENDSENDSTART2、实验二的程序:1)名称HEX_uu更改为uuidatasegmentl1dw2stringdb34h,98hl2dw?缓冲区db2*2dup(?)数据端stacksegmentparastack'stack'db100dup(?)stackends代码段assumecs:code,ds:data,es:data,ss:stackstartprocfarbegin:pushdsmovax,0pushaxmovax,datamovds,axmoves,axmovcx,l1leabx,stringleasi,buffermovl2,cxmovcx,ax再次:moval,[bx]movdl,alandal,0fhcallchangemoval,dlpushcxmovcl,4shral,clpopcxcallchangeincbxretstartendpchangeproccmpal,10jladd_0addal,'a'-'0'-10add_0:addal,'0'mov[si],alincsiretchangeendpcodeendsendstart2)namebinary_to_acsiidatasegmentnumdw4f78hstringdb16dup(?)dataendsstack'stack'db100dup(?)斯塔克恩兹codesegment假设:代码,ds:data,ss:stack,es:datastartprocfarbegin:pushdsmovax,0pushaxmovax、数据MOVDS、axmoves、axleadi、字符串movcx,lengthstringpushdipushcxmoval,30h;repstowpopcxpopdimoval,31hmovbx,numagain:rclbx,1jncnextmov[di],alnext:incdiloopagainretstartendpcodeendsendstart三、实验感想:在实验过程中,我根据书慢慢理解了这些代码的含义,并纠正了代码中的错误。
微机原理课程设计题目基于8086的电子称设计指导教师姓名学号王华民************姓名学号赵儒桐************姓名学号孙敬周************专业11级电子信息工程教学单位物理与电子信息学院(盖章)二O一三年六月二十二日目录摘要及关键字 (1)1绪论 (1)2 总体设计及其框图 (1)2.1 电阻应变式传感器 (1)2.2 信号放大模块 (2)2.3重量显示及其控制模块 (2)3 硬件电路设计 (2)3.1数据采集电路 (2)3.2 放大校正电路 (3)3.3 ADC0809与8255的连接 (3)3.4 8086的可编程外设接口电路 (4)3.5 数据显示部分 (5)3.6 系统硬件原理图 (6)4系统软件流程图 (7)5总结 (8)参考文献 (8)基于8086电子称设计摘要本文介绍了一种基于8086微处理器的电子称系统,采用电子称传感器采集数据,用CPU控制重量值稳定在预设重量:当重量高于预设重量值时报警。
系统操作简便、自动化程度高、扩展方便且具有良好的人机交互的能力。
该系统通过实验,取得了较为满意的控制效果,可应用在一些精度要求不太高的系统中。
为了降低整个系统的成本,在满足性能的要求下,选择低成本器件,简化系统设计。
关键词微处理器;电阻应变式传感器;A/D转换器;控制系统一.绪论随着电子技术的发展,特别是大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么微型计算机控制技术的出现则是给现代工业控制测控领域带来了一次新的革命。
目前,微处理器8086在工业控制系统诸多领域得到了广泛的应用,由于它具有极好的稳定性,更快和更准确的运算精度。
当前,微机测控系统的发展非常迅速,应用也极为广泛,它由于体积小、功能强、性能稳定、价格低廉等优点,使其在工业控制系统诸多领域得到了极为广泛的应用。
在此基础上发展起来的智能仪器无论是在测量的准确度、灵敏度、可靠性、自动化程度、应用功能等方面或在解决测试技术问题的深度及广度方面都有了巨大的发展,以一种崭新的面貌展现在人们的面前。
XX理工大学微机原理程序设计-----------------------------------------------------------实验一实验要求:试编写一个程序,要求比较数组ARRAY中的三个16位补码数,并依照比较结果在显示终端上显示如下信息:(1)若是三个数都不相等那么显示0;(2)若是三个数有两个相等那么显示1;(3)若是三个数都相等那么显示2。
程序流程图:程序清单:DATA SEGMENTARRAY DW 1,2,3DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START: MOV AX,DATAMOV DS,AXMOV AX,ARRAYMOV BX,ARRAY+2MOV CX,ARRAY+4CMP AX,BXJE LCMP BX,CXJE L1CMP AX,CXJE L1MOV DL,30HJMP EXITL: CMP BX,CXJNE L1MOV DL,32HJMP EXITL1: MOV DL,31HEXIT: MOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START运行结果:ARRAY中三个数互不不相等:ARRAY中三个数有两个相等:ARRAY中三个数都相等:实验二实验要求:从键盘输入一系列字符(以回车符终止),并按字母、数字及其它字符分类计数,最后显示出这三类计数结果。
程序流程图:开始宏定义输入并显示一串字符将字符串各字符转换为ASCII码按ASCII码表判断各字符并归类字符按分类显示结束程序清单:DATA SEGMENTCOUNT_OF_LETTER DB 'the number of letter is :','$' COUNT_OF_NUMBER DB ' the number of number is :','$' COUNT_OF_CHARACTER DB' the number of charater is :','$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BH,0MOV BL,0MOV CL,0NEXT:MOV AH,1INT 21HCMP AL,0DHJE EXITCMP AL,30HJB COUT_OF_CHARATER_ADDCMP AL,39HJBE COUT_OF_NUMBER_ADDCMP AL,41HJB COUT_OF_CHARATER_ADDCMP AL,5AHJBE COUNT_OF_LETTER_ADDCMP AL,61HJB COUT_OF_CHARATER_ADDCMP AL,7AHJBE COUNT_OF_LETTER_ADDCOUT_OF_CHARATER_ADD:INC CLJMP NEXTCOUT_OF_NUMBER_ADD:INC BLJMP NEXTCOUNT_OF_LETTER_ADD:INC BHJMP NEXTEXIT:CALL CRLFLEA DX,COUNT_OF_LETTERMOV AH,09INT 21HMOV AL,BHCALL BIN_DECCALL CRLFLEA DX,COUNT_OF_NUMBERMOV AH,09INT 21HMOV AL,BLCALL BIN_DECCALL CRLFLEA DX,COUNT_OF_CHARACTER MOV AH,09INT 21HMOV AL,CLCALL BIN_DECCALL CRLFRETCRLF PROC NEARMOV AH,02MOV DL,0DHINT 21HMOV AH,02MOV DL,0AHINT 21HRETCRLF ENDPBIN_DEC PROC NEARPUSH BXPUSH CXAND AX,00FFHMOV CX,0MOV BX,0MOV DL,10ROTATE:DIV DLMOV BL,AHAND AX,00FFHPUSH BXINC CXCMP AX,10JAE ROTATEMOV BX,AXPUSH BXINC CXCONTINUE:POP BXADD BL,30HMOV DL,BLMOV AH,02HINT 21HLOOP CONTINUEPOP CXPOP BXRETBIN_DEC ENDPCODE ENDSEND START运行结果:实验三实验要求:假设已编制好五个歌曲程序,它们的段地址和偏移地址寄存在数据段的跳转表SONGLIST 中。
第四章 软件实验部分实验一 两个多位十进制数相减实验一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII 码形式按顺序存放在以DA T AI和DA T A2为首的5个内存单元中(低位在前),结果送回DA T AI 处。
处。
二、实验目的:1.学习数据传送和算术运算指令的用法。
.学习数据传送和算术运算指令的用法。
2.熟悉在PC 机上建立、汇编、链接、调试和运行汇编语言程序的过程。
机上建立、汇编、链接、调试和运行汇编语言程序的过程。
三、实验步骤:连好实验箱后接通电源,连好实验箱后接通电源,打开上位机软件打开上位机软件88TE 进入软件调试界面:进入软件调试界面:点击点击点击“文件“文件\打开”打开”文文件路径为C :\88TE\cai\asm\Ruanjian\Rjexp1.asm 。
具体操作如图所示:文件。
点击编译连接生成可执行的exe文件。
通过单步运行调试程序,打开寄存器查看其变量变化情况。
通过单步运行调试程序,打开寄存器查看其变量变化情况。
四、实验程序框图:五、实验程序:文件路径为C :\88TE\cai\asm\Ruanjian\Rjexp1.asm DA DATA SEGMENT TA SEGMENT DA DATA1 TA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)第一个数据(作为被减数) DA DATA2 TA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)第二个数据(作为减数) MES1 DB '-','$' MES2 DB '=','$' DA DATA ENDS TA ENDS STACK SEGMENT ;堆栈段堆栈段 STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT TA,SS:STACK,ES:DA ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DAT T A START: MOV AX,DA TA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP ,AX MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL ;显示被减数显示被减数 MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DA T A2 MOV BX,05 ;显示减数显示减数 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DA T A2 CALL SUBA ;减法运算减法运算 MOV SI,OFFSET DA T A1 MOV BX,05 ;显示结果显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H 显示减数和被减数被减数和减数转换成十六进制数设 置 计 数 值 消除最低进位数 开 始制进位减 结果送被减数区调整偏移量 计数值-1=10 结果转换成ASCII 码字符串显示结果 结果INT 21H INT 21H MOV AX,4C00H INT 21H DISPL PROC NEAR ;显示子功能显示子功能DSI: MOV AH,02 MOV DL,[SI+BX-1] ;显示字符串中一字符显示字符串中一字符INT 21H DEC BX ;修改偏移量修改偏移量JNZ DSI RET DISPL ENDP SUBA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05 SU1: SUB BYTE PTR[SI+BX-1],30H SUB BYTE PTR[DI+BX-1],30H DEC BX ;将ASCII 码表示的数字串码表示的数字串 JNZ SU1 ;转化为十六进制的数字串转化为十六进制的数字串 MOV SI,DX MOV DI,BP MOV CX,05 ;包括进位,共5位CLC ;清进单位清进单位SU2: MOV AL,[SI] MOV BL,[DI] SBB AL,BL ;带进位相减带进位相减AAS ;非组合BCD码的减法调整码的减法调整 MOV [SI],AL ;结果送被减数区结果送被减数区 INC SI INC DI ;指向下一位指向下一位LOOP SU2 ;循环循环MOV SI,DX MOV DI,BP MOV BX,05 SU3: ADD BYTE PTR [SI+BX-1],30H ADD BYTE PTR [DI+BX-1],30H DEC BX ;十六进制的数字串转化ASCII码表示的数字串码表示的数字串 JNZ SU3 RET SUBA ENDP CODE ENDS END ST ART实验二 两个数相乘的实验一、实验要求:实现十进制数的乘法,实现十进制数的乘法,被乘数和乘数均以被乘数和乘数均以ASCII 码形式存放在内存中,码形式存放在内存中,算式结果在屏幕上显算式结果在屏幕上显示出来。
一、实验目的
(1).学习汇编语言上机操作过程,汇编程序的汇编、编辑、连接、运行、DEBUG、调试方法。
(2)、加深理解汇编语言程序设计方法
(3)、学习使用DOS调用方法
二、实验内容:
(1)、在内存单元TAB开始的连续10个有符号字节数据中找出最小数据并显示结果
(2)、在内存单元TAB开始的连续10个有符号字节数据中找出最大数据并显示结果
三、实验设备及环境:
1.计算机
2.MASM汇编
四、实验方案:
五、实验步骤:
1.用记事本编写源程序;
2.在“开始”—“运行”里键入“cmd”命令启动ms—dos;
3.在命令行中输入cd\masm5\回车;
4.输入masm 程序名.asm;
5.输入link 程序名;
6.输入程序名回车运行程序;
7. 更改源程序找出最大值
六、源程序: dseg segment
TAB db 2H ,5H,6H,3H,7H,8H,9H,81H,,0C3H,0F4H
COUNT db $-TAB
dseg ends
sseg segmengt stack
SDAT db 50 dup(?)
TOP equ length SDAT
sseg ends
code segment
assume cs:code , ds:dseg, ss:sseg
start: mov ax,dseg
mov ds,ax
mov ax,sseg
mov ss,ax
mov ax,TOP
mov sp,ax
mov cx,COUNT
DEC cx
mov sl, OFFSET TAB
mov al,[sl]
NEXT: INC al
cmp al ,[sl]
JL L1
mov al, [al]
L1 :LOOP NEXT
mov bl,al
mov cl,4
and al,0f0h
shr al,cl
or al,30h
mov dl,al
mov ah,2
int 21h
and bl,0fh
or bl,30h
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
七、实验调试结果截图:
八、实验总结
通过本次汇编语言上机操作过程,进一步学习了汇编语言中语法结构和控制指令所实现的结果任务,在进行编程时应首先定义一个数据段、然后对程序中的变量、常量进行声明定义,在声明时注意带有字符的量(比如:0C31H 只能把变成0C31H,而不能编成C31H);并且在DOC中①应根据需要的的功
能调用设置入口参数②把功能调用号送入AH寄存器③在程序末尾应该编入中断指令:”INT 21H”④可根据有关功能调用的说明取得出口参数。
其次是在堆栈段和代码段的定义之后,进行程序段的编写,编完之后要按照程序操作步鄹进行正确连接,最后通过调试对实验的结果进行验证。
最后通过程序的整体性和局部性声明了解到汇编语言源程序的模块化,并且每个模块都有开始和结束成对出现的控制指令,并且在实验前应对实验程序进行整体语法的构思,大致确定程序的语法结构,最后整理程序所用到的控制指令。