当前位置:文档之家› 单片机 移位操作 软件实验2

单片机 移位操作 软件实验2

单片机  移位操作 软件实验2
单片机  移位操作 软件实验2

实验五 移位操作

一、实验目的:

掌握移位操作的方法,并理解左移或右移与乘除法运算的关系。 二、实验内容:

1.双字节二进制数左移一位

将两个内部RAM 31H 和30H 单元中的内容组成的双字节数通过C y 左移一位。 功能示意图

程序清单

赋初值:(30H)=A7H

(31H)=9CH

命令行

区域变化

备注

PC 指针 CLR C

给C 累加器清零 C:0x0000

MOV A ,30H

C:0x0001

RLC A

首位1给C 累加器

C:0x0003

MOV 30H, A

C:0x0004 MOV A,31H

C:0x0006

RLC A

C 累加器中1给其末位,其首位1再给C 累加器 C:0x0008 MOV 31H, A

C:0x0009

SJMP

$

C:0x000B

最终结果

(30H)=4EH (31H)=39H

2.多字节二进制数右移一位

将三个内部RAM 32H 、31H 和30H 单元中的内容组成的三字节数通过C y 右移一位。

功能示意图

C y 31H 30H 32H 31H C y 30H

程序清单

赋初值(32H)=9CH (31H)=A7H (30H)=4EH

命令行区域变化备注PC指针CLR C 给C累加器清零C:0x0000 MOV A,32H C:0x0001 RRC A 末位0给C累加器C:0x0003

MOV 32H,A C:0x0004 MOV A,31H C:0x0006

RRC A C累加器中0给其末

C:0x0008

位,其首位1再给C累

加器

MOV 31H,A C:0x0009 MOV A,30H C:0x000B

C:0x000D RRC A C累加器中1给其末

位,其首位0再给C累

加器

MOV 30H,A C:0x000E SJMP $ C:0x0010 最终结果(30H)=A7H (31H)=53H (32H)=4EH

三、思考题

1、多于三个字节的移位操作如何进行?

答:同理,通过C累加器,运用RRC或RLC命令实现移位操作。若字节过多,可以加入循环。详见实验七第一个程序段

2、如果不通过C y如何移位?实现的功能有何不同?

答:将RLC、RRC命令更改为RL、RR命令,这样就在不引起Cy变化的情况下进行移位操作了。

