西南交大 实验8 指令存储器与取指令部件的设计

合集下载

西南交大计算机实验报告

西南交大计算机实验报告

计算机程序设计基础(C++)实验报告信息学院计算机教育中心二零一四年三月实验_0验报告教学班级:___ 7班__ 学生学号:__20133936_学生姓名:____葛劲松实验日期:_____2014.3.11______ 实验地点:______7307___(机房) 指导教师签名:___王威_______ 实验成绩:___________一、实验目的1.熟悉VS2010 集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;return 0;}三、实验结果1.:运行结果2.实验__1_实验报告一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算,以及输入与输出方法。

西南交大C++实验八

西南交大C++实验八

实验__8__实验报告教学班级:02 学生学号:学生姓名:实验日期:2014.5.14 实验地点:X7308(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。

二、实验任务1. 使用插入排序法将键盘输入的无序数列按升序排列。

思路分析与算法:1)从第一个元素开始,该元素可以认为已经被排序。

2)取出下一个元素,在已经排序的元素序列中从后向前扫描。

3)如果该元素(已排序)大于新元素,将该元素移到下一位置。

4)重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。

5)将新元素插入到该位置中。

6)重复步骤2。

2.选举猴王问题:N 只猴子围成一圈,顺序编号1至N。

从编号为1的猴子开始依次报数,报数m 的猴子就退出圈子,接着再报,报数m 的猴子再退出圈子,依次继续下去,圈子最后所剩的一只猴子为猴王,它原先的编号是几?思路分析与算法:1)使用一维数组存放猴子从1到n的编号,定义参加选举猴王的最多猴子数为40。

2)i为每次循环时计数变量,k为按1,2,3,…m报数时的计数变量,t表示退出的猴子数。

依次将退出的猴子对应的数组元素置0,直到只剩下一只猴子。

3)找出数组中不为0的a[i],输出该数。

三、实验结果(源程序+ 注释)1.#include<iostream>using namespace std;void main (){const int M=20;int a[M],n,temp,i,k;cout<<"输入将要排序的有几个数:"<<endl; cin>>n;cout<<"输入将要排序的数分别为a:"<<endl; for(i=0;i<n;i++)cin>>a[i];for(i=1;i<n;i++){ k=i; temp=a[i];while(k>0&&temp<a[k-1]){a[k]=a[k-1]; k--; }a[k]=temp;}for(i=0;i<n;i++)cout<<a[i]<<" ";system("pause");}2.#include"stdafx.h"#include<iostream>using namespace std;void main(){ int const N=100;int n;int m;int a[N]; int i,k,t;cout<<"请输入参加选举的猴子数目:"; cin>>n;cout<<"输入报数到就退出:";cin>>m;for(i=0;i<n;i++)a[i]=i+1;i=0;k=0;t=0;while(t<n-1){if (a[i]!=0) k++;if(k==m){a[i]=0;k=0;t++;}i++;if(i==n)i=0; }i=0;while(a[i]==0) i++;cout<<"剩下第<<a[i]<<"个猴子<<endl;system("pause");}。

西安交通大学计算机组成原理实验报告

西安交通大学计算机组成原理实验报告

西安交通大学计算机组成原理实验报告姓名:***班级:物联网**学号:实验一存储器的访问与实现一、实验目的1、理解计算机主存储器的分类及作用;2、掌握ROM、RAM的读写方法。

二、实验原理存储器按存取方式分,可分为随机存储器和顺序存储器。

如果存储器中的任何存储单元的内容都可随机存取,称为随机存储器,计算机中的主存储器都是随机存储器。

如果存储器只能按某种顺序存取,则称为顺序存储器,磁带是顺序存储器,磁盘是半顺序存储器,它们的特点是存储容量大,存取速度慢,一般作为外部存储器使用。

如果按存储器的读写功能分,有些存储器的内容是固定不变的,即只能读出不能写入,这种存储器称为只读存储器(ROM);既能读出又能写入的存储器,称为随机读写存储器(RAM)。

实际上真正的ROM基本上不用了,用的是光可擦除可编程的ROM(EPROM)和电可擦除可编程的ROM(EEPROM)。

