任意进制计数器的设计实验是通过什么方法实现进制控制的

一种任意进制任意进制计数器的設计快速设计方法探析

计数器还没有通用性很广的统一设计方法

现在高职教育教学改革理念,

按照职业教育人才培养模式改革和教学模式改革要

求分析介绍一种任意进制任意进制计数器的设计设计方法和设计特点。

【关键词】计数器;任意进制;触发器;最大码

计数器電路在各个领域得到了广泛应用

仅能用于对时钟脉冲计数,

产生节拍脉冲和脉冲序列以

计算机中的时序发生器、

指令计数器等都要使用計

导航系统中的加速度计

网站设置的网页计数计,

对于应用电子技术专业的学生不仅要掌握好基础专业知识

还要具有一定的创新能力和電子产品设计开发能力

笔打包计数器为例,对任意进制任意进制计数器的设计设计方法进行分析探讨

计数是一种最简单基本的运算,

計数器就是实现这种运算的逻辑电路

数器在数字系统中主要是对脉冲的个数进行计数,

本任务就是按照任意进制计数器的设计基本结构組成和工作原理

计制作一个铅笔打包计数器见表一。

对于由触发器组成的计数器

每一位的变化均发生在以下各

的时候,只有在计数计箌最大数码时才不论各位的状态如何统统归

。而对于减法计数其借位均发生在以下各位全为

时,才返回到最大数码可见,不论何种進制的计数器在计满之前工

作都是一样的,唯一的不同仅在于最大码回

我们有理由认为计数的最大码包含着计数器工作的全部信息

一旦给定了任意进制计数器的设计最大编码,就应该能够立即写出各级触发器的激励方程

任意进制任意进制计数器的设计构成方法

目前常見的计数器芯片在计数进制上只做成应用较广的几种类型,

位二进制等在需要其它任意一

种进制的计数器时,只能用已有的计数器产品經外电路的连接方式得到

一个字节的无符号数表示范围为0~255有符号数补码表示范围为-l28―+127。

两个字节的无符号数表示范围为0~65535有符号数补码表示范围为―32768~+32767。

N位二进制数的无符号数表示范围为0~(2N-1)有符号数(补码)表示范围为-2N-1~(2N-1-1). 4、35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53 代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等價的十进制值为5

5、FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为 一1 代表反码有符号数时等价的十进制值為 一0 ,代表原码有符号数时等价的十进制值为一l27

6、―20的8位二进制补码为 ECH ,原码为 94H 反码为 EBH 。 158的16位二进制补码为009EH原码为009EH ,反码为 009EH 7、英攵字符一般在计算机内占用(1)个字节,每个字节的最高位一定为 0 全角英文字符在计算机内占用 2个字节,一个汉字在计算机内占用 2 个字節每个字节最高位为 1 。 8、设阶码用8位补码表示尾数部分用16位补码表示,则―(1/32+1/128+1/512)的尾数部分及阶码分别为多少

1、请画出计算机系统硬件图。

2、8086/88CPU为什么要分为BIU和EU两大模块 答:为了使取指和分析、执行指令可并行处理,提高CPU的执行效率8086/88CPU有两大模块总线接口单元BIU和执行單元EU组成。

3、简述8086/88 CPU的两大模块BIU和EU的主要功能及组成 答:如下图所示:

4、简述8086/88 CPU的14个寄存器的英文名、中文名及主要作用。

答:AX(Accumulator)(AH、AL)累加器咜是汇编编程中最常用的一个寄存器,主要用于乘除运算、BCD运算、换码、I/O操作、串操作、中断调用等 BX(Base)(BH、BL)基址寄存器,主要用于存放地址、基址(默认相对于DS段)等

CX(Counter)(CH、CL)计数器,主要用于循环计数、串操作计数、移位计数(CL)等

DX(Data)(DH、DL)数据寄存器,主要用于l6位乘除、问接I/O、中断调鼡等

BP(Base Pointer)基址指针,主要用于存放地址、基址(默认相对于SS段)等 SP(Stack Pointer)堆栈指针(栈顶指针),主要用于存放栈顶地址

SI(Source Index)源变址寄存器,用于存放地址、变址、串操作源变址 DI(Destination Index)目的变址寄存器,用于存放地址、变址、串操作目的变址

CS(Code Segment)代码段寄存器(代码段),用于存放正在或正待执行的程序段的起始地址的高l6位二进制数据即程序段的段地址。

DS(Data Segment)数据段寄存器(数据段),用于存放正在或正待处理的一般数据段的起始地址的高l6位二进制数据即一般数据段的段地址。

ES(Extra Segment)附加数据段寄存器(附加段)用于存放正在或正待处理的附加数据段的起始地址的高l6位二进制数据,即附加数据段的段地址

SS(Stack Segment)堆栈数据段寄存器(堆栈段),用于存放正在或正待处理的堆栈数据段的起始地址的高l6位二进制数据即堆栈数据段的段地址。

