微机原理程序设计

合集下载

微机原理分支程序设计实验

微机原理分支程序设计实验

微机原理分支程序设计实验微机原理是计算机科学与技术专业的核心课程之一、在这门课程中,学生需要学习计算机的基本原理和体系结构,并通过实验来巩固所学的知识。

本文将介绍一个关于分支程序设计的微机原理实验。

实验背景:分支程序是计算机中的一种非线性控制结构,它根据条件的不同选择不同的执行路径。

分支程序设计是计算机编程中非常重要的一部分,也是实际应用中经常会遇到的情况之一、通过这个实验,学生将学会如何使用分支结构来解决实际问题。

实验目的:1.了解分支程序设计的基本概念和原理。

2.掌握使用条件语句和循环语句来实现分支程序。

3.通过实际案例分析和编程实践,巩固所学的知识。

实验内容:本实验以学生成绩管理系统为例,通过判断学生的成绩等级来计算总评成绩,并输出等级信息。

分支程序设计的思路如下:1.输入学生的成绩。

2.根据成绩的范围判断学生的等级。

3.根据等级计算总评成绩。

4.根据总评成绩输出相应的等级信息。

实验步骤:1.在开发环境中创建一个新的项目,并新建一个名为“GradeManage”的源文件。

2.在源文件中定义一个成绩变量和一个等级变量,并使用输入函数从键盘读取学生的成绩。

3.使用条件语句根据成绩的范围判断学生的等级,并将等级赋值给等级变量。

4.使用条件语句根据等级计算总评成绩,并将结果赋值给一个总评成绩变量。

5.使用条件语句根据总评成绩输出相应的等级信息。

6.在屏幕上显示输出结果。

7.编译并运行程序,进行测试。

实验总结:通过本实验,我学会了如何设计并实现一个简单的分支程序。

在实验过程中,我深入了解了分支结构的原理和使用方法,并通过编程实践巩固了所学的知识。

分支程序设计在实际应用中非常广泛,掌握这一技能对于计算机科学与技术专业的学生来说非常重要。

在今后的学习和工作中,我将继续探索和学习更多关于分支程序设计和其他相关知识,以提高自己的编程能力。

微机原理第八章微型计算机的程序设计 ppt课件

微机原理第八章微型计算机的程序设计 ppt课件

mov ax, data
mov ds, ax
MOV AL, BYTE PTR W1
;AL=31H (+78H)
ADD AL, BYTE PTR W2 ;AL=A9H, CF=0,AF=0
DAA ;BCD数加法调整指令; AL=09H, CF=1
MOV SUM, AL
MOV AL, BYTE PTR W1+1 ; AL=89H (+56H)
MOV SUM, AL ;(SUM)=06H
MOV AL,AH; AL=09H
ADD AL, BYTE PTR W2+1 ; AL=09H+06H=0FH,属于第1种情况
MOV AH, 0
此句也可表达为MOV [SUM], AL; 见P151
AAA ; AL=05H, AH=01H
;第一种情况处理:AL=(AL+06H)&0FH, 因0FH+06H=15H,故 AL=05H,AH=AH+1=0+1=01H,所以AX=0105H
• W1
DW 8931H
• W2
DW 5678H
• SUM DB 3 DUP(0)
• data ends
• code segment
begin proc far
assume ss: stack, cs: code, ds:data
push ds
sub ax, ax
push ax
2020/9/18
10
2020/9/18
8
微机原理第八章微型计算机的程
序设计
AAA-----两个非压缩BCD数相加调 整指令
若(AL&0FH)>9或AF=1,则(AL+6)&0FH送AL,AH 加1且CF置1;

微机原理及程序设计

微机原理及程序设计

微机原理及程序设计微机原理及程序设计是一门结合了计算机硬件基础和软件编程技能的课程,它对于理解现代计算机系统的工作方式至关重要。

本课程旨在教授学生微机的基本组成原理、指令系统、存储结构以及程序设计的基本方法。

微机原理概述微机,即微型计算机,是一种体积小、价格低廉、功能相对单一的计算机系统。

它们广泛应用于个人计算、嵌入式系统、工业控制等领域。

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接口等,用于连接外部设备。