EEPROM用的越来越多,有取代EPROM之势,比如容量很大的闪存(FLASH)现在用的就很广泛,常说的U盘就是用FLASH做的。

按信息的可保存性分,存储器可分为非永久性记忆存储器和永久性记忆存储器。

ROM、EPROM、EEPROM都是永久记忆存储器,它们断电后存储内容可保存。

RAM则是非永久性记忆存储器,断电后存储器中存储的内容丢失。

随机读写存储器类型随机存储器按其元件的类型来分,有双极存储器和MOS存储器两类。

在存取速度和价格两方面,双极存储器比MOS存储器高,故双极存储器主要用于高速的小容量存储体系。

在MOS存储器中,根据存储信息机构的原理不同,又分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。

静态随机存储器采用双稳态触发器来保存信息,只要不断电,信息就不会丢失;动态随机存储器利用记忆电容来保存信息,使用时只有不断地给电容充电才能使信息保持。

静态随机存储器的集成度较低,功耗也较大;动态随机存储器的集成度较高,功耗低。

现在计算机中,内存容量较大,常由动态随机存储器构成。

15秋西南交大《汇编语言程序设计》在线作业一答案

15秋西南交大《汇编语言程序设计》在线作业一答案

西南交《汇编语言程序设计》在线作业一一、多选题(共 10 道试题,共 20 分。

)1. 磁盘一般由那两部分组成(). 系统区. 功能区. 数据区. 程序区正确答案:2. 算术指令用来执行算术运算,他们中有那两类(). 双操作数. 单操作数. 三操作数. 多操作数正确答案:3. 汇编程序的主要功能有(). 检查源程序. 测出源程序中的语法错误,并给出出错信息. 产生源程序的目标程序,并可给出列表文件. 展开宏指令正确答案:4. 80X86指令系统可以分为以下几种(). 数据传输指令. 串处理指令. 算术指令及逻辑指令. 控制转移指令及处理机控制指令正确答案:5. 软件中断通常由那三种情况引起(). 由中断指令INT引起. 由于PU的某些错误而引起. 为调试程序设置的中断. 各种外部设备的中断正确答案:6. 循环程序由那三部分组成(). 设置循环的初始状态. 循环体. 循环控制部分. 循环标识正确答案:7. 操作数可以是(). 常数. 寄存器. 变量. 表达式正确答案:8. 在程序中调用子程序指令有(). LL. RET. SU. ZF正确答案:9. 为运行汇编语言程序至少要在磁盘上建立以下文件(). 编辑程序. 汇编程序. 连接程序. 调试程序正确答案:10. 计算机的指令由那两部分组成(). 操作码. 操作平台. 操作数. 操作范围正确答案:西南交《汇编语言程序设计》在线作业一二、单选题(共 20 道试题,共 40 分。

)1. 下面的数据传送指令中,错误的操作是()。

. MOV SS:[X+I],1000H. MOV X,1000H. MOV WOR PTR[X],1000H. MOV S,2000H正确答案:2. 某数据段如下: T SEGMENT ORG 20H X 12H Y W 789H T ENS 则Y 单元的偏移址是( )。

. 0. 20H. 21H. 12H正确答案:3. T SEGMENT 1 32 UP(?) 2 W 1456H,789H 3 W 2 T ENS … MOV X, 3 上述指令执行后,X 中的内容是( )。

计算机组成原理实验参考答案(西南交大)

计算机组成原理实验参考答案(西南交大)

[原创]西南交通大学计算机组成实验参考答案注1、引脚分配依照EP3C40F780C8芯片注2、一定要参照实验指导书阅读此文实验一:多路数据选择器的设计f=((~sel)a)+((sel)b)当sel=0时,f=a,否则f=b。

引脚分配参考:a[3:0] AH12 AF14 AA8 AB8b[3:0] AF12 AG12 AA10 U8f[3:0] E24 F22 E22 F21sel: AC5实验二基于原理图方式的3-8译码电路的设计f0=(~en)+(~a)(~b)(~c)f1=(~en)+(~a)(~b)cf2=(~en)+(~a)b(~c)f3=(~en)+(~a)bcf4=(~en)+a(~b)(~c)f5=(~en)+a(~b)cf6=(~en)+ab(~c)f7=(~en)+abcen为使能端,低电平有效,高电平时输出全为1。

