文档库 最新最全的文档下载
当前位置:文档库 › 实验2-移位密码分析实验

实验2-移位密码分析实验

实验2-移位密码分析实验
实验2-移位密码分析实验

实验2-移位密码分析实验

一、实验内容

通过编程实现使用频度分析法破解凯撒密码的程序。并通过下面两段密文解密验证。

已知,拦截到下列两段密文,使用的是移位密码,利用频度攻击分别找出其明文:

1、XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVXLQSVILYVVCFIJSVIXLIWI

PPIVVIGIMZIWQSVISJJIVW

2、XULTPAAJCXITLTLXAARPJHTIWTGXKTGHIDHIPXCIWTVGTPILPITGHLXIWIWTXGQADDS

二、实验要求

1、写出凯撒密码的频度分析原理

一篇包含字符的英文文章,其各ASCII码字符出现,都有一定的频率,出现较高频率的两个字符是' ' (空格) 和 'e',而且它们的ASCII码分别是32和101,差值是69。既然凯撒密码利用的是单表替换的一种简单加密算法,所以,我们的主角, ' ' 和'e' ,在解密后,依然会保持相同的ASCII码差值,69。

|c1 - c2| = |'e' - ' '| = |101 - 32| = 69

|m1 - m2| = | ((c1 + k) mod 256)-((c2 + k) mod 256)| = |c1 - c2| = |'e' - ' '| = 69

现在可以得到破解凯撒密码的原理了,我们统计一片经过凯撒加密的密文字符信息,在出现频率较高的字符里面寻找差值是69的2个字符,这两个必定是 ' ' 和'e' 字符的加密字符,计算偏移量(既密钥key),通过解密运算,还原出明文。

2、程序设计流程说明,提交源代码及详细注释

源代码:

#include

#include

#include

int count[27];

char s[100];

int main()

{

int i,n,m,l,k;

FILE *fp;

char d;

char filename[100];

printf("请输入要打开的文件名:\n"); //输入要打开的文件名

gets(filename);

fp=fopen("filename","r");

if((fp=fopen(filename,"r"))==NULL)//打开文件,并判断是否有打开错误printf("打开文件%s出现错误\n",filename);

else

printf("成功打开文件\n");

while(fgets(s,100,fp)) //计算文件中每个英文字母出现的次数

{

for(i=0;s[i];i++)

{

if(s[i]<'A'||s[i]>'z'|| (s[i]>'Z'&&s[i]<'a'))

count[26]++;

else if(s[i]<'a')

count[s[i]-'A']++;

else

count[s[i]-'a'];

}

}

for(i=0;i<26;i++)

{

printf("%c or %c: %d次\n",'A'+i,'a'+i,count[i]);

}

printf("其它字符:%d次\n",count[26]);

printf("input the number\n"); //输入出现次数最多的字母scanf("%c",&d);

k=(int)(d-'e'); //计算出密钥

printf("the key is :%d\n",k);

printf("When the ciphertext is '%s',\nThe password program is...::\n\n",s); m=strlen(s);

for(i=0;i

{

n=(int)(s[i]);

if(n>64&&n<91)

{

n=(n-65-k)%26;

if(n<0)

n=26+n;

l=(char)(n+97);

printf("%c",l);

}

}

s[i]='\0';

return 0;

}

3、用截图描述实验过程和结果

4、提示:可将密文保存为文件,对该密文文件进行破解

可假设该文件中只有26个英文字母;或者考虑文件里包含标准ASCII码表中

的128个任意字符

寄存器实验报告

寄存器实验报告

一、实验目的 1. 了解寄存器的分类方法,掌握各种寄存器的工作原理; 2. 学习使用V erilog HDL 语言设计两种类型的寄存器。 二、实验设备 PC 微机一台,TD-EDA 实验箱一台,SOPC 开发板一块。 三、实验内容 寄存器中二进制数的位可以用两种方式移入或移出寄存器。第一种方法是以串行的方式将数据每次移动一位,这种方法称之为串行移位(Serial Shifting),线路较少,但耗费时间较多。第二种方法是以并行的方式将数据同时移动,这种方法称之为并行移位(Parallel Shifting),线路较为复杂,但是数据传送的速度较快。因此,按照数据进出移位寄存器的方式,可以将移位寄存器分为四种类型:串行输入串行输出移位寄存器(Serial In- Serial Out)、串行输入并行输出移位寄存器(Serial In- Parallel Out)、并行输入串行输出移位寄存器(Parallel In- Serial Out)、并行输入并行输出移位寄存器(Parallel In-Parallel Out)。 本实验使用V erilog HDL 语言设计一个八位并行输入串行输出右移移位寄存器(Parallel In- Serial Out)和一个八位串行输入并行输出寄存器(Serial In- Parallel Out),分别进行仿真、引脚分配并下载到电路板进行功能验证。 四、实验步骤 1.并行输入串行输出移位寄存器实验步骤 1). 运行Quartus II 软件,选择File New Project Wizard 菜单,工程名称及顶层文件名称为SHIFT8R,器件设置对话框中选择Cyclone 系列EP1C6Q240C8 芯片,建立新工程。 2.) 选择File New 菜单,创建V erilog HDL 描述语言设计文件,打开文本编辑器界面。 3.) 在文本编辑器界面中编写V erilog HDL 程序,源程序如下: module SHFIT8R(din,r_st,clk,load,dout); input [7:0]din; input clk,r_st,load; output dout; reg dout; reg [7:0]tmp; always @(posedge clk) if(!r_st) begin dout<=0; end else begin if(load) begin tmp=din; end else

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

