微机原理程序设计共35页文档
微机原理第八章微型计算机的程序设计 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接口等,用于连接外部设备。
微机原理课程设计 完整版

微机原理课程设计题目基于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 中。
【微机原理】程序设计

1.1 乘除法指令
格式:CBW ; AL的最高位扩展至AH CWD ; AX的最高位扩展至DX CWDE ;AX的最高位扩展至EAX的高16
位 指C令D都Q隐;含EA操X作的数最高位扩展至EDX 在做8位除以8位、16位除以16位、 32位除以 32位的符号整数除法之前,应先扩展AL或AX或 EAX中的被除数。 扩展指令和符号整数除法仅对补码数适用。
1.1 乘除法指令
如:有一符号字数组变量ARRAY,第1个字是被除数 ,第2个字是除数,接着存放商和余数,其程序段为 :
MOV SI,OFFSET ARRAY MOV AX,[SI] CWD IDIV WORD PTR 2[SI] MOV 4[SI],AX MOV 6[SI],DX
1.2 BCD数调整指令
MOV AH,0
DIV BL ; AH中余数为BCD数百位
1.1 乘除法指令
如,用除10取余法将8位二进制数FFH转换为BCD 数255H的二进制运算如下图所示
1.1 乘除法指令
3. 扩展指令CBW和CWD
要把一个8位二进制数除以另一个8位二进制数,要有 一个16位二进制数在AX中,所以做8位除以8位的 除法前先要把8位被除数扩展为16位。做16位除以 16位的除法前要把16位被除数扩展为32位,做32位 除以32位的除法前要把32位被除数扩展为64位。这 种扩展对于无符号数除法只需将AH或DX或EDX清0, 而对符号整数除法则要通过扩展符号位来把被除数 扩展。
MUL CH ;(百位×10 + 十位)×10 →AX
AND SB,0FH ;取个位
ADD SB,AL ;(百位×10 + 十位)×10 +个位→SB
1.1 乘除法指令
(完整word版)微机原理完整实验报告+程序

实验题目8253定时/计数器实验 一、 实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、 实验内容: 1、实验原理 本实验原理图如图 1所示,8253A 的A0、A1接系统地址总线 A0、A1,故8253A 本实验通道2 有四个端口地址,如端口地址表 1所示。
8253A 的片选地址为 48H~ 4FH 。
因此, 仪中的8253A 四个端口地址为 48H 、49H 、4AH 、4BH ,分别对应通道 0、通道1、 和控制字。
采用8253A 通道0,工作在方式3(方波发生器方式),输入时钟CLK0为 输出OUTO 要求为1KHZ 的方波,并要求用接在 GATE0引脚上的导线是接地("0" 甩空("1"电平)来观察GATE 对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接 (1) 8253A 芯片的CLK0引出插孔连分频输出插孔 (2) 8253A 的 GATE0 接+5V 。
实验步骤 (1) 按图1连好实验线路(2) 运行实验程序 1. 按“调试”按钮2. 选“窗口” “进入示波器窗口” ,然后最小化3. 按“运行按钮”4.将模拟示波器窗口打开,选择“串行口 2”,再按 Ctrl + F2按钮即可看到波形 显示“ 8253-1 ”用示波器测量8253A 的OUT2输出插孔,方波输出,幅值0〜4V 三、实验代码: 1MHZ ,电平)或 3、 CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONT PORT EQU 00DFH DATA PORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMATCALL LEDDIS P MOV DX,TCONTRO1MHZ 。
微机原理第3章-程序设计的基本技术

符号数→SF=?(合适状态位)
X
1 X≥0,Y≥0
Y Z
Z= -1 X﹤0,Y﹤0
18
3.1.2 BCD数调整指令
3.非压缩BCD数乘除法调整指令AAM和AAD (1)乘法调整
格式: AAM 功能:将AL中小于64H的二进制数变换为非压缩BCD
数送AX(AAM在MUL指令后使用;影响PF、SF、ZF)
调整规则: AL/0AH→AH (十位);
AL MOD 0AH→AL(个位)
如: MOV AL,63H
MOV AX,0906H
MOV DL,06H
AAD
;AX=0060H
DIV DL ;AL=10H,AH=0
MOV DL,AH ;存余数
AAM
;AX=0106H
20
例3.1 P93 顺序程序设计 已知字变量W1和W2分别存放着两个
压缩BCD数,编写求两数之和,并将其 和送到SUM字节变量中的程序。
1,正确定义字变量 2,BCD只能字节运算(AL调整)
…
NEXT: …
如:JMP WORD PTR[BX] ;即[BX+0]→IPL
[BX+1]→IPH,间接转移 34
# 条件转移:原IP+偏移量→IP(机器) 无条件转移:新赋值→IP,CS (机器)
# 所有转移指令不影响标志位
35
3.2.3 分支程序设计举例
例3.7:编制计算下面函数值的程
序(X,Y均为字节符号数)
MOV AL,BYTE PTR W1 ;AL=31H ADD AL,BYTE PTR W2 ;31H+78H=A9H,
AL=A9H,CF=AF=0(十,个位相加) DAA ;AL=09H(十,个位),CF=1(百位,调整得)
微机原理程序设计

微机原理课程设计设计一:从键盘输入十六进制数并显示出二进制值设计二:字符串匹配设计设计三:字符和数据显示的设计设计四:键盘输入小写字母转换成大写字母设计五:计算N!的设计2011-7-6设计一:从键盘输入十六进制数并显示出二进制值实验目的:掌握接收键盘数据的方法,并了解数据显示时须转换为ASCII码的原理。
实验内容:将键盘接收到的4位十六进制数据转换为等值的二进制数,再显示在屏幕终端上。
流程图:程序源代码:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA SEGMENTMARK DB ?MESS DB 'INPUT THE NUMBER! Press Enter to Transition,Press Space to Exit!',0DH,0AH,'Input:$'ERROR DB 0DH,0AH, 'Input Error!',0DH,0AH,'$'DA TA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV SP,TOPHEAD: CRLFMOV MARK,0MOV AH,09HLEA DX,MESSINT 21H ;显示提示输入的信息CALL GETNUM ;接收键入数值送DXCMP MARK,01HJE HEADMOV CX,0010H ;16位MOV BX,DXTTT: ROL BX,1 ;循环左移1位MOV DL,BLAND DL,01H ;屏蔽掉高7位ADD DL,30HMOV AH,02HINT 21H ;显示二进制位对应的ASCII字符LOOP TTTJMP HEADFINI: MOV AH,4CHINT 21H ;返回DOSGETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CXXOR DX,DXGGG: MOV AH,01HINT 21HCMP AL,0DH ;输入为回车,则进行转换JE PPPCMP AL,20H ;输入为空格,则退回DOSJE FINICMP AL,30HJB KKKSUB AL,30HCMP AL,0AHJB GETSCMP AL,11HJB KKKSUB AL,07HCMP AL,0FHJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20HGETS: MOV CL,04SHL DX,CLXOR AH,AHADD DX,AXJMP GGGKKK: MOV AH,09HMOV DX,OFFSET ERRORINT 21HMOV MARK,01HPPP: PUSH DXCRLFPOP DXPOP CXRETGETNUM ENDPCODE ENDSEND START运行结果设计二:字符串匹配设计实验内容:编写程序实现两个字符串比较。