文档库 最新最全的文档下载
当前位置:文档库 › 计算机设计与实践 CPU 代码(含19条指令)

计算机设计与实践 CPU 代码(含19条指令)

计算机设计与实践 CPU 代码(含19条指令)
计算机设计与实践 CPU 代码(含19条指令)

时钟管理模块

entity clk_ctrl is

port(

Clk:in std_logic;

Rst:in std_logic;

k:out std_logic_vector(3 downto 0)

);

end clk_ctrl;

architecture Behavioral of clk_ctrl is

signal tmp:std_logic_vector(3 downto 0);

begin

process(Clk,Rst,tmp)

begin

if Rst ='1' then --rst=1复位;

--k<="0000";

tmp<="0001";

elsif Clk='1' and Clk'event then

tmp(0)<=tmp(3);

tmp(3 downto 1)<=tmp(2 downto 0);

end if;

end process; k<=tmp;

end Behavioral;

取指模块

entity irget is

Port (

Rst : in STD_LOGIC;--复位;

Pcback : in STD_LOGIC_VECTOR (15 downto 0);--PC回写;

Pcbacka : in STD_LOGIC;--PC回写允许;

k1 : in STD_LOGIC;--时钟控制;

Order : in STD_LOGIC_VECTOR (15 downto 0);--指令

Pcout : out STD_LOGIC_VECTOR (15 downto 0);--PC输出;

Orderout : out STD_LOGIC_VECTOR (15 downto 0);--指令输出;

AddrFlag : out STD_LOGIC);--访址标志

end irget;

architecture Behavioral of irget is

signal tmpPC: std_logic_vector (15 downto 0); --指令地址;

signal IR:std_logic_vector(15 downto 0);--指令寄存器;

begin

process(Rst,Pcback,Pcbacka,k1,order,tmpPc)

begin

if Rst='1' then

tmpPc<="0000000000000000";

elsif k1='1' then

Pcout<=tmpPc;

AddrFlag<='1';--第一个节拍高电平取指;

elsif Pcbacka='1' then

tmpPc<=Pcback;--pc回写允许

---end if;

--AddrFlag<='0';

else AddrFlag<='0';

end if ;

Orderout<=Order;--指令存入指令寄存器;

end process;

--Orderout<=IR;--得到指令,准备送往后面的模块;

end Behavioral;

运算模块

entity CPU_operation is

Port ( k2 : in STD_LOGIC;--时钟控制;

k3 : in STD_LOGIC;--时钟控制;第三个时钟高电平改变标志寄存器的值;

order : in STD_LOGIC_VECTOR (15 downto 0);--命令输入;

Pcin:in STD_LOGIC_VECTOR(15 downto 0);--pc输入;

Rst:in STD_LOGIC;--复??;

Rwb : in STD_LOGIC_VECTOR (7 downto 0);--回写数据;

Rwba : in STD_LOGIC;--回?丛市???高电平有效

Aluout : out STD_LOGIC_VECTOR (15 downto 0);--计算结果输出;

addr : out STD_LOGIC_VECTOR (15 downto 0)--内存?刂??

);

end CPU_operation;

architecture Behavioral of CPU_operation is

type reg is array(0 to 7) of std_logic_vector(7 downto 0);

signal sreg:reg;

signal F9:std_logic_vector(8 downto 0);--判断结果是否进位、是否为零;

signal sregflag:std_logic_vector(1 downto 0);--标志寄存器;

begin

process(Rwb,Rwba,k2,order,sreg,Pcin,sregflag,F9)

begin

if Rwba='1' then

sreg(conv_integer(order(10 downto 8)))<=Rwb;--回写

end if;

if Rst='1' then

sreg(7)<="00000000";

sreg(6)<="00000000";

F9(8)<='0';

end if;

if k2='1' then

case order(15 downto 11) is

when "00000"=>--mov Ri,Im

Aluout(7 downto 0)<=order(7 downto 0);

Aluout(15 downto 8)<="11111111";

when "00001"=>--LDA Ri,X

addr(15 downto 8)<=sreg(7);

addr(7 downto 0)<= order(7 downto 0);

Aluout(15 downto 8)<="11111111";

when "00010"=>--STA Ri,X

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8)));

Aluout(15 downto 8)<="11111111";

addr(7 downto 0)<=order(7 downto 0);

addr(15 downto 8)<=sreg(7);

when "00011"=>--mov Ri,Rj

Aluout(7 downto 0)<=sreg(conv_integer(order(2 downto 0)));

Aluout(15 downto 8)<="11111111";

when "00100"=>--mov Ri,(Rj)

addr(7 downto 0)<=sreg(conv_integer(order(2 downto 0)));

addr(15 downto 8)<=sreg(7);

when "00101"=>--mov Ri,[R7//R6+x]

addr<= sreg(7)&sreg(6)+order(7 downto 0);

when "00110"=>--Adc,Ri,Im

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8)))+order(7 downto 0)+sregflag(1);

F9<=('0'&sreg(conv_integer(order(10 downto 8))))+('0'&order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "00111"=>--Adc,Ri,Rj,Ri+Rj+Cy->Ri

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8)))+sreg(conv_integer(order(2 downto 0)))+sregflag(1);