实验二算术逻辑运算及移位操作 一、实验目的 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)完成实验报告。 五、实验结果 六、实验总结

计数器和移位寄存器设计仿真实验报告.

实验四典型时序电路的功能测试与综合仿真报告 15291204张智博一.74LS290构成的24位计数器 方法:第一片74290的Q3与第二片的INB相连,R01,R02相连,INA,R91,R92悬空构成24位计数器。50Hz,5v方波电压源提供时钟信号,用白炽灯显示输出信号。 实验电路: 实验现象:

输出由000000变为000001,000010,000011,000100,001000,001001,001010,001011,001100,010001,010000,010010,010011,010100,011000,011001,011010,011011,011100,100000,100001,100010,100011,100100,最终又回到000000,实现一次进位。 二.74LS161构成的24位计数器 方法:运用多次置零法 用两片74LS161构成了24位计数器,两片计数器的时钟信号都由方波电压源提供,第一片芯片的Q3和第二片芯片的Q0通过与非门,构成两个74LS161的LOAD信号,第一片的CO接第二片的ENT,其他ENT和ENP接Vcc(5v)。输出接白炽灯。 电路图: 实验现象:以下为1—24的计数过程

三.74LS194构成的8位双向移位寄存器 方法:通过两片194级联,控制MA,MB的值,来控制左右移动 实验电路由两片74LS194芯片构成。两个Ma接在一起,两个Mb接在一起,第一片的Dr,第二片的Dl,分别通过开关接到Vcc(5v)上。第一片的Q3接到第二片的Dr,第二片的Q0接到第一片的Dl。8个输出端分别接白炽灯。 实验电路:

移位运算器实验报告

移位运算器实验报告 移位运算器实验报告 移位运算器 实验报告 课程名称: 计算机组成原理 姓名/学号: 实验名称: 算术逻辑运算专业: 软件工程班级: 软件工程班指导教师: 实验日期: 2011年 10月 26日 实验成绩: 批阅教师签字: 第 1 页共 4 页 移位运算器实验报告 一、实验目的 , 验证移位控制的组合功能 二、实验设备 , 1、TDN,CM,组成原理实验仪一台 , 2、导线若干 三、实验原理 , 利用移位发生器(74LS299)、时序脉冲T4、信号控制使能端299-B、电平控制信号 AR及S0 S1 M控制其功能状态。如上图所示为移位控制电路.其中使用了一片74L