引脚分配参考:a: AH12,b: AF14,c: AA8,en: AC5f[7:0] F24 H24 H23 L23 L24 M24 J22 AE8实验三四位加法器设计实验思路:用Verilog HDL语言编写一位全加器,再用原理图方式用四个全加器组合实现四位加法器。

Adder.vmodule Adder(a, b, cin, cout, sum);input a, b, cin;output cout, sum;assign {cout, sum}=a+b+cin; endmodule原理图:{cout, sum}=a+b+cincin为进位输入,cout为进位输出。

引脚分配参考:a[3:0] AH12 AF14 AA8 AB8b[3:0] AF12 AG12 AA10 U8sum[3:0] E24 F22 E22 F21cin: AC5,cout: F24实验四:七段LED数码管显示译码器设计本实验使用Verilog HDL实现。

module Exp4(f, clk, rst, in, out, sel);input [15:0]in; //输入input f, clk, rst; //计数开关,时钟,置零开关output reg[7:0]out; //数码管输出output reg[2:0]sel; //数码管3-8译码器输出reg[15:0]counter;reg[3:0]data;reg clk_alt;reg[9:0]l;//change frequency 变频段always @(posedge clk)beginif(l>=1023)l=0;else l=l+1;clk_alt=l[2];end//select 选择在哪一个数码管显示always @(posedge clk)beginsel=sel+1;if(sel>=4)sel=0;case(sel)0:data=counter[3:0];1:data=counter[7:4];2:data=counter[11:8];3:data=counter[15:12];endcaseend//count and reset 计数和清零always @(posedge clk_alt or posedge rst)beginif (rst==1) counter=0;else if (f==1) counter=in;else counter=counter+1;end//translate 译码段,此处可以使用二进制或十六进制,后面的实验同,不再赘述。

计算机组成原理实验八简单模型计算机实验

计算机组成原理实验八简单模型计算机实验

计算机组成原理实验八简单模型计算机实验关键信息项:1、实验目的2、实验设备3、实验原理4、实验步骤5、数据记录与分析6、注意事项7、故障处理8、实验结果评估标准11 实验目的本实验旨在通过构建和操作简单模型计算机,深入理解计算机组成原理中的核心概念,包括数据存储、运算处理、指令执行等,培养学生的实际动手能力和对计算机系统的综合理解能力。

111 具体目标1111 掌握简单模型计算机的基本结构和工作原理。

1112 熟悉各种指令的编码和执行过程。

1113 能够运用所学知识设计和实现简单的计算任务。

12 实验设备121 硬件设备计算机主机、实验箱、连接线等。

122 软件工具特定的模拟软件、编程环境等。

13 实验原理131 模型计算机结构包括运算器、控制器、存储器、输入设备和输出设备等主要部件,以及它们之间的连接和协同工作方式。

132 指令系统定义了各种操作指令的格式、功能和编码方式。

133 数据存储与传输说明数据在存储器中的存储方式和在各部件之间的传输机制。

14 实验步骤141 连接实验设备按照正确的方式将计算机主机与实验箱等设备进行连接,并确保连接稳定可靠。

142 启动软件工具打开相应的模拟软件和编程环境,进行初始化设置。

143 设计指令序列根据实验要求,设计一系列的指令来完成特定的计算任务。

144 输入指令到模型计算机通过编程环境将指令输入到模型计算机的存储器中。

145 启动模型计算机运行设置相关参数,启动模型计算机执行指令序列。

146 观察运行过程和结果密切观察模型计算机在执行指令过程中的各种状态变化,以及最终的输出结果。

15 数据记录与分析151 记录实验过程中的关键数据包括指令的执行时间、存储器的状态变化、运算结果等。

152 对数据进行分析对比预期结果,分析实验数据的准确性和合理性,找出可能存在的偏差和错误原因。

16 注意事项161 设备操作规范严格按照设备的操作说明进行连接和使用,避免因不当操作造成设备损坏。

西安交通大学操作系统原理课件第八章

