HNU-电路与电子学-实验2
实验二 模型机组合部件的实现(一)
班级 计XXXXX 姓名 wolf 学号 2021080XXXXX
一、实验目的
1.了解简易模型机的内部结构和工作原理。
2.熟悉译码器、运算器的工作原理。
3.分析模型机的功能,设计指令译码器。
4.分析模型机的功能,设计 ALU。
二、实验内容
1.指令译码器
指令译码器是根据指令系统表中的指令编码,对输入的 8 位指令进行解析,
汇编符号 | 功能 | 编码 |
MOV R1,R2 | (R2)→ R1 | 1100 R1 R2 |
MOV M,R2 | (R2)→(C) | 1100 11 R2 |
MOV R1,M | ((C))→R1 | 1100 R1 11 |
ADD R1,R2 | (R1)+(R2)→ R1 | 1001 R1 R2 |
SUB R1,R2 | (R1)-(R2)→ R1 | 0110 R1 R2 |
AND R1,R2 | (R1)&(R2)→ R1 | 1011 R1 R2 |
NOT R1 | /(R1)→ R1 | 0101 R1 XX |
RSR R1 | (R1)循环右移一位→ R1 | 1010 R1 00 |
RSL R1 | (R1)循环左移一位→ R1 | 1010 R1 11 |
JMP add | add → PC | 0011 00 00,address |
JZ add | 结果为 0 时 add → PC | 0011 00 01,address |
JC add | 结果有进位时 add → PC | 0011 00 10,address |
IN R1 | (开关 7-0)→ R1 | 0010 R1 XX |
OUT R2 | (R2)→ 发光二极管 7-0 | 0100 XX R2 |
NOP | 0111 00 00 | |
HALT | 停机 | 1000 00 00 |
判定是哪条指令,则对应指令的输出为 1,否则输出为 0。
指令译码器的输入输出引脚如上图所示。en 为使能信号,ir[7..0]是 8 位指令
编码,输出是对应的 16 条指令。引脚之间的相互关系如下表所示:
表 2 指令译码器引脚关系
en | ir[7..0] | 16 个输出信号 |
1 | 8 位的指令编码 | 指令编码对应的指令输出为 1,其它输出为 0 |
0 | 8 位的指令编码 | 不管 ir 为何值,16 个输出全为 0 |
2.ALU
算术逻辑运算类指令:
ADD R1, R2
SUB R1, R2
AND R1, R2
NOT R1
这类指令的执行过程为:
由 R2 的编码通过 RAA1、RAA0 从通用寄存器组 A 口读出 R2 的内容,由 R1的编码通过 RWBA1、RWBA0 从通用寄存器组 B 口读出 R1 的内容,在 S3~S0和 M 的控制下,实现运算,经移位逻辑送入总线 BUS;由/WE 控制和 R1 的编码选择 RWBA1、RWBA0,将 BUS 上的数据写入通用寄存器 R1。其中 ADD 和 SUB 指令影响状态位 Cf 和 Zf。
指令具体功能如下:
汇编符号 | 功能 | 编码 |
ADD R1,R2 | (R1)+(R2)→ R1 | 1001 R1 R2 |
SUB R1,R2 | (R1)-(R2)→ R1 | 0110 R1 R2 |
AND R1,R2 | (R1)&(R2)→ R1 | 1011 R1 R2 |
NOT R1 | /(R1)→ R1 | 0101 R1 XX |
ALU 除了要完成 ADD、SUB、AND、NOT 运算外,还需在 MOVA、MOVB、
RSR、RSL 和 OUT 五条指令执行时,提供将数据传送至总线的数据通路。ALU
模块的输入输出引脚如下图所示:
其中m和s[3..0]是控制信号,控制a[7..0]和b[7..0]输入的数据进行什么操作,
并将产生的结果输出到t[7..0]、cf和zf。各引脚间的相互关系如下表所示:
表 3 ALU 引脚关系
m | s[3..0] | t[7..0] | cf | zf |
1 | 1001 | t=a+b | 有进位,cf=1 无进位,cf=0 | 和为零,zf=1 和不为零,zf=0 |
1 | 0110 | t=b-a | 有借位,cf=1 无借位,cf=0 | 差为零,zf=1 差不为零,zf=0 |
1 | 1011 | t=a&b | 不影响 | 不影响 |
1 | 0101 | t=/b(注:b 相反) | 不影响 | 不影响 |
0 | 1010 | t=b | 不影响 | 不影响 |
0 | 1100 或 0100 | t=a | 不影响 | 不影响 |
三、实验过程
1、指令译码器
A)创建工程(选择的芯片为family=Cyclone II;name=EP2C5T144C8)
步骤:左上角 file->New Project Wizard->选择工程位置和工程名->选择芯片 Cyclone II,
available device 中选择 EP2C5T144C8->点击 next->最后点击 finish 完成创建工程
工程创建图:
B) 编写源代码
根据实验指导和要求实现的功能写出对应的 Verilog 代码。
步骤:左上角 file->new->Verilog hdl file->编写代码(模块名需与工程名一致)->编译
成功后保存到工程文件中
代码图:
C) 编译与调试(包含编译调试过程中的错误、警告信息以及资源消耗)
确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译,编译成功,保存文件。
D) RTL视图
视图分析及结论:
分析:
- 由视图可得,视图左边为输入,右边为输出。
- 其中连接有一系列的元器件。比如比较器:当输入相等时输出 1,不相等时输出 0;
- 还有许多 2-1 选择器,当控制信号为 0 时,输出第一位,控制信号为 1 时,输出第二位。图中输入信号为 ir 和 en,输出信号包 括 add 等 16 种情况。各个输出端口之间通过导线相连。
结论:一个功能的实现需要经过多重门的处理后才能实现,一个元件的内部原理结构图十分复杂。
E) 功能仿真波形
结果分析及结论:
分析:功能仿真是指不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验
证。由仿真波形可得,对于输入状态的变化,输出结果实时变化,没有延迟,其结果与电路
设计的真值表的结果相对应。
当 en 为 0 时,不管 ir 为何值,16 个输出全为 0
当 en 为 1 时:
当 ir=11000000 时,mova 输出为 1;
当 ir=11001100 时,movb 输出为 1;
当 ir=11000011 时,movc 输出为 1;
当 ir=10010000 时,add 输出为 1;
当 ir=01100000 时,sub 输出为 1;
当 ir=10110000 时,and1 输出为 1;
当 ir=01010000 时,not1 输出为 1;
当 ir=10100000 时,rsr 输出为 1;
当 ir=10100011 时,rsl 输出为 1;
当 ir=00110000 时,jmp 输出为 1;
当 ir=00110001 时,jz 输出为 1;
当 ir=00110010 时,jc 输出为 1;
当 ir=00100000 时,in1 输出为 1;
当 ir=01000000 时,out1 输出为 1;
当 ir=01110000 时,nop 输出为 1;
当 ir=10000000 时,halt 输出为 1;
结论:功能仿真操作简单,能体现和验证实验的功能,但忽略延迟的影响会使结果与实际结
果有一定误差。
F) 时序仿真波形
结果分析及结论:
分析:
- 时序仿真是指在布线后进行,是最接近真实器件运行的仿真,它与特定的器件有关,又包含了器件和布线的延时信息。
- 由波形可得,当输入状态发生改变时,输出结果并未同时改变,而是有一定延迟,同时由于输入状态的改变,导致电路出现“冒险”,导致输出结果并未与预期结果相同。
结论:
- 时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。
- 时序仿真不仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。
G) 时序分析
操作方法是:编译后,在compilation report中选择【timing analysis】-【summary】和【tpd】
结果分析及结论:
分析:
1、由图可得,Timing Analyzer Summmary总结所有经典定时分析的结果,并报告每个 定时特性的最坏情况定时。比如从 ir[3]到jmp的最坏定时情况的 tpd 为 11.720ns。下面的tpd 报告表则给出了源节点和目标节点之间的tpd延迟时间,比如第二行中 ir[5]到 add 的tpd 为 11.699ns。
结论:实际连接图中个元器件连接之间是存在时间延迟的,而且不同的元器件之间的时间延
迟也不相同。
2、算术逻辑单元ALU
A)创建工程(选择的芯片为family=FLEX10K;name=EPF10K20TI144-4)
B) 编写源代码
C) 编译与调试(包含编译调试过程中的错误、警告信息以及资源消耗)
警告信息:
资源消耗:
- RTL视图
结果分析及结论:
分析:
1、由视图可得,视图左边为输入,右边为输出。其中连接有一系列的元器件。比如比较
器:当输入相等时输出 1,不相等时输出 0;
2、同时存在大量的 2-1 选择器,当控制信号为0 时,输出第一位,控制信号为1时,输出第二位。图中输入信号为 m,s,a,b,输出信号 为 t,cf,zf。各个输出端口之间通过导线相连。
结论:一个功能的实现需要经过多重门的处理后才能实现,一个元件的内部原理结构图十分
复杂。
E) 功能仿真波形
结果分析及结论:
分析:功能仿真是指不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验
证。由仿真波形可得,对于输入状态的变化,输出结果实时变化,没有延迟,其结果与电路
设计的真值表的结果相对应。
当控制信号 m 为 1,s 为 1001 时,执行 t=a+b
当控制信号 m 为 1,s 为 0110 时,执行 t=b-a
当控制信号 m 为 1,s 为 1011 时,执行 t=a&b
当控制信号 m 为 1,s 为 0101 时,执行 t=~b
当控制信号 m 为 1,s 为 1010 时,执行 t=b
当控制信号 m 为 0,s 为 1100 时,执行 t=a
有进位和借位时 cf 为 1,否则为 0;
和为 0 或差为 0 时 zf 为 1,否则为 0;
结论:功能仿真操作简单,能体现和验证实验的功能,但忽略延迟的影响会使结果与实际结
果有一定误差。
F) 时序仿真波形
结果分析及结论:
分析:
- 时序仿真是指在布线后进行,是最接近真实器件运行的仿真,它与特定的器件有关,又包含了器件和布线的延时信息。
- 由波形可得,当输入状态发生改变时,输出结果并未同时改变,而是有一定延迟,同时由于输入状态的改变,导致电路出现“冒险”,导致输出结果并未与预期结果相同。
结论:
1、时序仿真可以用来验证程序在目标器件中的时序关系。同时考虑了器件的延迟后,其输出结果跟接近实际情况,但是考虑的情况过多,不容易操作,容易产生错误。
2、时序仿真不 仅反应出输出和输入的逻辑关系,同时还计算了时间的延时信息,是与实际系统更接近的一种仿真结果。不过,要注意的是,这个时间延时是仿真软件“估算”出来的。
- 时序分析
结果分析及结论:
分析:
1、由图可得,Timing Analyzer Summmary 总结所有经典定时分析的结果,并报告每个 定时特性的最坏情况定时。比如从 a[0]到 zf 的最坏定时情况的 tpd 为 38.50ns。下面的 tpd 报告表则给出了源节点和目标节点之间的 tpd 延迟时间,比如第二行中 s[0]到 t[0]的 tpd 为 29.6ns。
结论:实际连接图中个元器件连接之间是存在时间延迟的,而且不同的元器件之间的时间延
迟也不相同。
四、思考题
1.指令译码器必须要16个输出吗?可否将一些输出合并,哪些可以合并,为什么?
答:不一定。jmp 和 add 可以合并起来,因为 jmp 是将 add 后的结果写入 pc 中,则可以进
行 add 操作后直接进行写入操作。Add 和 sub 和 and 操作可以合并,因为这三个操作类似,
且输出为使能信号,故可以用一个合并使能信号来作为三个输出的共同使能信号。
- ALU中的S[3..0]控制信号是来自哪里或者说与什么信息相同?
答:来自指令码 ir 的前四位。
3、为何S[3..0]等于1100或0100时将输入a传给t,S[3..0]等于1010时将输入b传给t?
答:S[3..0]为控制信号,当 S[3..0]输入为 1100 时,控制输出 t 等于 a,S[3..0]等于 1010 或0100 时,t 等于 b,此时 alu 相当于选择器。
五、实验总结、必得体会及建议
1、从需要掌握的理论、遇到的困难、解决的办法以及经验教训等方面进行总结。
(1)需要掌握的理论:基本了解了简易模型机的内部结构和工作原理。同时熟悉了译码器、ALU 的工作原理。学会 使用 Verilog 语言编写电路。
(2)遇到的困难:对于 QuartusII 的使用还不够熟练,特别是进行波形仿真的功能仿真和时许仿真分别怎么操作的方面有一定不足。
(3)解决方法:通过上网查询相关资料和询问同学后得以解决问题,并通过分析报告发现电路中的问题。有不理解的还请教了老师,不仅收获了方法还掌握的技巧。
(4)经验教训:对于电子电路的学习一定要肯动手,光是看是学不会的,一定要落到实处,多自己使用软件进行仿真,才能加深对于这门课程的理解。
2、对本实验内容、过程和方法的改进建议(可选项)。
1、对于“无影响”的变量,是否可以规定它的输出以实现更好的统一以及传递一些信息。
2、这两个模块是否还可以添加更多的功能以更贴合市场的需求。
相关文章:
HNU-电路与电子学-实验2
实验二 模型机组合部件的实现(一) 班级 计XXXXX 姓名 wolf 学号 2021080XXXXX 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.熟悉译码器、运算器的工作原理。 3.分析模型机的功…...
从0开始学python -49
Python MySQL - mysql-connector 驱动 -2 插入数据 插入数据使用 “INSERT INTO” 语句: demo_mysql_test.py: 向 sites 表插入一条记录。 import mysql.connectormydb mysql.connector.connect(host"localhost",user"root",passwd"…...
Spring MVC 详解(连接、获取参数、返回数据)
在之前我们先简单那谈谈Spring、SpringBoot以及Spring MVC框架之间有什么关系?首先Spring是一个框架,SpringBoot脚手架是为了快速开发Spring框架而创造的技术。可以理解为SpringBoot又在Spring上面包了一层壳子,是基于Spring的,是…...
IT女神节(致敬中国IT界永远的女神严蔚敏-数据结构)
我们都知道程序数据结构算法。相信很多人都学过严蔚敏的数据结构的课程。作为一个码农,在这不管是3.7女神节,还是3.8妇女节。我觉得都有必要向这些教育界的老前辈致敬。今天我就梳理梳理,最经典的数据结构教材。 严蔚敏介绍(来自…...
Java 集合分页
一、前言 在Java开发中,若单次展示的数据量太大,会造成程序响应缓慢,就需要用到 分页 功能,每一页展示一定量的数据,分多次展示 ... 那么在List集合中,如何实现 分页 功能呢? 本文将以3种方式&a…...
代码随想录之哈希表(力扣题号)
242. 有效的字母异位词 直接用数组模拟哈希表 只有小写字母,开26的数组就可以了 class Solution {public boolean isAnagram(String s, String t) {//24-28int[] hash new int[26];Arrays.fill(hash,0);for(int i0;i<s.length();i){hash[s.charAt(i)-a];}for(i…...
如何在知行之桥EDI系统中定时自动更换交易伙伴AS2证书?
为了保证客户与交易伙伴之间数据传输的安全性,AS2传输协议中,通常会通过一对数字证书对传输数据进行签名和加密。但是证书是有有效期的,在证书到期之前,需要贸易双方及时更换新的证书。 在更新证书时,由于客户通常是和…...
辽宁千圣文化:抖音店铺怎么做二次优化?
抖音商品卡订单是指永华在抖音、抖音极速版,通过直播的方式出现短视频页面商品卡之后,直接成交商品详情页直接成交后的订单,那么跟着辽宁千圣文化小编来一起看看吧!一.与政策有关1.什么是「商品卡订单」?用户通过抖音、…...
检测js代码中可能导致内存泄漏的工具
JavaScript 中闭包等问题可能导致内存泄漏,因为闭包中引用的变量不会被垃圾回收器自动释放。以下是一些可以用来检测 JavaScript 代码中可能导致内存泄漏的工具: 1、Chrome 开发者工具 Chrome 开发者工具中有一个 Heap Profiler 工具,可以帮…...
linux和centos读写日期到文件并对日期进行比较
#!/bin/bash adate -d "${a}" %s #必须用数字 %s是取时间戳秒数 ddate -d "${c}" %s echo m$(($a - $d)) #必须2个小括号 a1date %s echo $a1 sleep 2 b1date %s echo $(($a1 - $b1)) #必须2个小括号 if [ $a1 -eq $b1 ];then #必须有空格 echo "…...
Espressif-IDE v2.8.0 新增功能及开发方向
在乐鑫最近发布的 Espressif-IDE 2.8.0 版本中,我们推出了分区表编辑器和 NVS 分区编辑器功能,优化现有调试器的配置功能并修复多项 Bug ,进一步为用户提升了插件质量以及稳定性。 用户可以点此获取最新版本。 • 若您的设备为 Windows 系统…...
C++学习笔记之基础
目录前言一.零碎知识点二.C核心2.1.内存分区2.2.引用2.3.函数2.4.类和对象2.4.1.对象的初始化和清理2.4.2.构造函数和析构函数2.4.3.构造函数的分类和调用2.4.4.拷贝构造函数的调用时机2.4.5.深拷贝与浅拷贝2.4.6.初始化列表2.4.7.类对象作为类的成员2.4.8.静态成员2.4.9.C对象…...
博弈论小课堂:零和博弈(找到双方的平衡点)
文章目录 引言I 零和博弈1.1 零和博弈的策略1.2 博弈类型1.3 找到平衡点(equilibrium)II 多人博弈的投篮问题2.1 比赛规则2.2 零和博弈的计算引言 从概率论延伸出来的课题——博弈论,博弈论中最典型的两大类博弈,是“零和博弈”与“非零和博弈”。博弈论所研究的最优化问题…...
Redisson 分布式锁(基于v1.3.1)
Redisson 分布式锁 v1.0.0版本问题 v1.0.0版本的实现在持有锁的JVM或者持有锁的线程挂掉没有释放锁时,该锁不会被释放并且会一直占用,这个时候就使用DEL命令手动删除。 问题解决 v1.3.1版本通过key的ttl解决了这个问题,关键加锁逻辑改为了…...
go并发之美·多个channel合并/多个数据流合并
多个数据流(来自于不同channel)合并为一个流。 一般用于多个相同性质来源的数据进行合并为一处进行统一处理。 目录 背景 实现赖着不走 变个花样:学成出师 背景 最近在重温武侠剧,无意间想到了一些情形然后手痒,想…...
数据库多租户实现三种方式
1960年,许多公司需要使用更多的运算资源,向持有Mainframe的供应商租用运算资源。与此同时,Mainframe的供应商会根据用户登录系统时输入的数据匹配ID,利用ID来计算运算的资源使用量,包含CPU,存储器ÿ…...
单协议 2.4GHz CC2651R31T0RGZR/CC2651R31T0RKPR无线MCU 802.15.4,蓝牙5.2
CC2651R31T0RGZR描述:具有 352KB 闪存的 SimpleLink 32 位 Arm Cortex-M4 单协议 2.4GHz 无线 MCU 48-VQFN -40C ~ 105C48QFN(明佳达电子)【介绍】CC2651R3器件是一款单协议 2.4 GHz 无线微控制器 (MCU),支持以下协议:…...
【项目精选】基于struts+hibernate的采购管理系统
点击下载 javaEE采购管理系统 本系统是一个独立的系统,用来解决企业采购信息的管理问题。采用JSP技术构建了一个有效而且实用的企业采购信息管理平台,目的是为高效地完成对企业采购信息的管理。经过 对课题的深入分析,采购系统需实现以下功能…...
在找docker命令和部署?看这一篇文章就够了。
一、docker 常用命令 docker ps -a #查看所有容器 docker images #查看所有images docker search rabbitmq #搜索rabbitmq docker pull rabbitmq #拉去rabbitmq docker run -id --namemy_rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq # 创建一个容器并启动 docker exec -it…...
NTLM协议原理分析
LM Hash 和 NTLM Hashwindows用户的密码以哈希的形式保存在SAM文件中“%SystemRoot%\system32\config\SAM”。域用户的密码以哈希的形式保存在域控的 NTDS.dit 文件中。 密码的哈希值格式如下用域名:uid:LM哈希:NTLM哈希:::由于LM Hash 有安全缺陷,所以Windows Vist…...
SOC计算方法:电流积分+开路电压
最近小猿在学习soc的计算方法,soc的估算方法大致有五种:电流积分法、开路电压法、阻抗法、智能估算法、状态观测器。今天先给大家介绍前两种方法。 什么是SOC 电池的状态(State of Charge,SOC)是电池能够提供的电荷总…...
linux mysql启动报错处理方案
启动命令: systemctl start mysqld 一、关闭selinux setenforce 0 二、...
Qt配置VS的编译环境(以MSVC2015 64bit为例)
目录 一、原因 二、VS2015安装 三、配置套件(Kits) 一、原因 很多时候,由于VS版本切换,需要从高版本切换到低版本,或者从低版本升级到高版本,例如VS2019到VS2015,或者VS2010到VS2015。 以VS2…...
iOS 9.3.5越狱环境安装配置
前言 家里有几个iOS设备,iTouch,iPad,都老旧了,正好弄来搭建开发环境。 目标:在iOS越狱环境上搭建基本的软件,将它变成小型Unix服务器和一个能开发iOS应用的环境。 什么是iOS越狱(iOS Jailbre…...
mac电脑解决Error: command failed: npm install --loglevel error --legacy-peer-deps
使用vue create xxx创建vue3项目的时候报错。 解决步骤: 1.sudo npm cache clean --force 2.再次创建就可以成功 补充:网上搜到很多方法,都尝试失败,因为遇到需要打开.vuerc,.npmrc的情况,记录一下怎样找到文件 1. 尝…...
Java中对象的finalization机制
本篇文章我们详细介绍Java中对象的finalization机制,以及怎么使用finalize()方法,将即将被回收的对象,拉回来。1、finalization机制Java语言提供了对象终止(finalization)机制来允许开发人员提供对象被销毁之前的自定义…...
proteus光敏电阻电路的arduino仿真
虽然Fritzing0.9.10有了仿真的功能,但都是测试板,能够仿真的很有限,所以还是要借助proteus来仿真。这里,我们来实先一个简单的光明电阻的仿真电路。本篇博文,重点演示proteus仿真arduino光敏电阻,arduino采…...
MySql面试精选—慢查询如何优化
目录 1、如何界定是慢查询SQL 2、如何快速定位低效率SQL 1)查看慢SQL语句...
一款OutLook信息收集工具
OutLook 这是一款burp插件,用于Outlook用户信息收集,在已登录Outlook账号后,可以使用该 插件自动爬取所有联系人的信息 安装 在burp扩展面板加载jar即可 功能介绍 All Users 加载插件后,进入Outlook联系人面板,…...
java多线程(二一)并发协作生产者消费者设计模式
1.两个线程一个生产者一个消费者 需求情景 两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。 涉及问题 同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加…...
怎么建设商业网站/中国网站建设公司
/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/...
网站建设延期合同书/苏州网站开发公司
Spring boot对于我来说是一个刚接触的新东西,学习过程中,发现这东西还是很容易上手的,Spring boot没配置时会默认使用Spring data jpa,这东西可以说一个极简洁的工具,可是我还是比较喜欢用mybatis,工具是没有最好的&am…...
个人又什么办法做企业网站/简短的软文范例
今天看了《管道的故事》一书,该书由《富爸爸穷爸爸》一书作者罗伯特清崎的富爸爸贝克.汉吉斯所著。 全书的核心思想是,我们每个人要想实现自己的财务自由,就必须建立自己的多种管道。这里的管道就是自动升值,不需要人投入太多时间…...
心理学网站的建设/76人vs猛龙
ftp内网地址,使用公司网络可以访问到,但是通过正式环境的服务器就不可以 改为使用ftp的公网地址,并且将正式环境服务器的公网ip让对方加入白名单后,可以访问了,但是,只能操作cd, ls等命令,不能…...
网址网域ip地址查询/seo百度关键字优化
前言 开发做得久了,总免不了会遇到各种坑。 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑——来来来,我们慢慢看。 入门篇 Base最基本的情况,如图所示:在页面底部有一个…...
wordpress批量拿站/百度快照手机版
一、分区与分区表分区和卷是一个经常换着使用的术语。通常情况下没有什么问题,因为他们是同一件事情。只是说法上稍有不同而已。当然,理解这两个术语之间的差异也是成为专业的调查人员所必须掌握的一部分。一个分区是一系列的连续的扇区所组成的…...