S299作为移位发生器,其8位输入/输出端可连接至内部总线。74LS299移位器的片选 控制信号为299,B,在低电平时有效。T4为其控制脉冲信号,由“W/R UNIT”单元 中的T4接至“STATE UNIT”单元中的单脉冲发生器KK2上而产生,S0、S1、M 作为移 位控制信号。 第 2 页共 4 页 移位运算器实验报告 四、实验内容 , 分别将理论值(每种位移进行三次)填入表中(初始值为5A),向299置数(置成5A

(01011010))。 , 设置S1、 S0、 M、299-B的状态,观察并记录移位结果(F、CY)。 F(三次移位结果) CY 299-B S1 S0 M 功能理论值实验值理论值实验值任意 0 0 0 保持 01011010 1 00101101 0 0 1 0 0 循环右移 10010110 1 01001011 0 10101101 0 带进位循环0 1 0 1 01010110 1 右移 10101011 0 10110100 0 0 0 1 0 循环左移 01101001 1 11010010 0 10110101 0 带进位循环0 0 1 1 01101010 1 左移 11010101 0 任意 1 1 任意装数 01011010 1 实验步骤: 1. 仔细查线无误后,接通电源。 2. 向移位寄存器装数。 <1> 拨动输入开关形成任意二进制数(注意形成的数据要能明显区分各位)。 <2> 使SWITCH UNIT单元中的开关SW-B=0,打开数据输入三态门。 <3> 使S0=1、S1=1,并按动微动开关KK2,则将二进制数装入移位寄存器。 <4> 使SW-B=1,关闭数据输入三态门。 3. 移位运算操作。参照“移位控制电路功能表”的内容,先将S1、S0和299-B置为 0、0和0,检查移位寄存器单元装入的数是否正确,然后通过改变S0、S1、M 的状 态,并按动微动开关KK2,观察移位的结果。 第 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、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验预习要求 1、复习有关寄存器及串行、并行转换器有关内容。 2、查阅CC40194、CC4011及CC4068 逻辑线路。熟悉其逻辑功能及引脚排列。 3、在对CC40194进行送数后,若要使输出端改成另外的数码,是否一定要使寄存器清零? 4、使寄存器清零,除采用R C输入低电平外,可否采用右移或左移的方法?可否使用并行送数法?若可行,如何进行操作? 5、若进行循环左移,图6-4接线应如何改接? 6、画出用两片CC40194构成的七位左移串 /并行转换器线路。 7、画出用两片CC40194构成的七位左移并 /串行转换器线路。 三、实验设备及器件 1、+5V直流电源 2、单次脉冲源 3、逻辑电平开关 4、逻辑电平显示器 5、CC40194×2(74LS194)CC4011(74LS00) CC4068(74LS30) 四、设计方法与参考资料 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图6-1所示。 其中D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端; 入端,S L为左移串行输入端;S1、S0为操作模式控制端;R

计算机组成原理移位寄存实验报告

计算机组成原理实验二 移位寄存实验 一、实验目的: 1、了解移位寄存器的硬件电路,验证移位控制与寄存的组合功能。 2、利用寄存器进行数据传输。 二、实验要求: 实现寄存器移位操作,了解通用寄存器的运用。 三、实验原理: 移位运算实验原理图 移位运算实验原理如图所示,使用了一片74LS299作为移位发生

器,其八输入/输出端以排针方式和总线单元连接。299—B信号控制其使能端,T4时序为其时钟脉冲,实验时将“W/R UNIT”中的T4接至“STATE UNIT”中的KK2单脉冲发生器,由S0、S1、M控制信号控制其功能状态,其列表如下: 299—B S 1 S 0 M 功能 0 0 0 任意保持 0 1 0 0 循环右移 0 1 0 1 带进位循环右移 0 0 1 0 循环左移 0 0 1 1 带进位循环左移 任意 1 1 任意装数 四、实验连接: 1.运算器控制信号连接: S0,S1,M,LDCZY,LDR0,/SW-B,/SR-B,/R0-B 2.完成连接并检查无误后接通电源。 五、实验仪器状态设定: 在闪动的“P.”状态下按动“增址”命令键,使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态。 五、实验项目: (一)移位寄存器置数 首先置CBA=000,然后按下面流程操作: 数据开关(01101011)三态门置数 (01101011) 三态门