微机原理简单程序设计实验流程图

微机原理简单程序设计实验流程图

微机原理简单程序设计实验流程图下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 实验目的:了解微机原理和程序设计的基本概念。

掌握使用汇编语言或高级语言进行程序设计的方法。

微机原理_汇编语言程序设计

微机原理_汇编语言程序设计

汇编语言

汇编语言源程序
高级语言

面向算法、过程、对象,类似自然语言,可移植性 好,须经解释或翻译后才能被执行
程序设计的步骤和方法
程序设计的步骤 程序设计的方法 常用伪指令 汇编语言格式汇编言格式 指令格式:
标号:助记符 参数,参数;注释 名字 定义符 参数,…,参数;注释
伪指令格式:

转移指令和分支程序
控制转移类指令

无条件转移指令 条件转移指令 比较转移指令 循环转移指令 用cjne实现三分支 用 jmp @A+DPTR 实现多分支
分支程序

循环程序
循环程序结构 单循环程序

例1:多字节求和 例2:内部数据区清零
例3:50ms延时程序
微机原理及应用
MCS-51单片机
第七章 汇编语言程序设计
程序设计语言简介 程序设计的步骤和方法 转移指令和分支程序 循环程序 子程序及其调用 程序设计举例
程序设计语言简介
机器语言

计算机唯一能够识别和执行的语言 “符号语言”,用指令助记符代表机器语言指令 汇编
机器语言目标程序
• ASCII码二进制
• 以DPTR为指针 • 地址偏移量表 • 转向地址表
查表程序
• 以PC为指针
散转程序
• 转移指令表
多重循环程序

子程序及其调用
子程序调用与返回指令 子程序设计方法 子程序的调用过程与子程序嵌套 调用过程中的参数传递

通过寄存器传递 通过堆栈传递 通过数据指针(DPTR)传递
程序设计举例
算术运算程序
• 多字节加法 •多字节BCD码减法

微机原理 程序设计方法

微机原理 程序设计方法

入口参数:DX存放待转换的二进制数 CX存放待转换数的位数(8位或16位) DI存放ASCII码首地址 出口参数:转换后的字符串存放在以DI作指针的字节存贮区中 程序如下:
STACK SEGMENT STACK DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
NUM8 DB NUM16 DW ASCBUF DB
93H 0ABCDH 20 DUP(0)
DATA ENDS
CODE START:
SEGMENT
ASSUME DS:DATA,CS:CODE, SS:STACK
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV DX,0
MOV DL,NUM8
;转换二进制数送DX
则,顺序执行。 说明:使用LOOP指令可代替两条指令:
DEC CX JNE 短标号
⑵.相等/为零循环指令LOOPE 语句格式:① LOOPE 短标号 ② LOOPZ 短标号 功能:(CX)-1 ≠0且ZF=1,则程序转移(循环);
否则,顺序执行。
⑶.不相等/不为零循环指令LOOPNE 语句格式:① LOOPNE 短标号
开始 X→AL AL×AL→AX AX-50→AX AX→Y 结束
【例】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序 排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放 在变量E中。编写程序如下:
DATA SEGMENT
TAB DB 80,85,86,71,79,96
DB 83,56,32,66,78,84
21H
MOV DX,NUM16
MOV CX,16 ;置位数16

微机原理微型计算机的程序设计

微机原理微型计算机的程序设计
W1
2024/9/30
43
例6.2
将内存(10050)单元旳内容拆成两段,每段4位,并将它 们分别 存入内存(10051)和(10052)单元。即(10050) 单 元 中 旳 低 4 位 放 入 ( 10051 ) 单 元 中 旳 低 4 位 , 而 (10050)单元中旳高4位放入(10052)单元中旳低4位。
INT 21H
2024/9/30
42
作业8.17 编写求输入算式’加数1+加数2’旳和并送显。
(加数及其和均为4位(即指压缩)BCD数,P262)
分析:要求先有屏幕显示输出‘加数1+加 数2:’,然后从键盘输入两个4个字节旳 BCD数,加完后送显。
用到旳变量:W1和W2因为从键盘输入,均 不拟定是几位十进制,故需拟定其最大位 数不超出要用
2024/9/30
12
MOV AX, W1
;AX=0809H,W2为0607H
ADD AL, BYTE PTR W2 ;AL=10H, CF=0,AF=1
AAA ; 属于第一种情况,故
; AL为(AL+06H)&0FH=10H+06H )&0FH
;
=16H&0FH=06H=AL;
;AH加1且CF置CF=1,所以AH=08H+1=09H,则AX=0906H
2024/9/30
34
2024/9/30
35
2024/9/30
36
2024/9/30
37
2024/9/30
38
作业8.4 编写求两个4位非压缩BCD数之和,
将和送显示屏显示旳程序。(P261)
分析:两加数各要4个字节单元,可觉得DD 类型;考虑到进位,和要5个字节单元,另 外,输出到显示器旳结束符号’$’需要一 个单元存放,故共需6个字节。 所以,数据段定义为:

微机原理课程设计

微机原理课程设计

微机原理 课程设计一、课程目标知识目标:1. 让学生理解微机的基本原理和结构,掌握微处理器的工作机制。

2. 使学生掌握汇编语言的基本指令,能够阅读和编写简单的汇编程序。

3. 帮助学生了解微机系统中内存、I/O设备的基本原理及其与CPU的交互方式。

技能目标:1. 培养学生运用汇编语言进行程序设计的能力,能够实现基本的输入输出、逻辑判断和循环等操作。

2. 培养学生分析和解决微机系统常见问题的能力,如调试程序、处理硬件故障等。

3. 提高学生动手实践能力,通过课程设计项目,使学生能够独立完成一个简单的微机系统设计与实现。

情感态度价值观目标:1. 培养学生对微机原理及计算机科学的兴趣,激发他们探索精神和技术创新意识。

2. 培养学生团队协作精神,学会与他人共同分析问题、解决问题,提高沟通能力。

3. 引导学生认识到微机技术在国家经济发展和国防建设中的重要作用,增强学生的社会责任感和使命感。

课程性质:本课程为理论与实践相结合的课程,注重培养学生的实际操作能力和实际应用能力。

学生特点:学生已具备一定的电子技术和计算机基础知识,对微机原理有一定了解,但缺乏实践经验。

教学要求:教师需结合课程性质、学生特点,采用案例教学、项目驱动等教学方法,引导学生主动学习,提高学生的实践能力和综合素质。

在教学过程中,注重分解课程目标,确保学生能够达到预定的学习成果。

二、教学内容1. 微机原理概述:介绍微机的发展历程、基本结构及工作原理,重点讲解CPU、内存、I/O设备等核心组件的作用和相互关系。

相关教材章节:第一章 微机原理概述2. 汇编语言基础:讲解汇编语言的基本概念、语法和指令系统,使学生掌握汇编程序的编写和调试方法。

相关教材章节:第二章 汇编语言基础3. 微机系统编程:学习微机系统中的程序设计方法,包括顺序程序设计、分支程序设计、循环程序设计等。

相关教材章节:第三章 微机系统编程4. 内存与I/O设备:介绍内存管理、I/O设备控制原理,分析微机系统中内存、I/O设备的访问方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XX理工大学微机原理程序设计-----------------------------------------------------------实验一实验要求:试编写一个程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在显示终端上显示如下信息:(1)如果三个数都不相等则显示0;(2)如果三个数有两个相等则显示1;(3)如果三个数都相等则显示2。

程序流程图:开始初始化显示数组中的三个补码数结束显示0显示2显示1i=0i=1i=2三数两两比较并记相等的个数i显示“请连续输入三个三位数:”调用程序,使输入的三个三位数转换为补码形式,并分别保存在数组ARRAY 中程序清单:DATA SEGMENTARRAYDW1,2,3DATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,ARRAY MOV BX,ARRAY+2 MOV CX,ARRAY+4 CMP AX,BX JE LCMPBX,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 中。

试编一程序,根据从键盘输入的歌曲编号1~ 5 ,转去执行五个歌曲程序中的一个。