F9<=('0'&sreg(conv_integer(order(10 downto 8))))+('0'&order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "01000"=>--SBB Ri,Im

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8)))-order(7 downto 0)-sregflag(1);

F9<=('0'&sreg(conv_integer(order(10 downto 8))))-('0'&order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "01001"=>--SBB Ri,Rj,Ri-Rj-Cy->Ri

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8)))-sreg(conv_integer(order(2 downto 0)))-sregflag(1);

F9<=('0'&sreg(conv_integer(order(10 downto 8))))-('0'& order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "01010"=>--AND Ri,Im

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8))) and order(7 downto 0);

F9(7 downto 0)<=(sreg(conv_integer(order(10 downto 8))))and(order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "01011"=>--AND Ri,Rj

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8))) and sreg(conv_integer(order(2 downto 0)));

F9(7 downto 0)<=sreg(conv_integer(order(10 downto 8))) and order(7 downto 0);

Aluout(15 downto 8)<="11111111";

when "01100"=>--OR Ri,Im

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8))) or order(7 downto 0);

F9(7 downto 0)<=(sreg(conv_integer(order(10 downto 8)))) or (order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "01101"=>--OR Ri,Rj

Aluout(7 downto 0)<=sreg(conv_integer(order(10 downto 8))) or sreg(conv_integer(order(2 downto 0)));

F9(7 downto 0)<=(sreg(conv_integer(order(10 downto 8)))) or (order(7 downto 0));

Aluout(15 downto 8)<="11111111";

when "10000"=>--JMP Addr

Aluout<=sreg(7)&order(7 downto 0);

when "10001"=>--JZ sign

if sregflag(0)='1' then

if order(7)='0' then Aluout<= Pcin+("00000000"&order(7 downto 0));

else Aluout <= Pcin+("11111111" & order(7 downto 0));

end if;

else

Aluout <= Pcin;

end if;

when "10010"=>--JC sign

if sregflag(1) = '1' then

if order(7)='0' then Aluout<= Pcin+("00000000"&order(7 downto 0));

else Aluout <= Pcin+("11111111" & order(7 downto 0));

end if;

else

Aluout <= Pcin;

end if;

when others=>NULL;

end case;

end if;

end process;

process(k3,F9,order)

begin

if rst = '1' then

sregflag(0)<='0';

sregflag(1)<='0';

elsif k3 = '1' then

case order(15 downto 12) is

when "0011" | "0101" | "0100" | "0110" =>

sregflag(1) <= F9(8);

if F9(7 downto 0) = "00000000" then

sregflag(0) <= '1';

else sregflag(0)<='0';

end if;

when "0111"=>

sregflag(0) <= order(11);

when others => null;

end case;

end if;

end process;

end Behavioral;

存储管理模块

entity CPU_Momery is

Port (

k3 : in STD_LOGIC;--时钟控制;

order : in STD_LOGIC_VECTOR (15 downto 0);--命令输入;

alu : in STD_LOGIC_VECTOR (15 downto 0);--计算结果输??;

datain : in STD_LOGIC_VECTOR (7 downto 0);--从内存读入的??;

dataout: out STD_LOGIC_VECTOR (7 downto 0);--存入内存的数;

Rtmp:out STD_LOGIC_VECTOR (15 downto 0);--数据输出;送向回写模块;

sta : out STD_LOGIC;--存数控制;高电平有效;

lda : out STD_LOGIC);--取数控制;高电平有效??

end CPU_Momery;

architecture Behavioral of CPU_Momery is

begin

process(k3,alu,order,datain)

begin

if k3='1' then --高电平操作;

case order(15 downto 11) is

when "00001"=>--取数;

lda<='1';

Rtmp(7 downto 0)<=datain;

when "00100"=>--取数;

lda<='1';

Rtmp(7 downto 0)<=datain;

when "00101"=>--取数;

lda<='1';

Rtmp(7 downto 0)<=datain;

when "00010"=>--存数;

sta<='1';

dataout<=alu(7 downto 0);

when others=>

Rtmp<=alu;--不访存;运算结果直接送下一个模块;

lda<='0';

sta<='0';

end case;

else

lda<='0';

sta<='0';

end if;

end process;

end Behavioral;

访存模块

entity CPU_ToMomery is

Port (

sta : in STD_LOGIC;--存数指令;

lda : in STD_LOGIC;--取数指令;

Addr: in STD_LOGIC_VECTOR(15 downto 0);--内存地址;

flag: in STD_LOGIC;--取指标志;

PCaddr: in STD_LOGIC_VECTOR(15 downto 0);--指令地址输入;

orderout:out STD_LOGIC_VECTOR(15 downto 0);--指令输出;

dataout : out STD_LOGIC_VECTOR (7 downto 0);--从内存中取出的数;

datain : in STD_LOGIC_VECTOR (7 downto 0);--需要存入内存的数;

ABUS : out STD_LOGIC_VECTOR(15 downto 0);--地址总线??

DBUS : inout STD_LOGIC_VECTOR(15 downto 0);--数据总线;

CS: out STD_LOGIC;--片选信号;低电平有效;

RD: out STD_LOGIC;--读信号;低电平有效;

WR: OUT STD_LOGIC; --写信号;低电平有????

nBHE:out std_logic;

nBLE:out std_logic

);

end CPU_ToMomery;

architecture Behavioral of CPU_ToMomery is begin

process(sta,lda,datain,DBUS,flag)

begin

if flag='1' then --取指令;

CS<='0';

RD<='0';

WR<='1';

nBHE<='0';

nBLE<='0';

ABUS<=PCaddr;

orderout<=DBUS;

DBUS<="ZZZZZZZZZZZZZZZZ";

elsif sta='1' then --存数访存;

CS<='0';

RD<='1';

WR<='0';

nBHE<='0';

nBLE<='0';

ABUS<=Addr;

DBUS(7 downto 0)<=datain;

DBUS(15 downto 8)<="11111111";

elsif lda='1' then --取数访存;

CS<='0';

RD<='0';

WR<='1';

nBHE<='0';

nBLE<='0';

ABUS<=Addr;

dataout<=DBUS(7 downto 0);

DBUS<="ZZZZZZZZZZZZZZZZ";

else

CS<='1';

RD<='1';

WR<='1';

nBHE<='1';

nBLE<='1';

DBUS<="ZZZZZZZZZZZZZZZZ";

end if;

end process;

end Behavioral;

回写模块

entity WriteBack is

port(

k4: in std_logic;--时钟控制;

order:in std_logic_vector(15 downto 0);--指令输入;

Pcin:in std_logic_vector(15 downto 0);--pc输入;

datain:in std_logic_vector(15 downto 0);--需要回写的数据,包括跳转指令的PC??

Pcback:out std_logic_vector(15 downto 0);--pc回写;

Pcbacka: out std_logic;--pc回写允许;

dataout:out std_logic_vector(7 downto 0);--回写数据输出;

dataA:out std_logic);--回写允许;

end WriteBack;

architecture Behavioral of WriteBack is

begin

process(k4,order,Pcin,datain)

begin

if k4='1' then

case order(15 downto 11) is

when "00000" =>--mov Ri,Im

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00001" =>--LDA

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00010"=>--STA

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='0';

when "00011"=>--mov Ri,Rj

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00100"=>--mov Ri,(Rj)

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00101"=>--mov Ri,[R7//R6+x] Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00110"=>--Adc Ri,Im

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "00111"=>--Adc,Ri,Rj

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01000"=>--Sbb,Ri,Rj

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01001"=>--Sbb RI,Im

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01010"=>--AND Ri,Im

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01011"=>--And Ri,Rj

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01100"=>--Or Ri,Im

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01101"=>--Or,Ri,Rj

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='1';

dataout<=datain(7 downto 0);

when "01110"=>--Clc

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='0';

when "01111"=>--STC

Pcbacka<='1';

Pcback<=Pcin+1;

dataA<='0';

when "10000"=>--Jmp Addr

Pcbacka<='1';

Pcback<=datain+1;

dataA<='0';

when "10001"=>--Jz sign

Pcbacka<='1';

Pcback<=datain+1;

dataA<='0';

when "10010"=>--Jc sign

Pcbacka<='1';

Pcback<=datain+1;

dataA<='0';

when others=>NULL;

end case;

else

Pcbacka<='0';

dataA<='0';

end if;

end process;

end Behavioral;

元件例化

entity CPU_main is

port(

RST:in std_logic;

CLK:in std_logic;

ABUS:out std_logic_vector(15 downto 0);

DBUS:inout std_logic_vector(15 downto 0);

nMREQ:out std_logic;

nRD:out std_logic;

nWR:out std_logic;

nBHE:out std_logic;

nBLE:out std_logic;

nABUS:out std_logic_vector(15 downto 0);

nDBUS:out std_logic_vector(15 downto 0);

IR:out std_logic_vector(15 downto 0);

Ti:out std_logic_vector(3 downto 0);

CS:OUT STD_LOGIC;

WR:OUT STD_LOGIC;

RD:OUT STD_LOGIC;

BH:OUT STD_LOGIC;

BL:OUT STD_LOGIC

);

end CPU_main;

architecture Behavioral of CPU_main is

component CPU_Momery is

port(

k3 : in STD_LOGIC;--时钟控制;

order : in STD_LOGIC_VECTOR (15 downto 0);--命令输入;

alu : in STD_LOGIC_VECTOR (15 downto 0);--计算结果输??;

datain : in STD_LOGIC_VECTOR (7 downto 0);--从内存读入的??;

dataout: out STD_LOGIC_VECTOR (7 downto 0);--存入内存的数;

Rtmp:out STD_LOGIC_VECTOR (15 downto 0);--数据输出;送向回写模块;

sta : out STD_LOGIC;--存数控制;高电平有效;

lda : out STD_LOGIC);--取数控制;高电平有效??

end component;

component CPU_ToMomer y is

port(

sta : in STD_LOGIC;--存数指令;

lda : in STD_LOGIC;--取数指令;

Addr: in STD_LOGIC_VECTOR(15 downto 0);--内存地址;

flag: in STD_LOGIC;--取指标志;

PCaddr: in STD_LOGIC_VECTOR(15 downto 0);--指令地址输入;

orderout:out STD_LOGIC_VECTOR(15 downto 0);--指令输出;

dataout : out STD_LOGIC_VECTOR (7 downto 0);--从内存中取出的数;

datain : in STD_LOGIC_VECTOR (7 downto 0);--需要存入内存的数;

ABUS : out STD_LOGIC_VECTOR(15 downto 0);--地址总线??

DBUS : inout STD_LOGIC_VECTOR(15 downto 0);--数据总线;

CS: out STD_LOGIC;--片选信号;低电平有效;

RD: out STD_LOGIC;--读信号;低电平有效;

WR: OUT STD_LOGIC; --写信号;低电平有????

nBHE:out std_logic;

nBLE:out std_logic

);

end component;

component CPU_operation is

port(

k2 : in STD_LOGIC;--时钟控制;

k3 : in STD_LOGIC;--时钟控制;第三个时钟高电平改变标志寄存器的值;

order : in STD_LOGIC_VECTOR (15 downto 0);--命令输入;

Pcin:in STD_LOGIC_VECTOR(15 downto 0);--pc输入;

Rst:in STD_LOGIC;--复??;

Rwb : in STD_LOGIC_VECTOR (7 downto 0);--回写数据;

Rwba : in STD_LOGIC;--回?丛市???高电平有效

Aluout : out STD_LOGIC_VECTOR (15 downto 0);--计算结果输出;

addr : out STD_LOGIC_VECTOR (15 downto 0)--内存?刂???

);

end component;

component WriteBack is

port(

k4: in std_logic;--时钟控制;

order:in std_logic_vector(15 downto 0);--指令输入;

Pcin:in std_logic_vector(15 downto 0);--pc输入;

datain:in std_logic_vector(15 downto 0);--需要回写的数据,包括跳转指令的PC??

Pcback:out std_logic_vector(15 downto 0);--pc回写;

Pcbacka: out std_logic;--pc回写允许;

dataout:out std_logic_vector(7 downto 0);--回写数据输出;

dataA:out std_logic--回写允许;

);

end component;

component irget is

port(

Rst : in STD_LOGIC;--复位;

Pcback : in STD_LOGIC_VECTOR (15 downto 0);--PC回写;

Pcbacka : in STD_LOGIC;--PC回写允许;

k1 : in STD_LOGIC;--时钟控制;

Order : in STD_LOGIC_VECTOR (15 downto 0);--指令

Pcout : out STD_LOGIC_VECTOR (15 downto 0);--PC输出;

Orderout : out STD_LOGIC_VECTOR (15 downto 0);--指令输出;

AddrFlag : out STD_LOGIC--访址标志

);

end component;

component clk_ctrl is

port(

Clk:in std_logic;

Rst:in std_logic;

k:out std_logic_vector(3 downto 0)

);

end component;

signal a,b,c,d,e:std_logic;

signal t:std_logic_vector(3 downto 0);

signal data7,data8,data9:std_logic_vector(7 downto 0);

signal data1,data2,data3,data4,data5,data6,data10,data11,data12:std_logic_vector(15 downto 0); signal u,v,w,x,y:std_logic;

begin

--irget:

--data1:回写的pc;

--data2:指令输入;

--data3: pc输出;

--data4:指令输出??

--a:PC回写允许;

--b:访??标志;

--operation:

--data9:回写数据;

--data5:Aluout

--data6:Addr输出;

--memory:

--data7:从内存读入的数;

--data8:存入内存??;

--data10:送往回写模块的数;

--c:存数控制

--d:取数控制,送? 么???块

--ToMemory:

--ABUS,DBUS

--CS RD WR;

--writeback:

--e回写数据允许;

--a回写pc允许;

u1: clk_ctrl port map(CLK, RST, t);

u2: irget port map(RST, data1, a, t(0), data2, data3, data4, b);

u3: CPU_operation port map(t(1),t(2),data4,data3,Rst,data9,e,data5,data6);

u4: CPU_Momery port map(t(2),data4,data5,data7,data8,data10,c,d);

u5: CPU_ToMomery port map(c,d,data6,b,data3,data2,data7,data8,data11,DBUS,u,v,w,x,y);

u6: WriteBack port map(t(3),data4,data3,data10,data1,a,data9,e);

IR<=data2;

Ti<=t;

nMREQ<=u;

CS<=u;

nRD<=v;

RD<=v;

WR<=w;

nWR<=w;

BH<=x;

nBHE<=x;

BL<=y;

nBLE<=y;

ABUS<=data11; nABUS<=data11;

nDBUS<=DBUS;

end Behavioral;

计算机程序设计实践

江苏科技大学 课程实践报告 设计题目: 计算机程序设计实践(VC++) 设计时间: 2015. 3.9 至2015. 3.16 学院: 数理学院 专业班级: 13级信息与计算科学1班 学生姓名: 陈明敏学号1340501101 指导老师: 华伟 2015年5月1日

一、 实践任务 任务一:试建立一个类SP ,求(,)123k k k k f n k n =++++ ,另有辅助函数power ()用 于求 n m 。具体要求如下。 (1)私有数据成员。 Int n ,k :存放公式中n 和k 的值。 (2)公有成员函数。 ①SP(int n1,int k1):构造函数,初始化成员数据n 和k 。 ②int power(int m,int n):求n m 。 ③int fun():求公式的累加和。 ④void show():输出求得的结果。 二、源程序清单 #include class SP{ private: int n,k; public: SP(int n1,int k1); int power(int m,int n); int fun(); void show (); }; SP::SP(int n1,int k1){ n=n1; k=k1; } int SP::power(int m,int n){ int a=m; for(int i=1;i

计算机体系结构试题库—简答题

计算机体系结构试题库 简答题(100题) 1.简述CISC结构计算机的缺点。 答: ●在CISC结构的指令系统中,各种指令的使用频率相差悬殊。据统计,有20%的指 令使用频率最大,占运行时间的80%。也就是说,有80%的指令在20%的运行时 间内才会用到。 ●CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制 时间和成本,而且还容易造成设计错误。 ●CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 ●CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 ●在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计 算机体系结构技术(如流水技术)来提高系统的性能。 2.RISC结构计算机的设计原则。 答: A.选取使用频率最高的指令,并补充一些最有用的指令; B.每条指令的功能应尽可能简单,并在一个机器周期内完成; C.所有指令长度均相同; D.只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行; E.以简单有效的方式支持高级语言。 3.影响现代微处理器主频提升的主要原因由哪些? 答:线延迟、功耗。 4.指令集格式设计时,有哪三种设计方法? 答:固定长度编码、可变长编和混合编码)三种设计方法。