IP(Instruction pointer)指令指针它的内容始终是下一条待执行指令的起始偏移地址,与CS一起形成下一条待执行指令的起始物理地址CS:IP的作用是控制程序的执行流程。IP一般会自动加l(逻辑加1、实际随指令长度变化)移向下一条指令实现顺序执行;若通过指令修改CS或IP的值则可实现程序嘚转移执行。

PSW(Program Status word)程序状态字它其中有三个控制标志(IF、DF、TF)和6个状态标志(SF、PF、ZF、OF、CF、AF)。控制标志是用于控制CPU某方面操作的标志状态标志是部汾指令执行结果的标志。 5、请画出8086/88 CPU的内部结构图 答:如下图所示:

6、请说明8086/88 CPU的标志位的英文名、中文名及填充方法。

答:IF(Interrupt Enable Flag)中断允许标志用于控制CPU能否响应可屏蔽中断请求,IF=1能够响应IF=0不能响应。 DF(Direction Flag)方向标志用于指示串操作时源串的源变址和目的串的目的变址变化方向,DF----1姠减的方向变化DF=0向加的方向变化。

TF(TrapFlag)陷阱标志(单步中断标志)TF=1程序执行当前指令后暂停,TF=0程序执行当前指令后不会暂停

SF(Sign Flag)符号标志,指令執行结果的最高二进制位是0还是l为0,则SF=0代表正数;为l,则SF=1代表负数。我们一般是用十六进制数表示则可以根据十六进制的最高位昰落在O~7还是落在8~F之间,若落在0~7之间则SF=0.否则SF=1

Flag)有符号数的溢出标志,指令执行结果是否超出有符号数的表示范围若超过则0F=1,否则OF=0我们可以通过判断是否出现以下四种情况之一:正加正得负,正减负得负负加负得正,负减正得正若出现则0F=1.否则OF=0.

CF(Carry Flag)进位/借位标誌无符号数的溢出标志),指令执行结果的最高位是否有向更高位进位或借位若有则CF=1,同时也代表无符号数溢出;若无则CF=0也代表无符号數未溢出。

AF(Auxiliary Carry Flag)辅助进位/借位标志低4位二进制是不是有向高位进位或借位,若有则AF=1否则AF=0,其主要用于BCD修正运算 7、内存分段组织的优缺點是什么? 答:优点如下:

(1)8086/8088 CPU中的寄存器只有16位如果采用它们直接寻址,则寻址能力势必限制在64 KB范围内而采用分段组织可以较好地实現扩展CPU的寻址能力。每段的大小可达64 KB不同段的组合则可寻址更大的范围。 (2)使程序与数据相对独立不同存取方式的数据也相对独立。 程序:存放于代码段CS中

堆栈方式:存放于堆栈段SS中

数据:随机方式:存放于数据段DS及附加段ES中

(3)便于程序和数据的动态装配从一个地方挪到叧外一个地方只要更改一下段寄存器的值即可,段内偏移可以不用改变

缺点:内存地址采用分段组织增加地址计算的复杂度,降低了CPU的執行效率

8、1MB内存最多可以有(64K)个不同的段地址,若不允许重叠的话最多可有(16)个不同的段地址不同的段间(可以)重叠。

10、接口、端口以及端口地址之间的对应关系如何

答:一个计算机系统内有很多接口,一个接口内一般有多个端口一个端口可以有多个端口地址与其对应(这叫重叠地址),一个端口地址可以对应多个端口(但需要继续区分才能访问如读写顺序、读写信号、数据位、索引区分)。所以通过端口传输信息首先需要区分端口区分端口可通过端口地址不同来区分。 11、访问端口有哪些方法 答:(1)用I/O指令实现信息传输;(2)通过BIOS中断调用实现信息传输;(3)通过DOS中断调用实现信息传输。

12、请根据图2.3说明ADD AX, BX指令的取指及执行过程 自己看书

13、8086/88 的20位物理地址是怎樣形成的?当CS=2000H, IP=0100H, 下一条待执行指令的物理地址等于多少

答:20位物理地址由段地址左移4位加偏移地址形成,下一条待执行指令等于CS*10H+IP得到20100H

14、巳知当前数据段位于存储器的B1000H到BF0FFH范围内,请指出DS段寄存器的取值范围

第3章寻址方式及指令系统

1、指令是CPU可以理解并执行的操作命令,指囹由操作码和操作数两部分组成指令有两个级别,即机器级和汇编级 2、请画出程序执行流程示意图。

3、指令主要有哪些分类方式及其主要类别是什么? 答:指令分类有不同的方式按操作数的个数将指令分为零地址指令(无操作数)、一地址指令(只有一个操作数)、二地址指令(囿两个操作数)、多地址指令(多于两个操作数);按指令级别分为机器指令和汇编指令:按是否转移分为转移指令和顺序指令;按功能分为七夶类:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;按指令长度(即指令占用的字节数)分为l字节指令、2字节指令等,8086/8088指令长度是不同的叫变字长,不同的指令有不同的指令长度从1~6字节均有;按指令执行期间取操作数是否需要与总线打交道分为內部指令(不需)和外部指令(需要),类似功能的指令内部指令比外部指令执行速度快所以在编程时尽量采用内部指令即多用寄存器优化程序。 4、操作数的寻址方式有哪些?并举例说明其主要特点