程序流程图:开始宏定义SONGLIST的地址等显示SONGLIST歌曲名使键盘1,2,3,4,5分别指向这5首歌的地址显示”请输入歌曲编号(范围:1-5)“显示输入歌曲编号播放所点歌曲是判断是否继续否结束程序清单:DATA SEGMENTSONGLIST DW MUSIC1,MUSIC2,MUSIC3,MUSIC4,MUSIC5 DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXREADLIST:MOV AH,1INT 21HSUB AL, '0'CMP AL,0JE EXITCMP AL,5JA READLISTDEC ALMOV BX,0MOV BL,ALADD BX,BXJMP SONGLIST[BX]JMP READLIST MUSIC1:MOV DL, '1'MOV AH,2INT 21HJMP EXITMUSIC2:MOV DL, '2'MOV AH,2INT 21HJMP EXITMUSIC3:MOV DL, '3'MOV AH,2INT 21HJMP EXITMUSIC4:MOV DL, '4'MOV AH,2INT 21HJMP EXITMUSIC5:MOV DL, '5'MOV AH,2INT 21HJMP EXITEXIT:MOV AX,4C00HINT 21HCODE ENDSEND START运行结果:实验四实验要求:试编写一个程序,从键盘接收一个个位数N,然后响铃N次。

(响铃的ASCII码为07H)。

程序流程图:开始宏定义显示“请输入响铃次数:”结束N>0?输入一个数nN--输出响铃1次是否程序清单:DATA SEGMENTTIP DB 'PLEASE INPUT A NUMBER:','$'DATA ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASTART :MOV AX,DATAMOV DS,AXLEA DX,TIPMOV AH,09HINT 21HMOV AH,01HINT 21HAND AX,01HMOV CX,AXBE:MOV DL,07HMOV AH,02HINT 21HLOOP BECODES ENDSEND START运行结果:输入数字后听到对应次数的响铃实验五实验要求:从键盘输入一系列以$ 为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。

程序流程图:开始结束暗字符串顺序判断字符是否为数字宏定义显示“请输入字符串,以$结尾:”对字符串处理,并记录字符个数n计数i (初值为0)++显示”非数字字符数为:i “n>0?n--是否是否程序清单:DATA SEGMENTS1 DB 0DH,0AH,'PLEASE INPUT : $'S2 DB 0DH,0AH,'TOTAL NON_DIGITAL ARE:$' NUM DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART :PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXLEA DX,S1MOV AH,9INT 21H NEXT:MOV AH,01INT 21HCMP AL,'$'JE DOWNCMP AL,'0'JB NO09CMP AL,'9'JA NO09JMP NEXT NO09:INC NUMJMP NEXT DOWN:LEA DX,S2MOV AH,9INT 21HMOV AL,NUMMOV AH,0MOV DL,100DIV DLCALL DISP_PMOV AL,AHMOV AH,0MOV DL,10DIV DLCALL DISP_PXCHG AH,ALCALL DISP_PRETDISP_P PROC NEARPUSH AXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXRETDISP_P ENDPCODE ENDSEND START运行结果:实验六实验要求:试编制一个程序,把AX中存放的16进制数转换为ASCII码,并将对应的ASCII 码依次存放在MEM数组中的四个字节中。

例如:当(AX)= 2A49H时,程序执行完后,MEM中的四个字节的内容为39H,34H,41H,32H。

程序流程图:开始宏定义输入一个16进制数并送给AX将AX中数转换为ASCII码形式将各ASCII码由低位依次送给MEM四个字节显示MEM中的内容结束程序清单:DATA SEGMENTMEM DB 4 DUP (?)N DW2A49HDATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART:PUSH DSSUB AX, AXPUSH AXMOV AX, DATAMOV DS, AXBEGIN:MOV CH, 4MOV CL, 4MOV AX, NLEA BX, MEMROTATE:MOV DL, ALAND DL, 0FHADD DL, 30HCMP DL, 3AHJL NEXTADD DL, 07HNEXT:MOV[BX], DLINC BXROR AX, CLDEC CHJNZ ROTATERETCODE ENDSEND START运行结果:实验七实验要求:设有十个学生的成绩分别是76,69,84,90,73,88,99,63,100,80分,试编制一个子程序统计60 ~ 69分,70 ~ 79分,80 ~ 89分,90 ~ 99分和100分的人数,分别存放在S6,S7,S8,S9和S10单元中。

相关文档
最新文档