[CBA=001] [S0=1,S1=1] [CBA=111] [ “按STEP” ] (二)寄存器移位 置CBA=001并输入数据,然后置CBA=111,参照实验原理中的移位寄存器控制特性表改变S0、S1、M,按动“单步”命令键,实验发现数据移位正确。 (三)移位结果寄存 我们选取R0,把移位寄存器移位后的内容寄存到通用寄存器。 在移位操作后保持CBA=111,S0=0,S1=0,然后令LDR0=1,再按动“单步”命令键,完成移位结果保存。 (四)移位结果读出 置CBA=100,总线指示灯显示R0内容,与上步中存的数一致。 六、实验总结: 通过本次实验的数据和理论分析进行比较、验证,我们验证了移位控制与寄存的组合功能,并熟悉了移位寄存器的数据传输方式。

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

一、基本模型机的设计与实现 (一)实验目的: 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号“取址”微指令,启动程序运-

计算机组成原理实验-运算器实验报告

1.逻辑运算 (1)S3S2S1S0=0000时,F=A,例如:当A=00010101,B=01101001时 F=00010101; 当A=01011000时,B=01011110时 F=01011000 (2)S3S2S1S0=0001时,F=B,例如: 当A=10110111,B=01110010时 F=01110010 当A=11100011,B=01010110 F=01010110 (3)S3S2S1S0=0010时,F=AB。例如:当A=10110010,B=10010111时 F=10010010 当A=11000011,B=00111100时 F=00000000 (4)S3S2S1S0=0011时,F=A+B。例如:当A=00110101,B=11001010时, F=11111111 当A=01011011,B=11000101时 F=11011111 (5)S3S2S1S0=0100时,F=/A。例如:

当A=00110100,B=11010010时, F=11001011 当A=01001111,B=10100101时 F=10110000 2.移位运算 (1)S3S2S1S0=0101时,F=A逻辑右移B(取低三位)位。例如: 当A=01000101,B=00000010时, F=00010001 当A=01011011,B=00000101时 F=00000010 (2)S3S2S1S0=0110时,F=A逻辑左移B(取低三位)位。例如: 当A=00110101,B=00000011时, F=10101000 当A=01101011,B=00000001时 F=11010110 (3)S3S2S1S0=0111时,F=A算术右移B位。例如:当A=01110101,B=00000010时, F=00011101 当A=01000111,B=00000101时

计算机组成原理实验

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

一、实验准备和实验注意事项 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为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。

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

一.实验目的及要求 (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 二.实验模块及实验原理 本实验的原理如图1-1-1所示。 运算器部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B ,三个部件同时接受来自 A 和B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部

件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD 中。 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。图中显示的是一个4X4 的矩阵(系统中是一个8X8 的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连, 而没有同任何输入相连的则输出连接0 。 (2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4 位矩阵中使用‘右1 ’和‘左 3 ’对角线来实现右循环 1 位。 (3) 对于未连接的输出位,移位时使用符号扩展或是0 填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。 运算器部件由一片CPLD 实现。ALU的输入和输出通过三态门74LS245 连到CPU 总线上,另外还有指示灯标明进位标志FC和零标志FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘’,表示这两根排针之间是连通的。图中除T4和CLR ,其余信号均来自于ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR 都连接至CON 单元的CLR 按钮。T4由时序单元的TS4 提供(时序单元的介绍见附录二),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。 暂存器A 和暂存器B 的数据能在LED 灯上实时显示,原理如图1-1-3所示(以A0为例,其它相同)。进位标志FC、零标志FZ和数据总线D7…D0的显示原理也是如此。 ALU和外围电路的连接如图1-1-4所示,图中的小方框代表排针座。 运算器的逻辑功能表如表1-1-1所示,其中S3 S2 S1 S0 CN 为控制信号,FC 为进位标志,FZ为运算器零标志,表中功能栏的FC、FZ表示当前运算会影响到该标志。

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

最新实验6-移位寄存器功能测试及应用-(实验报告要求)

实验六 移位寄存器功能测试及应用 --实验报告要求 一. 实验目的(0.5分) 1. 熟悉寄存器、移位寄存器的电路结构和工作原理。 2. 掌握中规模4位双向移位寄存器逻辑功能及使用方法。 3. 熟悉移位寄存器的应用。 二. 实验电路 D0、D1 、D2 、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;SR 为右移串行输入端,SL 为左移串行输入端;S1、S0 为操作模式控制端;R C 为直接无条件清零端;CP 为时钟脉冲输入端。 三 图2 CC40194/74LS194 逻辑功能测试 图1 CC40194/74LS194的逻辑符号及引脚功能 图3 环形计数器

四. 实验原理(0.5分) 1.移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用。 74LS194有5种不同操作模式:即并行送数寄存,右移(方向由Q0-->Q3),左移(方向由Q3→Q0),保持及清零。 2.移位寄存器应用很广,可构成移位寄存器型计数器:顺序脉冲发生器;串行累加器;可用数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计数器和数据的串、并行转换。 (1)环行计数器 把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位。 (2)实现数据、并行转换器 a)串行∕并行转换器 串行∕并行转换器是指串行输入的数码,经转换电路之后变换成并行输出。 b)并行∕串行转换器 并行∕串行转换器是指并行输入的数码经转换电路之后,换成串行输出。 五. 实验内容与步骤(共1分) 1. 2.测试74LS194的逻辑功能(0.5分) (1)在实验箱上选取一个16P插座,按定位标记插好74LS194集成块。 (2)将实验挂箱上+5V直流电源接40194的16脚,地接8脚。S1、S0、SL、SR、D0、D1、D2、D3分别接至逻辑电平开关的输出插口;Q0、Q1、Q2、Q3接至发光二极管。CP端接单次脉冲源。 (3)改变不同的输入状态,逐个送入单次脉冲,观察寄存器输出状态,记录之。 a)清除:令=0,其它输入均为任意态,这时寄存器输出Q0、 Q1、 Q2 、Q3应均为0。清除后,至=1。 b)送数:令=S1=S0=1 ,送入任意4位二进制数,如D0、D1、D2、D3=1010,加CP脉冲,观察CP=0、CP由1→0、CP=1三种情况下寄存器输出状态的变化,观察寄存输出状态变化是否发生在CP脉冲的上升沿。 (c)右移:清零后,令=1, S1=0 S0=1,由右移输入端S R送入二进制数码如0100,由CP端连续加4个脉冲,观察输出情况,记录之。 (d)左移:先清零或予至,再令=1 S1=1,S0=0,由左移输入端S L送入二进制数码