西安交通大学操作系统原理课件第八章
存储空间是物理地址的集合
– Physical address • An address viewed by the physical memory
地址重定位
将程序装入到与其地址空间不一致的物理空间,所引 起的一系列地址变换过程。
静态地址重定位
• 在装入一个作业时,把作业中的指令地址全部转换为绝对地址, 在作业执行过程中就无须再进行地址转换工作。
8.2 存储器管理方式
虚拟存储管理方式:满足用户对大容量内存的需要,提 高内存利用率。 – 请求分页管理方式 – 请求分段管理方式 – 请求段页式管理方式
8.2.1Contiguous Allocation
Main memory usually divided into two partitions: (主存通常被分为两部分) – Resident operating system, usually held in low memory with interrupt vector.(为操作系统保 留的部分,通常与中断矢量保存在内存低端。) – User processes then held in high memory.(用 户进程保存在内存高端)
Memory-Management Unit (MMU)
内外存间的数据交换
overlay覆盖
– 由用户程序控制 – 要求用户清楚地了解程序的结构,并指定各程序段调入内存
的先后次序,它是一种早期的主存扩充的方式
swapping交换
– 由操作系统控制 – 利用外存空间(进程交换区),通过对进程实体的整体交换,
固定分区(大小相同)
Operating System 8M 2M 4M 6M 8M
8M
12 M

西南交大微机

西南交大微机

西南交大微机全书共分9章,内容安排上注重系统性、先进性与实用性,各章前后呼应,着眼于如何设计一个实用的微型机系统。

前四章介绍了微型计算机组成的一般概念及必备知识,以8086/8088为蓝本介绍了微型机系统的组成原理、体系结构、编程模型、工作模式、操作时序、寻址方式、指令系统、汇编语言程序设计方法,并介绍了从80x86到pentium系列的寄存器及指令的扩充;第五章讨论存储器的原理和使用,并对内存条及闪速存储器作了适当介绍:第六、七章论述中断系统和i/o接口技术,重点分析了中断控制器8259a、计数器/定时器8253/8254、通用并行接口82c55、通用串行接口16c550、dma控制器8237a、串行a/d转换器max1148及i2c总线模/数转换器ads1100,逐一讲解了各关键接口部件的原理和应用,并以cpld/fpga来实现这些器件的部分功能;第八章以pentium 为对象介绍现代微机系统,着重对存储管理技术、虚拟存储技术、流水线技术以及32位微型机系统的高速缓存技术作了详尽的阐述,并在此基础上对pentium的技术特点作了说明和总结;第九章论述汇编语言高级编程,尤其是c/c++与汇编混合编程技术,可视为对前面所学知识的总结和提高。

本书可作为大专院校电类非计算机专业和其他相近专业本科生的教材,也可作为计算机ⅲ级考试的培训教材,还可供从事微型计算机系统设计和应用的技术人员自学和参考。

第一章微型计算机基础第二节微型计算机的数制及其转换第三节非数值数据的编码方法第四节微型计算机的二进制数运算第五节原码、补码、反码及其适当的运算法则第六节数的定点与浮点表示第二章8086微处理器及其系统结构第一节8086微处理器的结构第二节80x86寄存器的拓展与扩展第三节8086微处理器引脚的功能第四节8086系统的存储器非政府第五节8086的时钟和总线周期第六节ibmpc/xt微机的基本布局第三章8086/8088的寻址方式和指令系统第一节指令的基本格式第二节8086/8088的寻址方式第三节8086/8088指令系统第四节80x86的寻址方式及新增的指令第五节中断指令及dos功能调用第四章汇编语言程序设计第二节汇编语言程序格式第三节程序块定义伪指令第四节masm中的表达式和运算符第五节伪指令及宏指令第六节汇编语言程序设计方法第五章存储器第一节存储器分类第二节随机存取存储器ram第三节半导体只读存储器rom第四节存储器的扩展第五节微机常用操作系统的内存管理第六章中断系统第一节中断的基本概念第二节8086/8088中断系统第三节8259a可编程中断控制器第七章基本输入输出接口第一节微型计算机USB详述第二节8086/8088cpu与外设问的数据交换方式第三节82c55循序i/oUSB第四节可编程计数器/定时器8253/8254第五节异步以太网通信及其可编程USB芯片16c550第六节串行a/d转换器及其接口第七节dma控制器8237a第八节微机外围接口电路的cpld/fpga实现习题与思考题第八章现代微处理器及其系统结构第一节现代微处理器的内部结构第二节现代微机的基本结构第三节pci总线第九章汇编语言高级编程第一节内存驻留及时钟显示程序第二节三窗口全屏幕输出程序第四节程序中运行另一个程序的程序第五节程序中继续执行dos命令的程序第六节如何加密/解密数据文件第七节fortran调用汇编语言子程序第八节pasca1和汇编语言的连接第九节c/c++与编订混合编程技术第十节彩色动态图形程度第三章aascii码点的表明输入码第三章b8086/8088指令系统一览表第三章c中断向量地址表中附录ddos功能调用第三章ebios中断调用附录f调试程度debug的主要命令参考文献。

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