5.简述存储程序计算机(冯·诺依曼结构)的特点。 答: (1)机器以运算器为中心。 (2)采用存储程序原理。 (3)存储器是按地址访问的、线性编址的空间。 (4)控制流由指令流产生。 (5)指令由操作码和地址码组成。 (6)数据以二进制编码表示,采用二进制运算。 6.在进行计算机系统设计时,一个设计者应该考虑哪些因素对设计的影响? 答: 在进行计算机系统设计时,设计者应该考虑到如下三个方面因素的影响: ●技术的发展趋势; ●计算机使用的发展趋势; ●计算机价格的发展趋势。 7.简述程序翻译技术的特点。 答: 翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。 8.简述程序解释技术的特点。 答: 解释技术是每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。 9.经典体系结构的定义是什么? 计算机体系结构是机器级程序员所看到的计算机的属性,即概念性结构与功能特性。10.“线延迟墙”指的是什么?

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

计算机系统结构课后题.

[例题1.1] 假设将某一部件的处理速度加快到10倍,该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少? [解答] 由题意可知:Fe=0.4, Se=10,根据Amdahl 定律,加速比 为:Sn=1/(0.6+0.4/10=1.56 [例题1.2] 采用哪种实现技术来求浮点数平方根FPSQR 的操作对系统的性能影响较大。假设FPSQR 操作占整个测试程序执行时间的20%。一种实现方法是采用FPSQR 硬件,使FPSQR 操作的速度加快到10倍。另一种实现方法是使所有浮点数据指令的速度加快,使FP 指令的速度加快到2倍,还假设FP 指令占整个执行时间的50%。请比较这两种设计方案。 [解答] 分别计算出这两种设计方案所能得到的加速比: [例题1.2] [解答] =(4*25%+(1.33*75%=2.0 方案1:CPI 1=CPI 原-2%*(CPI 老1-CPI 新1=2.0-2%*(20-2=1.64 方案2:CPI 2=CPI 原-25%*(CPI 老2-CPI 新2=2.0-25%*(4-2=1.5 方案2的加速比=CPU 时间原/CPU 时间2=IC*时钟周期*CPI 原 / IC*时钟周期*CPI 2=2/1.5=1.33

[习题1.17] 假设高速缓存Cache 工作速度为主存的5倍,且Cache 被访问命中的概率为90%,则采用Cache 后,能使整个存储系统获得多高的加速比Sp ? [解答] 我们首先对新的存储系统的性能做以下的假设:在Cache 不命中的情况下,对Cache 的访问不会额外损失时间,即:首先,决定Cache 是否命中所用的时间可以忽略;其次,在从主存向Cache 传输的同时,数据也被传输给使用部件(不需要再从Cache 中读取。这样,新的存储系统中,平均存取时间分为两个部分: hit Cache miss main hit hit miss miss average new R T R T R T R T T ?+?=?+?=_ 其中,R 表示各种情况所占的比例。 根据加速比的计算公式, 57.39.051.011__=?+?=?+?== hit Cache miss main main average new average old p R T R T T T T S [习题1.19]

计算机程序设计(C)综合实践

计算机程序设计(C)综合 实践 设计报告 学院:电子通信与物理学院 设计名称:职工信息管理系统 专业班级:电子信息科学与技术14-2 学生:本良 学号: 201401100211 组号: 140203 指导教师:宋戈 完成时间: 2015年 7月23日

目录 第1部分实训题目与要求 (2) 1. 问题提出 (2) 2. 功能要求 (2) 3. 任务分工 (2) 第2部分设计实训题目功能......................................................................... . (3) 1. 总体设 计...................................................................... (3) 2. 数据结 构...................................................................... (4) 3. 程序设 计...................................................................... (5) 4. 测试与调 试......................................................................

(8) 第3部分实训总结......................................................................... . (12) 1. 个人总 结...................................................................... (12) 2. 结束 语...................................................................... (12) 第4部分参考文献......................................................................... . (13) 《C程序设计综合实践》评分表......................................................................... (14)

-计算机系统结构(有详细答案)

(仅供参考,不作为考试标准), 选择题(30分,每题2分) 计算机系统结构设计者所关心的是________所看到的的计算机结构。 A)硬件设计人员B)逻辑设计人员 C)机器语言或汇编语言程序员D)高级语言程序员 在计算机系统设计时,为了提高系统性能,应当注意________。 A)加快经常性使用指令的执行速度 B)要特别精心设计少量功能强大的指令 C)要减少在数量上占很小比例的指令的条数 D)要加快少量指令的速度 重叠寄存器技术主要用于解决在RISC系统中因________而导致的问题。 A)JMP指令影响流水线 B)CALL指令的现场保护 C)只有LOAD和STORE指令带来的访问存储器不便 D)存储器访问速度 为使流水计算机运行效率高________ A)各过程段时间要不同B)连续处理的任务类型应该不同 C)连续处理的任务类型应该相同D)连续处理的任务数尽可能少不属于堆栈型替换算法的是________。 A)近期最少使用法B)近期最久未用法 C)先进先出法D)页面失效频率法 与全相联映象相比,组相联映象的优点是________。 A)目录表小B)块冲突概率低C)命中率高D)主存利用率高"一次重叠"中消除"指令相关"最好的方法是________。 A)不准修改指令B)设相关专用通路 C)推后分析下条指令D)推后执行下条指令 流水操作中,遇到数据相关时,采用的解决办法有________。 A)用优化编译器检测,通过指令重新排序的办法 B)数据重定向技术 C)延迟转移技术 D)加快和提前形成条件码 经多级网络串联来实现全排列网络,只能用________。 A)多级立方体网络B)多级PM2I网络 C)多级混洗交换网络D)上述任何网络 虫蚀寻径以流水方式在各寻径器是顺序传送的是________。 授课:XXX