实验二算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作 一、实验目的 1.熟悉算术逻辑运算指令和移位指令的功能。 2.了解标志寄存器各标志位的意义和指令执行对它的影响。 二、实验预习要求 1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。 三、实验任务 1.实验程序段及结果表格如表: 表

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存入(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和放在 单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的程

3 后结果(AX)= (1) 传送15H 到AL 寄存器; (2) 再将AL 的内容乘以2 ; (3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。 4商= (1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把 DS:1000H 单元中的数据传送到AX 寄存器; (3) 把AX 寄存器的内容算术右移二位; (4) 再把AX 寄存器的内容除以DS:1002H 字节单元中的数; (5) 最后把商存入字节单元DS:1003H 中。 5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12元的内容(即将零送到这些存储单元中去)。 (1) 将第4条比较指令语句填写完整(划线处)。 MOV SI ,0010H NEXT: MOV WORD PTR[SI],0 ADD SI ,2 CMP SI ,答案 22H (或者20H ) JNE NEXT HLT (2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),则上述程序段应如何修改 上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。 6. 输入并运行表中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

实验四 移位运算器实验

实验四移位运算器实验 一、实验目的 验证移位控制器的组合功能 二、实验内容 1、实验原理 移位运算实验原理如图3-4所示,使用了一片74L S299(U34)作为移位发生器,其八位输入/输出端通过74L S245引到总线,总线控制方式见图1—6,J A4接通时输出到总线。299B`信号由开关299B提供,控制其使能端,T4为其时钟脉冲,手动方式实验时将T4与手动脉发生器输出端S D相连,即J23跳线器上T4连S D。由信号S0、S1、M控制其功能状态,详细见下表3—3。 2、实验接线 1、J20,J21,J22,接上短路片, 2、J24,J25,J26接左边; 3、J27,J28 右边; 4、J23 置右边T4选“SD” 5、JA5 置“接通”; 6、JA6 置“手动”; 7、JA3,JA4 置“接通”; 8、JA1,JA2,置“高阻”; 9、JA8 置上面“微地址” 10、EXJ1接BUS3 11、CE、ALU_B 置“1”, 12、299B 置“0”

3、实验步骤 ⑴ 连接实验线 路,仔细查线无误后接通电源。 ⑵ 置数,具体步骤如下: ⑶ 移位,参照上表改变S 0、 S 1、 M 、 299B 的状态,按动手动脉冲开关以产生时钟脉冲T 4,观察移位结果。 四、实验数据 Q08I/O07I/O113I/O26I/O314I/O45I/O515I/O64I/O716Q7 17 OE12OE13S01S119CLK 12CLR 9DS011DS7 18 U34 74LS299 299B`S0S1VCC GND AQ0 AQ7T4 UN1A 74LS08 UN1B 74LS08 UN2A 74LS32 UN2B 74LS32UN2C 74LS32 UN3A 74LS04 M QCY 3 2 1 654 3 2 1 218109 6 54 R4910K VCC CLK 11 D 12S D 10 C D 13 Q 9 Q 8UN5B 74LS74 UN4B UN4C 299B` UN1D 74LS08UN1A 74LS08UN1B 74LS08 UN1C 74LS08 AQ7AQ0 UN3B 74LS32 UN4D UN4E AR T4M S0S1CN4QCY UN2C 74LS08CY UN2A 74LS08UN3B UN3A 74LS3274LS32 CY 56123 312 431234 5 6 45 910 8111011 1213 8910 4 5 6 LZD 0-LZD 7 图3-4 BU SD0--D 7

数据传送指令及算术逻辑运算和移位指令的使用

实验报告 1.数据传送指令的使用 一,实验目的; 把数据、地址或立即数传送到寄存器、存储单元以及I/O端口,或从内存单元、I/O端口中读取数据。 1. 通用传送指令:MOV,PUSH,POP,XCHG,XLAT 2. 输入输出指令指令: IN,OUT 3. 目的地址传送指令: LEA,LDS,LES 4. 标志位传送指令: LAHF,SAHF,PUSHF,POPF 二,实验步骤; 1. 传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48 MOV DX,75AB XCHG AX,DX 2)用U命令检查键入的程序并记录,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。

2. 改变标志寄存器psw中tf标志的状态(0——1或1——0),其余位保持不变。 3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下使用A 命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么? 程序清单如下: MOV AX,BX MOV AX,0304H MOV AX,[0304H] MOV AX,[BX] MOV AX,0001[BX] MOV AX,[BX][SI] HLT

4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H 中或堆栈中,然后将标志位寄存器的低八位置位为10101010。 2.算术逻辑运算和移位指令的使用 一,实验目的; 使用算术逻辑运算和移位指令,可以实现对二进制数据的加、减、乘、除等四则运算,与、或、非、异或等逻辑运算,以及移位运算和代码转换运算 1,算术运算:加法指令、减法指令,乘法指令、除法指令以及转换指令; 2. 逻辑运算指令:AND,TEST,OR,XOR,NOT 3. 移位指令: 移位运算可以分为算术逻辑移位和循环移位两类。 (1)算术逻辑移位指令:SHL,SHR,SAL,SAR (2)循环移位指令:ROL,ROR,RCL,RCR 二,实验步骤; 1. 已知程序段定义如下: MOV AX,1234 MOV CL,4 SHL AX,CL INC AX DEC CL ROR AX,CL MOV BX,4 MUL BX

运算器 实验报告汇总

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成与结构 项目名称基本运算器实验 班级 学号 姓名 同组人员无 实验日期 2015-11-1

一、实验目的 1.了解运算器的组成结构; 2.掌握运算器的工作原理。 二、实验逻辑原理图与分析 2.1 实验逻辑原理图及分析 运算器内部含有三个独立运算部件,分别是算术、逻辑和移位运算部件,要处理的数据存于暂存器A和暂存器B,三部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD中。 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不在赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩形来实现。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可以实现移位功能,即: ⑴对于逻辑左移或者逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连。而没有同任何输入相连的则输出连接0. ⑵对于循环右移功能,右移对角线同互补的左移对角线一起激活。 ⑶对于未连接的输出位,移位时使用符号扩展或者是0填充,具体由相应的指令控制,使用另外的逻辑进位移位总量译码和符号判别, 运算器部件由一片CPLD实现。ALU的输入和输出通过三态门74LS245连到CPU内总线上,另外还有指示灯表明进位标志FC。图中除T4和CLR,其余信号均来自于ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。T4由时序单元的TS4提供,其余控制线号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。

基本模型机的设计与实现和带移位运算的模型机的设计及实现

一、基本模型机的设计与实现 (一)实验目的: 1、清晰地建立计算机的整机概念,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。 2、为其定义五条机器指令:IN、ADD、STA、OUT、JMP,并编写相应的微程序,具体上机调试掌握整机概念。 3、学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。 (二)、实验设备 TDN-CM+计算机组成原理教学实验系统一台。 (三)、实验原理 本实验定义五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下: 助记符机器指令码说明 IN 0000 0000 “I NPUT DEVICE”→R0 ADD addr 0001 0000 ××××××××R0+[addr] →R0 STA addr 0010 0000 ××××××××R0→ [addr] OUT addr 0011 0000 ××××××××[addr] →BUS JMP addr 0100 0000 ××××××××addr→PC 其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。 为了向RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。 存储器读(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。 存储器写(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“0 1”时,按START微动开关,可对RAM连续手动写操作。 启动程序(RP):拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运-

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

计算机组成原理实验

计算机组成原理上机实验指导

一、实验准备和实验注意事项 1.本课程实验使用专门的TDN-CM++计算机组成原理教学实验设备,使用前后均应仔细检查主机板,防止导线、元件等物品落入装置内导致线路短路、元件损坏。 2.完成本实验的方法是先找到实验板上相应的丝印字及其对应的引出排针,将排针用电缆线连接起来,连接时要注意电缆线的方向,不能反向连接;如果实验装置中引出排针上已表明两针相连,表明两根引出线内部已经连接起来,此时可以只使用一根线连接。 3.为了弄清计算机各部件的工作原理,前面几个实验的控制信号由开关单元“SWITCH UNIT”模拟输入;只有在模型机实验中才真正由控制器对指令译码产生控制信号。在每个实验开始时需将所有的开关置为初始状态“1”。 4.本实验装置的发光二极管的指示灯亮时表示信号为“0”,灯灭时表示信号为“1”。 5.实验接线图中带有圆圈的连线为实验中要接的线。 6.电源关闭后,不能立即重新开启,关闭与重启之间至少应有30秒间隔。 7.电源线应放置在机内专用线盒中。 8.保证设备的整洁。

二、实验设备的数据通路结构 利用本实验装置构造的模型机的数据通路结构框图如下图。其中各单元内部已经连接好,单元之间可能已经连接好,其它一些单元之间的连线需要根据实验目的用排线连接。 图0-2 模型机数据通路结构框图

实验一运算器实验:算术逻辑运算实验 一.实验目的 1.了解运算器的组成结构; 2.掌握运算器的工作原理; 3.掌握简单运算器的数据传送通路。 4.验证运算功能发生器(74LSl81)的组合功能。 二.实验设备 TDN-CM++计算机组成原理教学实验系统一台,排线若干。 三.实验原理 实验中所用的运算器数据通路如图1-l所示。其中两片74LSl81以串行方式构成8位字长的ALU,ALU的输出经过一个三态门(74LS245)和数据总线相连。三态门由ALU-B控制,控制运算器运算的结果能否送往总线,低电平有效。 为实现双操作数的运算,ALU的两个数据输入端分别由二个锁存器DR1、DR2(由74LS273实现)锁存数据。要将数据总线上的数据锁存到DR1、DR2中,锁存器的控制端LDDR1和LDDR2必须为高电平,同时由T4脉冲到来。 数据开关(“INPUT DEVICE”)用来给出参与运算的数据,经过三态门(74LS245)后送入数据总线,三态门由SW-B控制,低电平有效。数据显示灯(“BUS UNIT”)已和数据总线相连,用来显示数据总线上的内容。 图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号外,其它均为电平信号。由于实验电路中的时序信号均已连至“W/R UNIT”的相应时序信号引出端,因此,在进行实验时,只需将“W/R UNIT”的T4接至“STATE UNIT”的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲。 ALU运算所需的电平控制信号S3、S2、S1、S0、Cn、M、LDDR1、LDDR2、ALU-B、SW-B均由“SWITCH UNIT”中的二进制数据开关来模拟,其中Cn、ALU-B、SW-B为低电平有效,LDDRl、LDDR2为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。

单片机-实验二-分支程序设计实验

实验二实验报告 ·

将00-99的十进制数据转换成二进制进行开关量的输入,L0灯亮 将100的十进制转换为01100010的二进制开关量进行输入,L1灯亮

将101-127的十进制转换为二进制进行开关量的输入,L2灯亮 完整的接线图

实验操作 1、正确连接实验板子和电脑,将点源接入,数据线连接到电脑的USB接口,在电脑端运行 软件,取消勾选模拟器,按照实验装置的名称正确的选择响应的系统。 2、在软件内部按照输入分支程序结构。 3、打开点源开关。 4、调整输入的各个断口的开关量,着重关注在二进制数01100010附近的变化. 5、整理实验器材。 思考题1 写出分支程序设计的要点 分支结构也成为选择结构。在程序中每个分支均为一个程序段。为分支需要,程序设计时不要忘记给程序段的起始地址赋予一个地址标号,以供选择分支使用。 这次实验使用的是一个多分支程序结构,可以通过一系列的JC\JNC\JB\JNB的判断,进行逐级分支。并且可以使用CJNE进行实现。 80C51中没有专门的多分支转移指令,可以使用的变址转移指令“JMP @A+DPTR”,但是这样的指令需要数据表格配合。 思考题2 8051单片机有几个并行口,写出各并行口的特点 8051单片机有4个并行I/O口,分别为P0\P1\P2\P3,以实现数据的并行输入与输出。 这4个并行口均是8为双向口线,各占8个引脚,在P3口线上有着引脚复用,均有第二功能信号,这些第二功能信号都是重要的控制信号,在实际使用中总是先按需要优先选用第二功能,剩下的不用的再当作口线使用。 并行可以有效的提高单片机的工作效率。 思考题3 实验中遇到的苦难 在这个实验中和实验一显著不同的是我们需要重新认识硬件与软件的配合,一些数据线的链接,点源的通断都是我们学习的要点,我们也第一次接触到了输入口和输出口相互之间的区别。 这个实验我们一定要将十进制的思维转换过来转换为二进制的思维,在机器语言中只有开关量的通断,而这个题目也是很好的应用了开关量的通断完成了这个实验。 学会了分支判断方式的编程

3_11实验二移位运算实验(王伟)

新疆师范大学计算机科学技术学院实验报告 专业:软件工程课程名称:计算机组成原理班级: 14-3班 姓名:王伟学号: 20141602141011 实验地址:数理楼2楼 实验时间:2016.11.10 指导教师签字:成绩: 实验二算术移位运算实验 1.实验目的和要求 (1)掌握移位控制的功能及工作原理。 (2)了解移位寄存器的功能。 2.主要仪器设备 EL-JY-II型计算机组成原理试验系统一套,排线若干。 3.实验原理 移位运算实验电路结构如图 2-1 所示: 图 2-1 移位运算器电路结构 移位寄存器由 EP1K10 实现 T4 为移位时钟,M、S0、S1 为功能选择(见实验二),G_299 为输出控制,低电平时将寄存器的值送上数据总线。CY 为进位单元,对应于 Z 指示灯。DATAL、DATAH 接至数据总线。

4.操作方法与实验步骤 实验连线图如图 2-3 所示。 一、开关控制操作方式实验 (1)将控制开关电路的所有开关拨到输出高电平“1”状态,所对应的指示灯亮。 (2)拨动清零开关CLR,使其指示灯灭。再拨动 CLR,使其指示灯亮。 (3)置数: 置 C-G=1,299-G=0,通过数据输入电路输入要移位的数据,置 D15---D0= “0000000000000001”,然后置 C-G=0,数据总线显示灯显示“0000000000000001”,置 S0=1,S1=1,M=1 ,此时为置数状态,按脉冲源及时序电路上的【单步】按钮,置 C-G=1,完成置数的过程,进位指示灯亮表示进位“Z”已置位。 (4)不带进位移位: 置 299-G=0,S0=1,S1=0,M=0,此时为循环左移状态,数据总线显示灯显示“0000000000000001”,按【单步】,数据总线显示灯显示“0000000000000010”,

开放式CPU 运算器部件实验 移位器

运算器部件实验 移位器 一、实验目的 1、理解寄存器、移位器的原理。 2、掌握5种移位器及其用途。 二、实验原理 1、算术左移SAL (shift arithmetical left )、算术右移SAR(shift arithmetical right) 把操作数看成带符号数,对寄存器操作数进行移位,左移时空出的位补0,右移时空出的位补与最高位相同的1或0,如下图 2、逻辑左移SLL (shift logical left )、逻辑右移SLR (shift logical right ) 把操作数看成无符号数,对寄存器操作数进行移位。左移时空出的位补0,右移时空出的位补0,如下图 3、循环左移ROF (rotation left )、循环右移ROR (rotation right ) 循环左右移其实是一样的,比如说8位的操作数,左移n (0≤n ≤8)位和右移n-8位结果是一样的。左移时,移出的最高位移回到最低位;右移时,移出的最低位移回到最高位,如下图 三、实验步骤 循环右移 循环左移 算术右移 ‘0 0’ 逻辑左移 0’

1、打开QuartusⅡ,安装ByteBlaster Ⅱ。 2、将子板上的JTAG端口和PC机的并行口用下载电缆连接。打开试验台电源。 3、执行Tools—Programmer 命令,将shifter.sof下载到FPGA中。 4、在实验台上通过模式开关选择FPGA-CPU独立调试模式010。 四、输入输出规则 1、将开关CLKSEL拨到1,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU 所需要的时钟使用正单脉冲时钟。 2、输入的8位操作数D7~D0对应开关SD15~SD8。 3、移动的位数n(3位数)对应开关SD7~SD5。 4、方向dir(左移还是右移)对应开关SD4,0代表左移,1代表右移。 5、移位类型kind(2位)对应开关SD3~SD2,00代表算数移,01代表逻辑移,10代表循环移。 6、在按下实验台上的单脉冲按钮后,对操作数移位的结果在灯A7~A0上体现。 五、实验结果 1.对8位数10110100进行移位操作,结果如下表1。 表1 第一组数据:10110110 2.对8位数01001101进行移位操作,结果如下表2。 表2 第二组数据:01001101

北京交通大学单片机实验程序报告

单片机实验程序

实验二8155并行I/O口扩展和动态扫描程序编制 1.实验目的 (1)掌握8155并行I/O芯片扩展和使用方法 (2)掌握数码管动态扫描汇编语言的编制方法 2.预习要点 (1)8155芯片基础知识 (2)51单片机的总线时序、地址译码的原理 (3)数码管动态扫描显示方法 3.实验设备 计算机、单片机实验箱。 4.实验内容 基本要求: 通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字1~8。 扩展要求: 假定30H~33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上 根据程序要求做如下程序流程图: 主程序流程图:

显示子程序流程框图: 基本要求编程如下: ORG 0000H

AJMP MAIN ORG 0050H MAIN: MOV SP,#60H ;压栈 MOV DPTR, #4100H MOV A,#0FH ;方式控制字0FH送A MOVX @DPTR, A ;8155初始化 MOV 70H,#01H ;设置显示缓冲区 MOV 71H,#02H MOV 72H,#03H MOV 73H,#04H MOV 74H,#05H MOV 75H,#06H MOV 76H,#07H MOV 77H,#08H LOOP: ACALL DISPLAY ;循环调用显示子程序AJMP LOOP DISPLAY: MOV R0,#70H ;显示缓冲区首地址送R0 MOV R3,#0FEH ;字位控制初值送R3

计算机实验

实验一十六位机运算器实验 专业:计算机科学与技术班级:学号:************ 姓名:张三丰实验地点:工A408 实验时间:指导教师: 一、实验目的 掌握十六位机字与字节运算的数据传输格式,验证运算功能发生器及进位控制的组合功能。 二、实验要求 完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。 三、实验原理 实验中所用的运算器数据通路如图2-3-1所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。 图2-3-1运算器数据通路 图2-3-1中,AXW、BXW在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的负脉冲把总线上的数据打入,实现AXW、BXW写入操作。

四、运算器功能编码 表2.3.1 ALU运算器编码表 算术运算逻辑运算 五、实验连线 K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制电路。

六、算术运算实验 1.字算术运算 (1)字写操作 按【单拍】按钮按【单拍】按钮 (2)字读操作 (3)字加法与减法运算 令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AX+BX的结果。 令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AX-BX的结果。 2.字节算术运算 (1)偶字节写(置数操作) 通过I/O单元“S15~S0”开关向累加器AL和暂存器BL置数,具体操作步骤如下: 按【单拍】按钮按【单拍】按钮 (2)偶字节读操作(运算寄存器AL和BL内容送总线) 关闭AL、BL写使能,令K18=K17=1,按下流程分别读AL、BL。 K18~K17=11 K13~K11=000 (3)字节减法算术运算(不带进位加) 令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AL+BL的结果。 令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AL-BL的结果。

计算机组成原理运算器实验

实验一运算器实验 计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由CPU中的运算器来完成,运算器也称作算术逻辑部件ALU。本章首先安排一个基本的运算器实验,了解运算器的基本结构,然后再设计一个加法器和一个乘法器。 一、实验目的 (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 二、实验设备 PC机一台,TD-CMA实验系统一套。 三、实验原理 本实验的原理如图1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD中。 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。图中显示的是一个4×4的矩阵(系统中是一个8×8的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。 (2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。 (3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。

计算机组成原理实验报告

实验报告

运算器实验 一、实验目的 掌握八位运算器的数据传输格式,验证运算功能发生器及进位控制的组合功能。 二、实验要求 完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。 三、实验原理 实验中所用的运算器数据通路如图2-3-1所示。ALU运算器由CPLD描述。运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输入端分别由2个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。 图2-3-1运算器数据通路 图中A WR、BWR在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的脉冲把总线上的数据打入,实现运算源寄存器A、暂存器B的写入操作。 四、运算器功能编码 算术运算逻辑运算

K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制路。 表2.3.2 运算实验电路搭接表 算术运算 1.运算源寄存器写流程 通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下: 2.运算源寄存器读流程 关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。 3.加法与减法运算 令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显示A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显示A-B的结果。 逻辑运算 1.运算源寄存器写流程 通过“I/O输入输出单元”开关向寄存器A和B置数,具体操作步骤如下: 2.运算源寄存器读流程 关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。

单片机实验二

单片机实验报告(二) 姓名:赵苑珺 学号:090250129

实验三程序设计(二) 一、实验目的 1、了解汇编语言程序设计与调试的过程; 2、掌握循环程序、查表程序和子程序的特点及设计。 二、实验内容 1、循环程序的设计、输入、调试和运行; 2、查表程序的设计、输入、调试和运行; 3、子程序的设计、输入、调试和运行。 三、实验步骤 1、排序程序:将N 个数从小到大排列起来。 设R0 的内容为数据区的首地址,R7 的内容为数据的字节数。参考程序为:MOV R0,#30H ;将序列首地址存入R0中 MOV R7,#10 ;将序列长度存入R7中 SS: MOV A,R7 MOV R2,A MOV 60H,R0 ;将序列首地址存入60H NN: DEC R2 ;循环程序,控制排序次数 MOV A,R2 MOV R3,A MOV R0,60H L1: MOV A,@R0 ;将序列第一个数存入A中 INC R0 ;R0加1,指向第二个位置 CLR C ;清除进位标志位C,为比较两数大小做准备 SUBB A,@R0 ;第一个数减去第二个数 JC MM ;判断C的状态,1(代表数1小于数2)跳至MM,0(代表数 1大于数2)继续执行 MOV A,@R0 ;将第二个数存入累加器A中 DEC R0 ;R0指向第一个位置 XCH A,@R0 ;将A中的数(数1)与R0指向的数(数2)交换 INC R0 ;R0减一,指向位置一 MOV @R0,A ;将A中的数2存到位置一内 SETB F0 ;置位用户标志位,表示有交换 MM: DJNZ R3,L1 ;R3减一不为零则跳至L1,否则继续执行程序 MOV A,R2 CJNE R2,#01H,L2 ;判断R2中的数是否已经减为1,是跳至JJ,否跳至L2 SJMP JJ L2: JB F0,NN ;判断F0状态,若为1(有交换)则跳至NN,否则继续进行JJ: MOV R0,60H ;将序列首地址存入R0 END

单片机实验程序

一 #include #include #define uchar unsigned char sbit H1=P3^6; sbit H2=P3^7; sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff}; tab2[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3b,0x37,0x2f,0x1f}; tab3[]={0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; tab4[]={0x1f,0x2f,0x37,0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f}; void Delay1s() //@11.0592MHz { unsigned char i,j,k; for(i=10;i>0;i--) for(j=200;j>0;j--) for(k=250;k>0;k--) } void delay20ms() { unsigned char i,j; for(i=100;i>0;i--) for(j=60;j>0;j--); } void flick() { uchar d; while(d<=2) { P2=0x00; P3=0xc3; Delay1s(); P2=0xff; P3=0xff; Delay1s(); d++; } } void main() { uchar b,y,n; flick();

带移位运算的模型机的设计与实现

____计算机 ____学院 _____计算机科学与技术_____专业___5__班______组、学号______ 姓名__________协作者___________ 教师评定_____________ 实验题目_带移位运算模型机的设计与实现___________ 1.实验目的与要求: (1)熟悉由微程序控制器控制模型机的数据通道。 (3)学习设计与调试计算机的基本步骤及方法。 2.实验方案: 一、实验连线 在实验仪上接好线后,仔细检查无误后可接通电源。 二、实验程序 结合基本模型机所学的五条指令和本实验介绍的移位指令,编写的实验程序已存在磁盘里,文件名为EX2,该程序包括机器指令程序和微指令程序,在程序中地址和内容都是十六进制,机器指令的前4 位操作码。 三、实验步骤 与PC机联机将上面的实验程序(EX2)下载到实验仪里,该程序包括机器指令程序和微指令程序,机器指令程序装入6116 存储器里,微指令程序装入E2PROM2816 控制存储器里。 (1)实验程序下载操作步骤: 1、开机后,启动Windows 系统,双击桌面上的“组成原理实验” 快捷图标,即可进入DVCC 组成原理实验系统主画面。 2、单击该系统第三行的打开图标,即可出现文件框,选择文件名EX2 并打开之。 3、此时左边的编辑窗口“新文件”变为“EX2”,在该窗口里显示EX2 的源文件,它包括机器指令程序和微指令程序的微代码,$P 开头是机器指令程序,$M 开头是微指令程序的微代码。 4、单击“调试”图标,把打开的源文件下载到实验仪里,在下载过程中屏幕下方出现“正在传送文件”的提示,当文件传送完毕,提示消失。 5、文件传送完毕,要检查源文件是否正确传送到实验仪RAM 和ROM 里,首先检查实验仪RAM 的内容,单击“程序RAM”打开该窗口,查看此时显示的地址和内容与实验程序中机器指令的地址和内容是否一致,若不一致,重复4 的操作,若一致,就单击菜单栏中“调试”菜单,然后选择并单击“刷新数据”或按“F5”热键对“程序RAM”窗口显示的程序进行刷新。刷新完成后,再查看此时显示的地址和内容与实验程序中机器指令是

实验二COP2000移位实验

实验二 COP2000数据输出和移位实验 一、实验目的 1、了解模型机中多寄存器接数据总线的实现原理。 2、了解运算器中移位功能的实现方法。 二、实验要求 利用COP2000 实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线DBUS上。 三、实验步骤 1 连线,并置相应控制信号,并输入数据 2 检验存储器的输出结果 3 置控制信号,实现ALU的左移和右移,并检验结果 四、实验内容 1 2

3 ALU 左移输出原理图 直通门将运算器的结果不移位送总线。当X2X1X0=100时运算器结果通过直通门送到数据总线。同时,直通门上还有判0电路,当运算器的结果为全0时,Z=1 右移门将运算器的结果右移一位送总线。当X2X1X0=101时运算器结果通过右通门送到数据总线。具体连线是: Cy 与 CN → DBUS7 ALU7 → DBUS6 ALU6 → DBUS5 ALU5 → DBUS4 ALU 右移输出原理图

ALU4 → DBUS3 ALU3 → DBUS2 ALU2 → DBUS1 ALU1 → DBUS0 Cy 与CN → DBUS7 当不带进位移位时(CN=0): 0 → DBUS7 当带进位移位时(CN=1): Cy → DBUS7 左移门将运算器的结果左移一位送总线。当X2X1X0=110时运算器结果通过左通门送到数据总线。具体连线是: ALU6 → DBUS7 ALU5 → DBUS6 ALU4 → DBUS5 ALU3 → DBUS4 ALU2 → DBUS3 ALU1 → DBUS2 ALU0 → DBUS1 当不带进位移位时(CN=0): 0 → DBUS0 当带进位移位时(CN=1): Cy → DBUS0 4、将55H写入A寄存器 按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。放开CLOCK键,CLOCK 由低变高,产生一个上升沿,数据55H被写入A寄存器。

单片机实验二 中断程序

实验二:中断 一、实验要求 实验目的:学会使用uVision 4和Proteus软件进行单片机汇编语言和C语言程序设计与开发;了解和掌握MCS-51单片机的中段组成、中断控制工作原理、中断处理过程、外部中断的中断触发方式,掌握中断功能的编程方法。 实验内容:单片机的P1.0引脚接LED指示灯D0;P3.2接按键开关K作为中断源可每次案件都会触发INT0中断;在INT0中断服务程序中将P1.0端口的信号取反,是LED指示灯D0在点亮和熄灭两种状态间切换,产生LED指示灯由按键K控制的效果。 二、实验原理 中断服务程序的设计主要包括两部分:初始化程序和中断服务程序。 初始化程序主要完成为响应中断而进行的初始化工作。这些工作主要有:中断源的设置、中断服务程序中有关工作单元的初始化和中断控制的设置等。 中断源的设置与硬件设计有关,各中断请求标志由存储器TCON和SCON中有关标志位来表示,所以中断源的初试化工作主等要有初试化各中断请求标志和请求外部中断信号的类型。 中断服务程序通常由现场保护、总段处理和恢复现场三个部分组成。MSC-51单片机所做的断电保护工作是很有限的,只保护了一个端点地址。所以如果在主程序中用到如A、PSW、DPTR和R0~R7等寄存器,而在中观程序中又要用他们,这就要保证回到主程序后,这些寄存器还要回复到未执行中断前的内容。在运行中断处理程序前,将中断处理程序中用到的寄存器内容先保存起来,这就是所谓的“现场保护”。好糊A、PSW、DPTR等内容,通常可用压入堆栈命令(PUSH)指令,对保护R0~R7等寄存器可用改变工作寄存器区的方法。 中断处理结束后,将中断处理程序中用到的寄存器内容恢复到中断前的内容,即“恢复现场”。恢复现场要与保护现场操作配合使用。 三、程序设计 1、程序流程图

相关主题
文本预览
相关文档 最新文档