微型计算机原理上机实验改错,微机原理与接口技术,微机原理与接口基础教学,上海求育...

本文主要是介绍微型计算机原理上机实验改错,微机原理与接口技术,微机原理与接口基础教学,上海求育...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原标题:微机原理与接口技术,微机原理与接口基础教学,上海求育

9b9c2b35de13b3c0f72af6e40412224a.png上海求育QY-JXSY42微机原理与接口技术实验箱

上海求育QY-JXSY42微机原理与接口技术实验箱是配套计算机技术的硬件基础课程,通过实验箱的学习使学生从理论和实践上掌握微型计算机的工作原理和基本组成.电话021-69918115

微机系统扩展:8088CPU,64K监控程序存储器,64K用户程序和数据存储器,64K实验程序存储器,开放式4*6键盘电路,开放式6位动态数码管显示电路,配有串口或USB通信方式,出厂配置为串口。

常用接口芯片:8250、8251、8253、8255、8279、0809、0832、74LS273、74LS244、8237、8259、RS232等;

控制对象:小型直流电机、步进电机、温度、压力、继电器、电子音响喇叭等;

详细信息:http://www.mmaan.com/a/chanpinjieshao/shiyanxiang/20170824/1549.html

实验项目

软件实验:

(1)二进制多位加法实验

(2)二进制转换为BCD码实验

(3)BCD码转换为二进制码

(4)十进制数的BCD码相减运算

(5)内存清零实验

(6)数码显示实验

(7)求最大数和最小数

(8)数据块传送实验

(9)分支程序设计。

硬件实验:

(1)A/D转换实验

(2)D/A转换实验(一)

(3)D/A转换实验(二)

(4)8255A并行口实验(一)

(5)8255A并行口实验(二)

(6)定时器/计数器实验

(7)8259单级中断控制器实验

(8)串行口发送实验(双机通讯)

(9)串行口接收实验(双机通讯)

(10)小直流电机调速实验;

(11)步进电机控制

(12)继电器控制

(13)存贮器读写实验

(14)电子琴实验

(15)简单I/O口扩展实验

(16)8251可编程通讯接口和PC机通讯

(17)16*16LED点阵显示实验

(18)128*64LCD液晶显示实验

(19)8237DMA传送实验

(20)8250可编程异步通讯接口实验

(21)8279键盘显示实验

(22)温度控制实验

(23)压力测量实验

微机原理与接口技术知识点

1.微型计算的组成(冯 诺依曼结构):

输入设备,输出设备,存储器,算术逻辑单元,控制单元

(算术逻辑单元和控制单元共同构成中央处理单元即CPU)

2.处理速度:(电子速度)CPU(寄存器:CPU中的读写存储器)>存储器>I/O设备(机械速度)

3.三总线结构指:AB(地址总线)、CB(控制总线)、DB(数据总线)

4.低级语言有机器语言和汇编语言,前者为01码,是计算机唯一能够理解且直接执行的语言,面向问题的程序设计语言称为高级语言

5.0或1就是二进制的一位称为1比特(bit)八个二进制位称为1字节(byte),即一个字节八位或者一个字节八比特,两个字节称为一个字(word)十六位,一般数字后跟B为二进制数,D为十进制数,H为十六进制数

6.BCD数运算时出现低位向高位进(借)位,则通过加(减)0110来手动进行调整;求带符号数的减法时通过加上他的补码来实现计算,对正数求反加一即可得到他的补码;ASCII码中0为0110000(48),A为1000001(65),a为1100001(97)

7.8086CPU曾是使用广泛的16位微处理器,为串行交替的工作方式,由执行单元EU和总线接口单元BIU两部分构成,执行单元包含通用寄存器,暂存寄存器,算术逻辑单元ALU,标志寄存器,EU控制单元,总线接口单元BIU包括地址加法器,内部寄存器,指令队列缓冲器,总线控制单元,EU实际上不与外界打交道,所有与外部的操作都在BIU的控制下完成

8.EU中ALU算术逻辑单元完成八位或者十六位的二进制运算,结果通过内部总线通过寄存器组或BIU的内部寄存器,等待写入存储器,暂存寄存器用来暂时存放参加运算的操作数,经ALU算术逻辑单元运算后置入FR标志寄存器中保存,EU控制器负责从BIU的指令队列中取指令,根据 指令要求EU内部各部件发出控制命令

9.三类寄存器

段寄存器(内部寄存器):

CS(Code Segment):保存代码段的段地址,代码段用于存储程序的指令。

SS(Stack Segment):保存堆栈段的段地址,堆栈段用于形成堆栈区。

DS(Data Segment):保存数据段的段地址,数据段用于暂存原始数据和处理后的中间结果及最终结果。

ES(Extra Segment):保存扩展段的段地址,扩展段与数据段类似,一般情况下,数据段用于存储局部变量,扩展段用于存储全局变量。

标志寄存器:

CF(Carry Flag):进位/借位标志。(最高位)