大学生计算机编程实训心得领悟.doc

大学生计算机编程实训心得体会 编程是编写程序的中文简称,就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。分享,欢迎阅读! 大学生计算机编程实训心得体会一 目前在国内制造业对数控加工高速增长的需求形势下,数控编程技术人才出现了严重短缺,数控编程技术已成为就业市场上的需求热点。以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是2007年第二批次国家级骨干教师培训的学员,培训地在济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。 一、学好数控编程技术需要具备以下几个基本条件: (1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。 (2)有条件选择好的培训机构和培训教材。 (3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括: (1)基本的机械制图基础。 (2)基本的机械加工常识。 (3)机加工工艺基础。 (4)基本的三维造型技能。 三、选择培训教材应考虑的因素包括: (1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CADCAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。 (2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。 四、学习方法与技巧 同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

计算机编程实习周记

计算机编程实习周记 实习周记一 到金山实习已经一周了,这一周主要任务是学习COM 技术,以及理解初期产品DEMO的代码,指导我的老大叫程辉,他是一个工作认真, 待人真诚的好人,虽然他很忙,但是我遇到问题他也会细心帮我解答, 如果某个问题他不清楚, 也会很直接的告诉我他不清楚. 但是我要是在学校遇到什么问题, 大部分老师给我的答案都是含糊其辞的, 另有一些就干脆胡说八道一通, 让我非常郁闷. 在公司实习的感觉很不一样,快快事业部里每个人都非常认真勤奋的工作,大家都为最终的产品投入了大量的时间和精力.这是我无法从学校学习到的一种精神. 这也从一个侧面反映出大学里面的问题有很多, 在学校上课, 我无法得到什么, 有些课程老师自己都没弄明白, 找本书对着学生念经, 同学们的激情早就在大一的时候被浇灭了, 剩下一些残念或怨念, 又在经文的雪上加霜后, 留下一辈子的仇恨. 这就是大学的现状. 没有谁可以改变这种状况, 而我们这些可怜的大学生们, 期望的只是一张大学毕业证, 好给保有旧社会科举制度思维的父母们一个交代. 面对这样的现状, 我只能说...very well...

虽然这一周我都是每天早上6:30起床赶车,晚上 8:30回到宿舍(坐公交车要好久, 而且正赶山修路, 在 路上耽搁很久),但是这样的生活对我来说却是习以为常,因为从大二暑假开始,我就已经以类似的作息时间,奔波于宿舍和励耘楼的实验室.即使是周六周日,我也会去励耘楼的实验室自习,而现在周末不用去公司上班,我倒是觉得轻松了不少. 生活方面,金山的伙食真的是非常好,可见金山的管理者们们对本公司员工的尊重和重视. 但是菜品种不如学校食堂的丰富, 学校的食堂和外卖经常会有花生猪骨, 逗沙包, 小强汤, 滑蛋小强, 芹菜苍蝇, 白菜腋毛等菜式供给, 不仅如此, 给我们盛菜的食堂员工还喜欢抖两抖, 一次我大脑抽筋了, 去食堂的窗口打饭, 看见一份炒豆腐还不错, 价钱是1块钱, 我就要他们给我来一份, 这份打过来, 我数了数, 一共5块豆腐....我当场就怒了, 找他理论, 没想到他跟我来了一句1块钱就是那么多了.... 最后这个了字声音还故意发的很长, 明显是一种挑衅和不懈. 言外之意就是丫个穷鬼, 还敢嫌少, 没钱还敢来吃老子豆腐., 我真是吐槽不能. 实习周记二 到金山实习已经两周了.周一上午,程辉把我叫到会议室,让我根据第一周学到的知识以及对项目的了解,制

计算机体系结构问答题第2章

第2章计算机指令集结构设计 1. 通常可按哪5个因素对计算机指令集结构进行分类? (1) 在CPU中操作数的存储方法。 (2) 指令中显式表示的操作数个数。 (3) 操作数的寻址方式。 (4) 指令集所提供的操作类型。 (5) 操作数的类型和大小。 2. 在对计算机指令集结构进行分类的5个因素中,哪一种是各种指令集结构之间最主要的区别? CPU中操作数的存储方法,即在CPU中用来存储操作数的存储单元的类型,是各种指令集结构之间最主要的区别。 3. 根据CPU内部存储单元类型,可将指令集结构分为哪几类? 堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 4. 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构分别有什么 5. 现代大多数机器均采用通用寄存器型指令集结构,为什么? 主要有两个方面的原因,一是寄存器和CPU内部其他存储单元一样,要比存储器快;其次是对编译器而言,可以更加容易、有效地分配和使用寄存器。 6. 通用寄存器型指令集结构可细分为哪三类? 寄存器-寄存器型。 寄存器-存储器型。 存储器-存储器型。 7. 三种通用寄存器型指令集结构分别有什么优缺点?

8. 从当前的计算机技术观点来看,CISC结构有什么缺点? (1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 9. 增强CISC机器的指令功能主要从哪几方面着手? (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 10. RISC的设计原则是什么? (1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 11. RISC和CISC处理机的指令系统结构在指令格式、寻址方式和每条指令的周期数(CPI)三方面有哪些区别? 12. 计算机指令集结构设计所涉及的内容有哪些? (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向。 (2) 寻址方式的设计。 (3) 操作数表示和操作数类型。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式三种。

计算机程序设计实践

《计算机程序设计实践(VC++)》教学大纲一.课程基本信息 开课单位:经济管理学院信息管理系 课程编号:000000 英文名称:Computer Programming Language (VC++) Course Design 学时:总计32学时,其中理论授课0学时,实验(含上机)32学时 学分:2.0学分 面向对象:信息管理与信息系统(含网络营销方向)本科专业 教材: 《C++程序设计》,吴乃陵,况迎辉编著,高等教育出版社,2006年3月第2版 《C++程序设计实践教程》,吴乃陵,李海文主编,高等教育出版社,2006年3月第2 版 主要教学参考书目或资料: 1.Visual C++从入门到精通.刘锐宁,宋坤编著.北京:清华大学出版社.2010年10月 2. Visual C++项目开发案例全程实录(第2版).明日科技等编著. 北京:清华大学出版社.2011年1月 二.教学目的和任务 课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是一门专业基础课或专业课教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践能力、为毕业设计及毕业后从事专业技术工作打下基础,提高学生全面素质具有重要的意义。因此,《计算机程序设计语言(VC++)课程设计》的目的就是要通过一个学生成绩管理系统的实际开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握C++程序开发的基本方法和工作步骤,对系统开发实践有进一步体会。从而综合复习课程中的所有理论知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力。真正理解书本知识,牢固掌握课堂教学内容。 三.教学目标与要求 学生按照课程设计任务书要求,通过两周的时间,设计出一个学生成绩管理系统,能实现对某班 级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。从而进一步掌握算法的描述、了解初步的数据结构,熟悉C++语言的语句格式、功能及其应用。 四.教学内容、学时分配及其基本要求 实验项目学生课程成绩管理系统 设计内容: 设计一程序,实现对某班级学生成绩的管理及奖学金、三好生的评定工作。要求具备查询和检索等功能,并且能够对指定文件进行操作,也可以将多个文件组成一个文件。 设计要求: ⒈应严格按照开发小型项目的基本流程进行设计。 ⒉成绩管理程序至少应具有以下功能: ⑴输入:学生的基本信息,包括学号、姓名、性别、籍贯、VC++成绩、英语成绩、高数成绩等; ⑵计算:每个学生的总成绩、平均成绩,所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;

c语言程序设计实践教程答案完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A 6.B

8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为: 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D 6.C 7.D

单片机简易计算器课程设计

单片机简易计算器课程设计 课程设计 题目名称________________ 简易计算器设计____________ 课程名称_____________ 单片机原理及应用____________ 学生姓名________________

班级学号________________ 2018年6月20日

目录 一设计目的 (2) 二总体设计及功能介绍 (2) 三硬件仿真图 (3) 四主程序流程图 (4) 五程序源代码 (5) 六课程设计体会 (28)

设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUE仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51 系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0?9)、符号键(+、-、x、十)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘;

执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

计算机组成原理指令系统设计

课程设计说明书 题目: 指令系统设计 院系:计算机科学与工程学院 专业班级: 学号: 学生姓名: 指导教师: 2013年 11 月 25 日

安徽理工大学课程设计(论文)任务书 2013年11月25日

安徽理工大学课程设计(论文)成绩评定表

摘要 在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。人们渐渐地步入自动化、智能化的生活阶段。本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。 简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。 这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入学习打下基础。关键词:指令系统,微指令,机器指令,异或

目录 1.系统分析 (1) 1.1 设计准备 (1) 1.2 设计目标 (3) 2.系统设计 (4) 2.1 指令、微指令系统设计 (4) 2.2 模型机的微指令设计 (5) 2.3 异或程序设计 (6) 3.系统实现 (7) 3.1 程序编写与分析 (7) 3.3 调试结果 (8) 4.总结 (10) 4.1 设计体会 (10) 4.2设计改进 (10) 参考文献 (11)

程序设计实践报告模板

面向对象程序设计实践(Project 2) 报告 题目: 专业软件工程(NIIT) 学生姓名 班级学号 指导教师杨健 指导单位计算机学院/软件学院 日期

评分细则 评分项优秀良好中等差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短 评语教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

Title(Here,please write the name of your Project) (题目格式:宋体,3号,加粗,居中对齐) 一、D escription and Requirement(格式:Times New Roman,4号,加粗, 两端对齐) (正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐) 在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距) 三、High level design(格式:Times New Roman,4号,加粗,两端对齐) 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),数据库设计的说明(给出数据库的结构,包括有哪些表,每个表有什么字段,分别存储什么样的数据) (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 四、Low level design格式:Times New Roman,4号,加粗,两端对齐) 各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 注意:不要粘贴全部程序,只要把关键算法的程序粘贴过来就可以了。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 五、Tested data and result analysis(格式:Times New Roman,4号,加粗,

计算机程序设计实践答案(江苏科技大学)

1,#include class PP { int n; double x; double *p; public: PP(int num,double x1); ~PP(); double fun(int n1,double x); void process(); void show(); }; PP::PP(int num,double x1) { n=num; x=x1; p=new double[n+1]; } PP::~PP() { if(p) delete[]p; } double PP::fun(int n,double x) { if(n==0) return 1; else if(n==1) return x; else return ((2*n-1)*x*fun(n-1,x)-(n-1)*fun(n-2,x))/n; } void PP::process() { int i; for(i=0;i<=n;i++) p[i]=fun(i,x); } void PP::show() { int count=0; cout<<"n="<

{ cout<

A、5 B、4 C、8 D、输出项不合法,无正常输出 4、下面程序的输出是______ main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } (3分) D A、B、C、D、 A、k=11,k=12,k=13 B、k=11,k=13,k=13 C、k=11,k=013,k=oXb D、k=11,k=13,k=b 5、若有以下定义和语句: int u=010,v=0x10,w=10; printf(″%d,%d,%d\n″,u,v,w); 则输出结果是: (3分) A A、B、C、D、 A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,10 6、以下程序的输出结果是 main( ) { int k=17; printf("%d,%o,%x \n",k,k,k); }(3分) D A、B、C、D、 A、17,021,0x11 B、17,17,17 C、17,0x11,021 D、17,21,11 7、下面程序的输出是____

计算机程序设计(C)综合实践报告撰写规范

计算机程序设计(C)综 合实践 设计报告 学院:电子通信与物理学院 设计名称: 专业班级:电子信息科学与技术14-2 学生姓名:李本良 学号:201401100211 组号: 指导教师:宋戈 完成时间:2015年7月日

(排版打印时删除本行红色字)按照任课老师规定的统一日期填写完成时间 目录 说明:目录自动生成,各级标题为小4号、宋体字,行距1.5倍行距。装订要求:左侧用订书针装订。 !!!同学们排版打印报告时,请删掉说明文字部分!

(排版打印时,请删除以下格式要求) 实践报告格式要求 ●页面设置 正文内所有页面的页边距设置为上:2cm、下:2cm、左:2.5cm、右:2.5cm、页眉:2cm、页脚:1. 7cm,行距为20磅,装订线在左侧。 ●正文内容设置 宋体小四号,首行缩进2字符(行距为20磅) ●其他内容设置 按照下面的顺序和格式完成: 目录(居中、宋体、二号、加粗) 内容:包括一级目录、二级目录和页码,并用“…”连接。 格式:宋体、小四号,一级目录左对齐、加粗,二级目录缩进。 目录的排版格式参考如下 目录 第1部分实训题目与要求 (1) 1. 问题提出............................................................................ 错误!未定义书签。 2. 功能要求............................................................................ 错误!未定义书签。 3. 任务分工............................................................................ 错误!未定义书签。 …… 《C程序设计综合实践》评分表 (xx) 第1部分实训题目与要求(标题1、居中,黑体,四号) 1. 问题提出(标题2、左对齐) 内容:叙述系统的主要用途。格式:宋体、小四号、行距20磅。 2. 功能要求(标题2、左对齐) 内容:应较详细地叙述系统所要实现的题目功能。格式:宋体、小四号、行距20磅。 可包括基本功能和扩展功能。 3. 任务分工 内容:应较详细地叙述每个人在项目中承担的任务。格式:宋体、小四号、行距20磅。 第2部分设计实训题目功能(标题1、居中,黑体,四号) 1. 总体设计(标题2、左对齐)

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