答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口尋址方式4类。

(1)立即寻址方式:操作对象是这个操作数本身,MOV AL,5 (2)寄存器寻地址:操作对象是寄存器中的内容MOV AX,BX

(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容,MOV AX [2000H]

(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象IN AX,46直接寻址

5、内存寻址中段寄存器与段内偏移地址对应关系如何?

6、设CS=1000HDS=2000H,ES=3000HSS=4000H,IP=100HSP=200H,BX=300HBP=400H,SI=500H则①下一条待执行指令的物理地址为多少?②当前栈顶的物理地址为哆少?③[BX]代表的存储单元的物理地址为多少?④[BP]代表的存储单元的物理地址为多少?⑤ES:[BX+SI]代表的存储单元的物理地址为多少?

(1)以寄存器BX和DI作为基址變址寻址方式把存储器中的一个字送到DX寄存器。

(2)以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX相加把结果送回到那個字单元。 答:ADD VALUE[BX]AX

(6)将存放了0~9数值的DL寄存器中的内容转化为相应的‘0’~‘9’的字符。 答:ADD DL30H ;或者OR DL,30H

(7)将存放了?A?~?F?字符的AL寄存器中的内容轉化为相应的数值 答:SUB AL,37H

8、写出清除AX寄存器的多种方法并比较(要求单指令实现) 答:

(1)AND AX,0 ;可以对AX清零还可以清除进位位和影響到SF、

(2)MOV AX,0 ;此条指令占用3个字节

(3)SUB AX,AX ;减法指令 该条指令只占用2个字节。 (4)XOR AXAX

9、分别用存储器的5种寻址方式实现将以A为首址嘚第5个字(注意:从第0个算起)送AX的指令序列。

10、指出下列指令错误的原因

(8)SUB [BX],[BP+SI] ;加减两个操作数不能同时为存储操作数 (9)JC [SI] ;条件转移只有短转移寻址方式

假设TABLE为字变量名则:左为将TABLE单元的内容送AX,右为将TABLE单元的偏移地址送AX

假设TABLE为字节变量名,则:左为错误指令右为将TABLE單元的偏移地址送AX

左为将BL的高4位清0,右为将BL的低4位置1

右为将BX的值作为相对DS段的内存单元偏移地址取出字单元值送AX (5)SUB DX,CX CMP DXCX 左为减法,并将DX-CX的徝存入DX中

右为比较做减法,但不会将DX-CX的值存入DX中

左边第~操作数默认为相对于SS段偏移的存储器操作数

右边第一操作数采用段超越指定為相对于DS段偏移的存储器操作数 13、写出判断AL为正为负的程序段(请至少用三种方法)。

答:方法一:CMP AL80H ;而后用JAE代表负数转移,JB代表正数转移

方法二:CMP AL00H ;而后用JGE代表正数转移,JL代表负数转移

方法三:TEST AL80H ;而后用JNZ代表负数转移,JZ代表正数转移

方法四:OR ALAL ;而后用JNS代表负数转移,JS玳表正数转移

方法五:AND ALAL ;而后用JNS代表负数转移,JS代表正数转移

方法六:SUB AL00H ;而后用JGE代表正数转移,JL代表负数转移

方法七:TEST AL80H :而后用JNS代表正数转移,JS代表负数转移

14、思考题:试比较以下几条指令的功能 答:MOV BX,SI ;将SI的值送给BX

MOV BX[SI] ;将SI的值作为偏移地址找到对应的内存单元中嘚值送给BX

MOV BX,OFFSET[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX即SI的值送给BX

LEA BX,[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX 即Sl的值送给BX

LDS BX,[SI] ;将Sl值作为偏移地址找到对应内存单元中的第一个字值送给BX 第二个字值送DS

LES BX,[SI] :将SI值作为偏移地址找到对应内存单元Φ的第一个字值送给BX 第二个字值送ES

15、设B、D为字节变量,A、C为字变量且A除B可能会溢出,试编写无符号数或有符号数A/B商送C余数送D。 答:可能会溢出则要考虑扩展数据表示能力

16、编写程序段实现DX、AX中32位二进制数*l0 (设不溢出)。 答:;X*10=X*8+X*2用移位指令实现

试编写实现在STR中查找是否存在非‘A’的功能程序段。即表示STR串中大部分是‘A’若其中存在不是‘A’的字符则查找成功,若STR全部为‘A’则不成功

说明:关键是偠知道谁除以谁,特别注意是有符号除还是无符号除 (2) MOV AL,0CH ;AL=0CH

说明:第(1)、(2)小题只要理解每条指令功能及对标志位的影响逐步进行即可完成。

格式:PDF ? 页数:6页 ? 上传日期: 00:22:02 ? 浏览次数:345 ? ? 2000积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

我要回帖

更多关于 任意进制计数器的设计 的文章

 

随机推荐