PF(Parity Flag):奇偶标志。(置位位的个数,为偶则PF=1,表示为PE;为奇则PD=0,表示为PO)

AF(Auxiliary Carry Flag):辅助进位/借位标志,用于BCD加法的调整。(运算的低四位产生了进位或借位,AF=1,表示为AC;否则AF=0,表示为NA)

ZF(Zero Flag):零标志。(运算结果为0,则标志置位;否则复位)

SF(Sign Flag):符号标志,用于标志符号的正负。(运算结果最高位为1,则标志置位,表示为NG;否则标志复位,表示为PL)

OF(Overflow Flag):溢出标志,用于标志符号数的运算结果是否超出表达范围(无符号数的溢出以CF标志)。(双高异或判别)

另外3位通过人为设置,用以控制8086的3种特定操作,称为控制标志。

TF(Trap Flag):陷阱标志,也称为单步标志,用于程序的单步执行调试。

IF(Interrupt Flag):中断标志。(IF=1,表示为EI,即允许响应可屏蔽中断的请求;IF=0,表示为DI,即禁止响应可屏蔽中断的请求)

DF(Direction Flag):方向标志。(DF=1,表示为DN,即down,串操作后地址指针自动减量;DF=0,表示为UP,即up,串操作后地址指针自动增量)

通用寄存器:

AX(Accumulator),累加寄存器;主要用于乘除运算和输入输出操作时存储操作数、优化移动操作。

BX(Base),基寄存器;主要用于存储器间接寻址时存储数据段的基地址。

CX(Counter),计数寄存器;主要用于循环、重复、移位操作时存储计数值。

DX(Data),数据寄存器;主要用于乘除运算时存储操作数、输入输出操作间接寻址时存储I/O地址。

SP(Stack Pointer),堆栈指针寄存器;用于存储站定的偏移地址。

BP(Base Pointer)基指针寄存器;主要用于存储器间接寻址时存储堆栈段的基地址。

SI(Source Index),索引源寄存器;主要用于存储器间接寻址时存储索引地址、串操作时存储原串偏移地址。

DI(Destination Index),目的索引寄存器 ;主要用于存储器间接寻址时存储索引地址、串操作时存储目的串偏移地址。

10.较高存储器地址的字节存放该字的高8位,较低存储器地址的字节存放在该字的低8位;物理地址=16d×段基址+偏移地址

11.8086的7种寻址方式:

立即数寻址

寄存器寻址

直接寻址

寄存器间接寻址

基址/变址寻址(SI只能对应BP和BX,DI只能对应BP和BX)

基址变址相对寻址

12.N一般指立即数,M指存储器,R指寄存器

13.8086指令集

通用数据传输指令:MOV、PUSH、POP、XCHG

累加器专用传输指令:IN、OUT、XLAT、LEA、LDS、LES

算数运算指令:ADD、ADC(考虑CF标志位的加)、INC(自加1)、DAA(对压缩BCD码加法操作的自动校正0110)、AAA(其余加法校正)、SUB、SBB、DEC、DAS、AAS、CMP(比较指令,本质是相减但是不计算结果只影响标志位)、NEG、(I)MUL、AAM、(I)DIV、CBW、CWD、AAD、NOT、AND、OR、XOR、TEST(本质是AND但是不计算结果只影响标志位)、SHR、SHL、ROR、ROL、JMP(无条件跳转)、条件跳转多涉及标志位的情况、LOOP(循环指令,每次执行该指令CX-1)

14.汇编语言程序设计:

变量定义,具体的常见变量类型有DB(8位)、DW、DD

?是随机数

DUP能用于重复定义LENTH则用于求解有DUP重复了多少次

PTR用于强制类型转换

用‘’单引号引起来部分为ASCII码形式

段定义以SEGMENT开始ENDS结束

15.接口包含有数据信息(数字量,模拟量,A/D转换,开关量),状态信息(表征外设工作状态的信息),控制信息(CPU通过接口发出的控制外设工作的信息)

16.接口是CPU与外设间的桥梁

17.接口在电路中的作用:

数据缓冲功能,寄存器和锁存器解决告诉主机与低俗外设间的速度匹配功能

端口选择功能,CPU在一时刻只能与一个端口交换信息

信号转换功能,外设与总线信号的统一

接收和执行CPU的命令功能

中断功能,中断CPU使其处理突发事件

可编程功能,可编程芯片直接改变接口驱动程序就可以实现更新

数据宽度和数据格式转换的功能,串并-并串 变换

18.I/O端口(接口电路中能被CPU直接访问的寄存器地址)编址方式(统一编址(单片机和DSP)和独立编址(8086和8088有自己的专有指令))

19.端口地址译码,三个口每个口都有一个地址,门电路,译码器,比较器

20.CPU与外设的传送方式,小批量:无条件传送,查询方式传送,中断方式传送,大批量:DMA(接权CPU)直接存储器存取方式

21.可编程芯片

8255可编程并行接口芯片

8253定时/计数器

实际例题:

1.寻址方式判断:

2.指令改错:

PUSH CL有错push指令操作数为16位 (PUSH CX)

ADC AX,0ABH

OUT 3EBH,AX 有错当输出设备地址大于255即大于FFH则应该利用寄存器DX间接寻址 (MOV DX 2EBH ;OUT DX,AX)

MUL AL,CL 有错MUL指令只有一个操作数乘数默认存放在AL或AX中 (MUL CL)

MUL AX,25 有错乘法指令不能使用立即数

(MOV BL,25;MUL BL)

ROL DX,5 有错移动位数大于1的要使用CL寄存器

(MOV DL,5;ROL DX,CL)

CALL FAR SUM

POP FR 有错寄存器FR不能单独使用 (POPF FR)

MOV 234H,BX 有错 立即数不能作为目的操作数(MOV BX 234H)

INC [SI] 有错 不确定是八位还是十六位的目标码 (INC BYTE PTR[SI])

ADD [BX],456H 有错 [BX]类型未知 (ADD WORD PTR[BX],456H)

INT 0 有错 自加指令不能用于立即数

DIV AX,BX 有错 DIV指令只有一个操作数除数和被除数默认放在AX或AL中,结果商放在AL或AX中余数放在AH或DX中(DIV BX)

DEC [BP] 有错 未知类型 (DEC WORD PTR[BP])

XLA BX

ADD CX+1 有错没有这种自加的表示方法(INC CX)

DAA AX 有错 DAA校正命令没有操作数 (DAA)

3.编程题(仅提供核心思路)

(1)大小写字母互换(前提是题目所给字符串只有字母)参考书91面例4-12

首先确定大小写通过ASCII码加减操作实现转换

AGAIN:MOV AL,[BX]

CMP AL,‘a’

JB NEXT;比a小跳转

SUB AL,20H

MOV [BX],AL

JMP AA1

NEXT: ADD AL,20H

MOV [BX],AL

JMP AA1

AA1:INC BX

JMP AGAIN

设置结束办法,如遇到‘$’结束循环

CMP AL,‘$’

JE DONE

DONE: MOV AX,4C00H

INT 21H

(2)找最大或最小值(参考书96页例4-19)

逐个比较,通过地址的偏移实现一个一个的比较

LEA SI,STR

MOV AH,[SI];先将当前数放在最大位置

A1: MOV AL,[SI] ;逐个取数开始比较

CMP AH,AL

JB A2

MOV AH,AL ;发现更大的数便放入AH中

A2: INC SI

JMP A1

循环次数的限制和设置LOOP的使用

LOOP的循环次数由CX寄存器决定,所以预先给CX赋值便设置好了循环次数

MOV CL,5

A1: LOOP A1 ;循环5次

(3)统计数字或字母的个数

方法类似于第一题,确定其范围然后跳转即可,设置好记录的寄存器进行计数

(4)找正数且为偶数,复数且为奇数的数

正负判断用TEST AL , 80H 和JS跳转命令,符号标志位SF为1的时候表示其为复数JS跳转,为0正数则不跳转

奇偶判断用TEST AL , 01H 和JZ跳转命令,零标志位ZF为1的时候表示其最低位为0偶数JZ跳转,为0则表示其最低位为1奇数JZ不跳转

(5)统计一个字(16位)中0和1的个数

借助移位命令SHR右移不断改变最低位的值再利用TEST和JZ判断是1还是0并做计数,判断方法同第四题

(6)将DX内容分别送到ALAHBLBH中

分高位和低位然后利用AND与运算 AND DL,0FH屏蔽高四位得到低四位,用右移SHR四位MOV CL,4 ;SHR DL,CL的方式得到高四位

(7)十六进制转ASCII码转BCD码

十六进制转ASCII码主要分是字母形式还是数字形式处理方式也不同,BCD码则是要将十六进制化为十进制后进行拆分个十百位

ASCII码转换:书100页例4-24

MOV AH,AL

AND AL,0FH;先处理低位

CMP AL,0AH;和A(=10)比较

JB AA1;如果是数字则跳转字母则直接加上07

ADD AL,07

AA1:ADD AL,30H;对于数字加上30H

MOV BL,AL

MOV CL,4

SHR AH,CL;再来处理高位

BCD码转换:

MOV BL,BUFF

MOV AL,100

DIV BL;对要处理的数作除法

MOV DH,AL;商为百位数字

MOV AL,10

DIV AH;余数再除十得到十位数字

MOV DL,AL

MOV CL,4

SHL DL,CL

ADD DL , AH ;左移四位以后再加上第二次除法的余数即个位数字

(8)8253级联应用

(9)8255应用

分清工作方式控制输入输出的语言主要是OUT 和IN

由里向外

MOV DX,所在地址

MOV AL,工作方式

OUT DX,AL

由外向里

MOV DX,所在地址

IN AL, DX返回搜狐,查看更多

责任编辑:

这篇关于微型计算机原理上机实验改错,微机原理与接口技术,微机原理与接口基础教学,上海求育...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756031

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显