Butterfly 主题页面(一)
你可以通過右下角的 簡 按鈕切換為簡體顯示
Front-matterFront-matter 是 markdown 文件最上方以 --- 分隔的區域,用於指定個別檔案的變數。
Page Front-matter 用於頁面配置
Post Front-matter 用於文章頁配置
如果標注可選的參數,可根據自己需要添加,不用全部都寫在markdown裏
Page Front-matter123456789101112131415---title:date:updated:type:comments:description:keywords:top_img:mathjax:katex:aside:aplayer:highlight_shrink:---
寫法
解釋
title
【必需】頁面標題
date
【必需】頁面創建日期
type
【必需】標籤、分類和友情鏈接三個頁面需要配置
updated
【可選】頁面更新日期
description
【可選】頁面描述
keywords
【可選】頁面關鍵字
comments
【可選】顯示頁面評論模塊( ...
8086CPU系统寻址方式和汇编语言程序设计
8086CPU系统寻址方式和汇编语言程序设计实验目的(1)掌握8086CPU 系统的逻辑地址和寻址方式;(2)掌握8086CPU系统中机器数的表示方式;(3)掌握指令的机器码表示方法;(4)掌握堆栈的概念和操作过程;(5)掌握集成开发环境下程序设计和调试方法;(6)掌握汇编语言实现具体算法的方式,区分汇编语言与高级语言的编程风格。
实验内容
进行汇编源程序的编辑、编译和链接操作,并完成调试内容,掌握汇编语言程序设计的基本方法和技巧。(1)源代码:123456789101112131415161718CODE SEGMENTASSUME CS:CODESTART:MOV AX,8086HMOV BX,6800HMOV SI,8HMOV DS:[000BH],AXMOV ES:[6808H],SIADD AX,SIMOV BX,[SI+3]MOV CX,ES:[BX+SI]PUSH CXMOV BX,0MOV CX,3[BX][SI]POP DXL1:JMP L1CODE ENDSEND START
(2)反汇编结果:(3)运行结果PUSH后:POP后:程序执行完毕结果:
内存中现有X和Y ...
组合电路设计与测试
实验目的
熟练组合电路的设计和实现的方式
掌握Verilog HDL组合电路模块的设计规范。
掌握组合逻辑测试代码的撰写和仿真测试方法。
预习要求
了解assign、门原件、always过程语句及模块调用描述组合逻辑电路设计的方法和注意事项。
了解QuartusII或iverilog>kwave软件使用的基本规范和操作流程
实验原理
带优先级8-3编码器和3-8译码器
8-3编码器3-8译码器12345678910111213141516171819# 带优先级8-3编码器module code83(in8,out3);input[7:0] in8; output reg[2:0] out3;always@(in8)begincase(in8)if(in8[7]) out3=3'b111;else if(in8[6]) out3=3'b110;else if(in8[5]) out3=3'b101;else if(in8[4]) out3=3'b100;else if(in8[3]) out3=3'b011;else i ...
FPGA基本电路设计与测试
实验目的
熟练掌握文本输入设计、综合、仿真和下载的基本流程
掌握Verilog HDL模块的构成和基本逻辑模块的设计规范。
掌握测试代码的撰写和仿真测试方法。
预习要求
了解EDA数字系统设计的基本流程。
了解QuartusII或iverilog>kwave软件使用的基本规范和操作流程
了解测试代码撰写规范。
实验原理
待测模块test003123456789module test003(input[1:0] in1,input[1:0] in2,output cont,output[1:0] sum);assign {cont,sum}=in1+in2;endmodule
测试代码,可以通过quartus自动产生测试模板。通过控制送入待测模块的信号观测输出,分析输出与预期进行比较判断是否正确。1234567891011121314151617181920212223242526272829303132333435363738`timescale 1 ns/ 1 ps //时间标尺,确定时间单位和精度module test003_vlg_tst() ...
基本时序逻辑设计
实验目的
熟练掌握时序逻辑设计规范
掌握Verilog HDL时序逻辑模块的设计和仿真。
掌握开发板上基本输出资源的使用方法。
掌握测试和错误修改方法。
预习要求
了解EDA数字系统设计的基本流程。
了解时序逻辑过程块设计的基本规范和模型
了解七段管的工作特性。
了解组合逻辑和时序逻辑电路设计的主要特性和区别。
实验原理
SW上拨为输出高电平、下拨为输出低电平
KEY0-KEY3正常情况下输出高电平,按下输出低电平,松开按键恢复到弹起状态输出高电平
7段数码管:HEX0[6:0]—-HEX7[6:0],每个7段管信号对应数码管,6—-0,低电平时发光,高电平不亮。
分频电路参考:由50MHz信号,经过分频变成1Hz。原理:0-25000000计数,满2500万后新的时钟CLK1反转,计数归零,从0开始重新计数到2500万后,新时钟再反转,使得CLK1一个周期内包含2500万*2个CLOCK_50(50Mhz)时钟周期,为1hz12345678910111213module divclk1hz(reset,clk50,clk1);input clk50,reset;//clk50为输 ...
可编程并行接口实验
可编程并行接口实验实验目的理解可编程并行接口8255A芯片的结构和功能;掌握8255A芯片初始化程序的设计方法;掌握8255A芯片与CPU信号的连接方法以及并行接口设计和编程方法;掌握七段数码管的静态和动态显示原理;掌握利用七段数码管显示计算数机内部信息
实验内容1、实验题目及要求(1)利用8255A芯片设计接口电路并编程实现:A口输出数据,驱动四个共阴极LED,使其顺序循环显示0~F的二进制状态,每个状态保持1秒钟;B口输入一个初态为低电平的电平开关信号,检测开关的输入状态为高电平时,使LED全部熄灭,扳动电平开关到低电平,程序结束。程序流程图和调试正确源程序(输入或截图);正确源程序:1234567891011121314151617181920212223242526272829303132333435363738394041CODE SEGMENTASSUME CS:CODESTART:MOV DX,283HMOV AL,83HOUT DX,ALLOOP2:MOV CX,16PUSH CXMOV BL,00HMOV AL,00HLOOP1:MOV DX,280HOUT DX,A ...
循环程序结构和过程调用程序设计
循环程序结构和过程调用程序设计实验目的(1)掌握分支结构、简单循环结构程序和过程调用的设计和调试方法;(2)熟练掌握存储器分段和段超越的概念和实现方法;(3)掌握单字节和双字节在寄存器和存储器中的存放方式;(4)掌握负数在内存中的表示方法;(5)掌握数组的编程处理方法以及“冒泡”法排序的编程方法。
实验内容
编程设计实验(一)(1)源代码:
123456789101112131415161718192021DATA SEGMENTX DB 32,-43,76,95,-1Y DB -78,127,-128,-125,88LEN EQU $-YSUM DB 5 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,LEN MOV BX,0L1:MOV AL,X[BX] ADD AL,Y[BX] MOV SUM[BX],AL INC BX LOOP L1L2:JMP L2CODE ENDSEND START
(2)反汇编结果:( ...
顺序表
有以下程序段,先改错,最后再编程实现所有函数的功能。注:main()函数已给出,不得修改,提交时需要提交main函数。
123456789101112131415161718192021222324252627282930313233343536#include <iostream.h>#include <stdlib.h>typedef int T class SeqList{private: T data; int MaxSize; //顺序表最多可以存放的元素个数。 int last; //顺序表最后一个元素的下标,初始值为-1。 void SeqList(int sz); void Input(); //首先输入元素的个数,然后顺次输入元素的值。 void Output(); //输出线性表的所有元素。 void Insert(const T &x, int i); //在线性表中第i个位置插入值为x的元素。 in ...
稀疏矩阵
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149#include <iostream>using namespace std;struct Triple{ int row, col; int value; void operator=(Triple &R) { row = R.row; ...
二叉树的链式存储
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
链表
实习目的: 熟练掌握链表的建立及基本操作问题描述:
实现链表的排序(升序) 提交前请将所有的提示信息去掉,只保留最后的输出结果。例如运行时:从键盘直接输入:2 1 23 1 2 3输出结果为:123分别表示第一个链表元素个数为2,元素分别为 1,2 ;第二个链表元素个数为3,元素分别为1,2,3。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135#include <iostream>using namespace std;class L ...
二叉树与表达式
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127#include "cstdio"#include <cmath>#include <iostream>#include <stdio.h>using namespace std;class Tree;class TreeNode{ friend class Tree;private: char data; TreeNode *left; TreeNode *r ...
排序算法的应用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include "assert.h"#include <iostream>using namespace std;void Sort(int *arr, int m){ int i = 0, j = 0, k = m - 1, temp; while (j <= k) { if (arr[j] == 1) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; if (i < j) { cout << i << "<--->" ...
括号匹配(栈)
用栈实现:输入一行符号,以#结束,判断其中的括号是否匹配。括号包括:
{} [] () <>123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144#include <iostream>using namespace std;class steak;class StackNode{ friend class LinkedStack;public: Sta ...
栈的应用-进制转换
算法基于原理:N = (N div d)×d + N mod d代码思路:
初始化栈
输入要转化的数据N
当N不为0,把N%8取余的结果入栈
当栈不为空,输出
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687#include <iostream>using namespace std;class steak;class StackNode{ friend class LinkedStack;public: StackNode* link; int data;public: StackNode(StackNode* ptr = NULL) { link = ptr; } StackNode(int& c ...
一元多项式的基本运算
一元多项式的基本运算 实验目的:掌握用线性表实现一元多项式的基本运算。
实验内容:使用链式存储实现一元多项式的加法、减法、乘法和求导。即:
C(x)= A(x)+B(x);C(x)= A(x)-B(x) C(x)= A(x)*B(x) C(x)= A’(x)
菜单:
C :分别创建两个多项式A(x)和B(x),其中 输入时按照 指数的升序顺序输入,遇到系数为0则停止。例如:输入 :
1 2 3 4 5 6 7 8
2 3 4 5 6 7 0
则生成的多项式分别为:
A(x)=x^2+3x^4+5x^6+7x^8
B(x)=2x^3+4x^5+6x^7
2)P:计算C(x)= A(x)+B(x),计算完毕后输出C(x)的 结果
3)S: 计算C(x)= A(x)-B(x),计算完毕后输出C(x)的 结果
4)M: 计算C(x)= A(x)*B(x),计算完毕后输出C(x)的 结果
5)D: 计算C(x)= A’(x),计算完毕后输出C(x)的 结果
6)V: 首先输入一个 float型数据,然后计算 A(x)并输出计算的结果。
7)E: 分别清空A(x)、B(x)、C(x)三个多项式 ...