实验8 指令存储器与取指令部件的设计
西南交大计算机组成原理实验(代码)
实验要求:建立256*16的指令存储器ROM,将它关联到元件IPM-Rom,有PC 值决定存储器地址,PC有清零,置数,自动加一,自动减一功能,并将指令输出到数码管显示。

实验原理:建立内存文件,256代表内存地址是8位,16代表内存数据是16位实验代码:
PC:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PC is
port(clk,reset,load,add:in std_logic;
inn:in std_logic_vector(7 downto 0);
output:buffer std_logic_vector(7 downto 0));
end;
architecture one of PC is
begin
process(clk)
begin
--wt<=load&add;
if clk'event and clk='1' then
if reset='1' then output<="00000000";
else if load='1' then output<=inn;
else if add='1' then output<=output+1;
else output<=output-1;
end if;
end if;
end if;
end if;
end process;
end;
FRQ:用于分频
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FRQ is
port(clk_in:in std_logic;
clk_out:out std_logic);
end;
architecture one of FRQ is
signal temp:std_logic_vector(2 downto 0);
begin
process(clk_in)
begin
if clk_in'event and clk_in='1' then
temp<=temp+1;
clk_out<=temp(2);
end if;
end process;
end;
IR:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity IR is
port(clk1,clk2,aadd:in std_logic;
input:in std_logic_vector(15 downto 0);
sel:buffer std_logic_vector(2 downto 0);
outadd:out std_logic;
led7:out std_logic_vector(7 downto 0));
end;
architecture one of IR is
signal sel_temp:std_logic_vector(2 downto 0);
signal data:std_logic_vector(3 downto 0);
begin
process(clk1,clk2)
begin
if clk1'event and clk1='1' then
if aadd='1' then outadd<='1';
else outadd<='0'; end if;
end if;
if clk2'event and clk2='1' then
sel_temp<=sel_temp+1;
if sel_temp>="011" then sel_temp<="000"; end if;
sel<=sel_temp;
case sel_temp is
when"000"=>data<=input(15 downto 12);
when"001"=>data<=input(11 downto 8);
when"010"=>data<=input(7 downto 4);
when"011"=>data<=input(3 downto 0);
when others=>null;
end case;
end if;
case data is
WHEN "0000"=> led7<="00111111";--0
WHEN "0001"=> led7<="00000110";--1
WHEN "0010"=> led7<="01011011";--2
WHEN "0011"=> led7<="01001111";--3
WHEN "0100"=> led7<="01100110";--4
WHEN "0101"=> led7<="01101101";--5
WHEN "0110"=> led7<="01111101";--6
WHEN "0111"=> led7<="00000111";--7
WHEN "1000"=> led7<="01111111";--8
WHEN "1001"=> led7<="01101111";--9
WHEN "1010"=> led7<="01110111";--10
WHEN "1011"=> led7<="01111100";--11
WHEN "1100"=> led7<="00111001";--12
WHEN "1101"=> led7<="01011110";--13
WHEN "1110"=> led7<="01111001";--14
WHEN "1111"=> led7<="01110001";--15
WHEN OTHERS =>NULL;
end case;
end process;
end;
原理图:
内存文件:
引脚锁定:。

相关文档
最新文档