2015计算机组成原理实验报告

课程名称:计算机组成原理专业班级: 学号:201200 学生姓名: 指导教师:闫宏印 2015年06月29日

实验一运算器 【实验目的与要求】 1.掌握运算器的组成、功能及工作原理; 2.验证由74LS181组成的16位ALU的功能,进一步验证带初始进位的ALU的功能; 3. 熟悉运算器执行算术运算操作和逻辑运算操作的具体实现过程。 【实验设备和环境】 本实验使用EL-JY-II型计算机组成原理实验挂箱一组连接线。 【实验内容】 一.实验原理 算术逻辑单元ALU是运算器的核心。集成电路74LS181是4位ALU,四片74LS181以串行方式构成16位运算器。它可以对两个16位二进制数进行多种算术或逻辑运算,74LS181 有高电平和低电平两种工作方式,高电平方式采用原码输入输出,低电平方式采用反码输入输出,这里采用高电平方式。 三态门74LS244作为输出缓冲器由ALU-G信号控制,ALU-G 为“0”时,三态门开通,此时其输出等于其输入;ALU-G 为“1”时,三态门关闭,此时其输出呈高阻。 四片74LS273作为两个16数据暂存器,其控制信号分别为LDR1和LDR2,当LDR1和LDR2 为高电平有效时,在T4脉冲的前沿,总线上的数据被送入暂存器保存。 运算器的结构见图1-1:

图1-1 运算器实验原理 74LS181功能见表1-1,其中符号“+”表示逻辑“或”运算,符号“*”表示逻辑“与”运算,符号“/”表示逻辑“非”运算,汉字“加”表示算术加运算,汉字“减”表示算术减运算。 表1-1 74LS181功能表

74LS181的功能控制条件由S3、S2、S1、S0、M、Cn决定。高电平方式的74LS181的管脚分配和引出端功能符号见图1-2。 图1-2 74LS181的管脚分配和引出端功能 二.实验步骤 1. 实验连线 按图1-3接线图接线,连线时应注意:为了使连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

计算机实验

实验一十六位机运算器实验 专业:计算机科学与技术班级:学号:************ 姓名:张三丰实验地点:工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的结果。

相关文档
相关文档 最新文档