汇编语言实现十进制加减计算器

汇编语言实现十进制加减计算器
汇编语言实现十进制加减计算器

课程设计

题目十进制数加减计算器

学院计算机科学与技术

专业计算机科学与技术

班级计算机0808班

姓名何爽

指导教师袁小玲

2010 年12 月31 日

课程设计任务书

学生姓名:何爽专业班级:计算机0808班

指导教师:袁小玲工作单位:计算机科学与技术学院

题目: 十进制数加减计算器的设计

初始条件:

理论:学完“汇编语言程序设计”、“课程计算机概论”、“高级语言程序设计”和“数字逻辑”。

实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可以在其上进行设计。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)十进制数加减计算器的设计。

(2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。

(3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。

(4)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:

在正文第一行写课程设计题目;

1.需求说明(要求、功能简述)或问题描述;

2.设计说明(简要的分析与概要设计);

3.详细的算法描述;

4.源程序与执行结果(含测试方法和测试结果);

5.使用说明;

6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该

程序进一步改进扩展的设想)。

时间安排:

设计时间一周:周1:查阅相关资料。

周2:系统分析,设计。

周3~4:编程并上机调试。

周5:撰写课程设计报告。

设计验收安排:20周星期五8:00起到计算机学院科学系实验中心进行上机验收。

设计报告书收取时间:20周的星期五下午5:00之前。

指导教师签名: 2010年12月31日

系主任(或责任教师)签名: 2010年12月31日

目录

1.需求说明 (4)

2.设计说明 (4)

2.1 简要分析 (4)

2.2 概要设计 (4)

2.2.1 主要模块 (4)

2.2.2 主函数结构 (5)

3.详细的算法描述 (6)

3.1 详细的算法描述 (6)

3.2 算法流程图 (11)

3.2.1 程序流程图 (11)

3.2.2 输入函数(inputdec)流程图 (12)

3.2.3 输出函数(outputdec)流程图 (12)

3.2.4 输出算术表达式函数(show)流程图 (13)

4.源程序与执行结果 (13)

4.1 源程序 (13)

4.2 执行结果 (19)

4.2.1 测试方法 (19)

4.2.2 测试结果 (19)

5.使用说明 (20)

6.总结 (21)

十进制数加减计算器的设计

1.需求说明

十进制数加减计算器的设计,要求完成:

(1)用汇编语言正确编写程序,完成简单的十进制数的加减运算,

(2)求能正确进行输入和输出操作,界面追求友好,尽量实现菜单操作

(3)用若干测试用例来测试程序的正确性

2.设计说明

2.1 简要分析

要正确、友好地完成用汇编语言设计十进制数的加减计算器,我们应该完成以下几个功能:

(1)相关菜单及字符输出的设计

(2)十进制数的输入

(3)十进制数的输出

(4)加法运算

(5)减法运算

(6)输出运算表达式

(7)回车换行功能(因为为了控制格式,经常要用到)

2.2 概要设计

2.2.1 主要模块

(1)菜单及字符

menu db ‘|--------------------------------------|’0dh,0ah

db ‘| 1.Add |’0dh,0ah

db ‘| 2.Sub |’0dh,0ah

db ‘| 0.Exit |’0dh,0ah

db ‘|--------------------------------------|’0dh,0ah

db ‘Please input your choice:$’

mess1 db 'Please input the first number: $'

mess2 db 'Please input the second number: $'

mess3 db 'The result is : $'

mess4 db '-$'

mess5 db '+$'

mess6 db '=$'

(2)十进制数的输入

inputdec proc

实现代码

ret

inputdec endp

(3)十进制数的输出

outputdec proc

实现代码

ret

outputdec endp

(4)加法运算

addfun proc

显示mess1 ;提示输入第一个数

call inputdec ;输入第一个数

显示 mess2 ;提示输入第二个数

call inputdec ;输入第二个数

做加法运算

显示mess3 ;提示输入第一个数

call show ;输出运算表达式

ret

addfun endp

(5)减法运算

subtract proc

显示mess1 ;提示输入第一个数

call inputdec ;输入第一个数

显示 mess2 ;提示输入第二个数

call inputdec ;输入第二个数

做减法运算

显示mess3 ;提示输入第一个数

call show ;输出运算表达式

ret

subtract endp

(6)输出运表达算式函数

show proc

call outputdec ;输出第一个数

输出运算符号

call outputdec ;输出第二个数

输出等号

call outputdec ;输出运算结果

ret

show endp

(7)回车换行

crlf proc

实现代码

ret

crlf endp

2.2.2 主函数结构

main proc

显示menu ;供选择

输入选项

判断选项

Case 1: call addfun

Case 2: call subtract

Case 3: 退出程序

main endp

3.详细的算法描述

3.1详细的算法描述

(1)main函数

main proc

push ds

xor ax,ax

push ax

mov ax,data

mov ds,ax

ks:lea dx,menu ;输出菜单项

mov ah,09h

int 21h

mov al,0

mov ah,01h ;输入选择项

int 21h

sub al,30h

cmp al,2 ;判断选择项

jz l2 ;如果输入为2 ,则跳转到l2 cmp al,1

jz l1 ;如果输入为1,则跳转到l1 mov ah,4ch ;这两句为正常返回dos界面 int 21h

l1:call addfun ;调用加法函数

jmp ks ;返回到菜单

l2: call subtract;调用减法操作

jmp ks ;返回到菜单

main endp

(2)addfun函数(加法运算函数)

addfun proc

call crlf

mov bp,1 ;给下面的show输出中间的运算符做标记,1为加号

lea dx,mess1 ;给出输入第一个数的提示信息

mov ah,09h

int 21h

call inputdec;调用输入函数,输入第一个数

mov si,bx ;第一个数保存在si中

lea dx,mess2 ;给出输入第二个数的提示信息

mov ah,09h

int 21h

call inputdec;调用输入函数,输入第二个数

mov di,bx ;第二个数保存在di中

mov bx,si ;将第一个数保存到bx中,再进行操作,以免影响到的输出 add bx,di ;第一个数和第二个数相加,结果保存在bx中

lea dx,mess3 ;给出输出结果的提示信息

mov ah,09h

int 21h

call show ;调用show函数,输出算术表达式

ret ;返回函数调用处

addfun endp

(3)subtract函数(减法运算函数)

subtract proc

call crlf

mov bp,2 ;给下面的show输出中间的运算符做标记,2为减号

lea dx,mess1;给出输入第一个数的提示信息

mov ah,09h

int 21h

call inputdec;调用输入函数,输入第一个数

mov si,bx ;第一个数保存在si中

lea dx,mess2 ;给出输入第一个数的提示信息

mov ah,09h

int 21h

call inputdec;调用输入函数,输入第一个数

mov di,bx ;第二个数保存在di中

mov bx,si

cmp bx,di ;比较第一个数和第二人数的大小

js subl1 ;如果为负(第一个数小一些)则跳转

sub bx,di ;否则直接进行计算,结果保存在bx中

jmp subl2

subl1:mov bp,3 ;为show里面是否输出负号作准备,3的时候要输出负号

push di ;先将第二个操作数进栈,否则下面的减法操作会将其值改变 sub di,bx

mov bx,di

pop di ;第二个操作数出栈,再赋给di寄存器

subl2:lea dx,mess3 ;输出运算表达式的提示

mov ah,09h

int 21h

call show ;调用show函数,输出运算表达式

ret

subtract endp

(4)inputdec函数(十进制输入函数)

inputdec proc

mov bx,0

il0:mov ah,01h ;输入数字

int 21h

cmp al,0dh ;判断是否为回车

jz iexit ;如果是回车,则返回到函数调用处

sub al,30h ;得到输入数字的真实大小

mov ah,0

xchg bx,ax ;将bx值与ax值交换,因为下面乘以10是将ax中的值乘10 mov cx,10 ;注意,这里不能用CL,否则数较大时就会出现问题

mul cx ;将ax中的值乘以10,也就是将bx中原来的值乘以10

add bx,ax

jmp il0 ;进行输入下一数值位

iexit:call crlf

ret

inputdec endp

(5)outputdec函数(十进制输出函数)

outputdec proc

push bp

mov bp,0 ;前导0输出与否的标志,0时不输出,1时输出

mov ax,bx

mov dx,0 ;在进行除法之前,要对dx赋0,否则结果出错

mov cx,10000

div cx ;除法,字操作,商在ax中,余数在dx中

mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp dl,0 ;将万位同0比较

jz ol0 ;如果万位为0则不输出万位

mov bp,1 ;如果万位不为0,则应将bp设为1,以后的0都要输出

or dl,30h

mov ah,02h

int 21h ;输出万位

ol0:mov ax,bx ;输出千位的方法与万位相同

mov dx,0

mov cx,1000

div cx ;字操作,商在ax中,余数在dx中

mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp bp,0

jz ol1

or dl,30h

mov ah,02h

int 21h ;输出千位

jmp ol2

ol1:cmp dl,0

jz ol2

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出千位

ol2:mov ax,bx ;输出百位与千位、万位方法相同

mov dx,0

mov cx,100

div cx ;字操作,商在ax中,余数在dx中

mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp bp,0

jz ol3

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出百位

jmp ol4

ol3:cmp dl,0

jz ol4

or dl,30h

mov ah,02h

int 21h ;输出百位

ol4:mov ax,bx ;输出十位的方法与前面几位方法相同

mov cl,10

div cl ;字节操作,商在al中,余数在ah中

mov bl,ah ;保存余数,作为下一次裤除数,也就是个位数 mov dl,al

cmp bp,0

jz ol5

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出十位

jmp ol6

ol5:cmp dl,0

jz ol6

or dl,30h

mov ah,02h

int 21h ;输出十位

ol6:mov dl,bl ;在上面,bl中的数直接就应该为个位,所以直接输出 or dl,30h

mov ah,02h

int 21h

pop bp ;恢复bp

ret

outputdec endp

(6)show函数(输出运算表达式函数)

show proc

push bx ;把运算结果保存起来

mov bx,si ;第一个数放在si中

call outputdec;输出第一个数

cmp bp,3 ;是否为减号

jz sl0

cmp bp,2 ;判断是否为减号

jz sl0

lea dx,mess5 ;输出加号

mov ah,09h

int 21h

jmp sl1

sl0:lea dx,mess4 ;输出减号

mov ah,09h

int 21h

sl1:mov bx,di ;第二个数放在di中

call outputdec ;输出第二个数

lea dx,mess6 ;输出等号

mov ah,09h

int 21h

cmp bp,3 ;判断是否需要输出负号

jnz sl2

lea dx,mess4 ;输出负号

mov ah,09h

int 21h

sl2:pop bx ;得到运算结果 call outputdec;输出运算结果 call crlf

ret

show endp

(7)crlf函数(输出回车换行函数) crlf proc

push ax

push dx

mov ah,02h

mov dl,0dh ;输出回车

int 21h

mov dl,0ah ;输出换行

int 21h ;ah值被改变 pop dx

pop ax

ret

crlf endp

3.2 算法流程图

3.2.4 输出算术表达式(show)流程图

4.

4.1 源程序

menu db ‘’0dh,0ah db ‘’0dh,0ah db ‘’0dh,0ah db ‘’0dh,0ah

db ‘’0dh,0ah

db ‘

push ds

push ax

mov ax,data

mov ds,ax

ks:lea dx,menu

mov ah,09h

int 21h

mov al,0

mov ah,01h

int 21h

sub al,30h

cmp al,2

jz l2

jz l1

mov ah,4ch

int 21h

l1:call addfun

jmp ks

l2: call subtract

jmp ks

main endp ;主函数结束

addfun proc ;加法运算函数

call crlf

mov bp,1 ;给下面的show输出中间的运算符做标记 lea dx,mess1

mov ah,09h

int 21h

call inputdec

mov si,bx ;第一个数保存在si中

lea dx,mess2

mov ah,09h

int 21h

call inputdec

mov di,bx ;第二个数保存在di中

mov bx,si

add bx,di

lea dx,mess3

mov ah,09h

int 21h

call show ;输出结果

ret

addfun endp ;加法运算函数结束

subtract proc ;减法运算函数

call crlf

mov bp,2 ;给下面的show输出中间的运算符做标记 lea dx,mess1

mov ah,09h

int 21h

call inputdec

mov si,bx ;第一个数保存在si中

lea dx,mess2

mov ah,09h

int 21h

call inputdec

mov di,bx ;第二个数保存在di中

mov bx,si

js subl1 ;如果为负则跳转

sub bx,di

jmp subl2

subl1:mov bp,3 ;为show里面是否输出负号作准备

push di

sub di,bx

mov bx,di

pop di

subl2:lea dx,mess3

mov ah,09h

int 21h

call show

ret

subtract endp ;减法运算函数结束

inputdec proc ;十进制输入函数

mov bx,0

il0:mov ah,01h

int 21h

cmp al,0dh ;判断是否为回车

jz iexit

sub al,30h

mov ah,0

xchg bx,ax

mov cl,10

mul cl

add bx,ax

jmp il0

iexit:call crlf

ret

inputdec endp ;十进制输入函数结束

outputdec proc ;十进制输出函数

push bp ;用来做前导0的标记

mov bp,0

mov ax,bx

mov dx,0 ;在进行除法之前,要对dx赋0,否则结果over devide mov cx,10000

div cx ;字操作,商在ax中,余数在dx中

mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp dl,0

jz ol0

mov bp,1

or dl,30h

int 21h ;输出万位

ol0:mov ax,bx

mov dx,0

mov cx,1000

div cx ;字操作,商在ax中,余数在dx中 mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp bp,0

jz ol1

or dl,30h

mov ah,02h

int 21h ;输出千位

jmp ol2

ol1:cmp dl,0

jz ol2

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出千位

ol2:mov ax,bx

mov dx,0

mov cx,100

div cx ;字操作,商在ax中,余数在dx中 mov bx,dx ;保存余数,作为下一次裤除数

mov dl,al

cmp bp,0

jz ol3

or dl,30h

mov ah,02h

int 21h ;输出百位

jmp ol4

ol3:cmp dl,0

jz ol4

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出百位

ol4:mov ax,bx

mov cl,10

div cl ;字节操作,商在al中,余数在ah中 mov bl,ah ;保存余数,作为下一次裤除数

mov dl,al

cmp bp,0

jz ol5

or dl,30h

mov ah,02h

int 21h ;输出十位

jmp ol6

ol5:cmp dl,0

jz ol6

mov bp,1

or dl,30h

mov ah,02h

int 21h ;输出十位

ol6:mov dl,bl

or dl,30h

mov ah,02h

int 21h

pop bp ;恢复bp

ret

outputdec endp ;十进制输出函数结 show proc ;输出运算式函数

push bx ;把运算结果保存起来 mov bx,si ;第一个数放在si中 call outputdec

cmp bp,3 ;是否为减号

jz sl0

cmp bp,2

jz sl0

lea dx,mess5

mov ah,09h

int 21h

jmp sl1

sl0:lea dx,mess4

mov ah,09h

int 21h

sl1:mov bx,di ;第二个数放在di中 call outputdec

lea dx,mess6

mov ah,09h

int 21h

cmp bp,3

jnz sl2

lea dx,mess4

mov ah,09h

int 21h

sl2:pop bx ;得到运算结果

call outputdec

call crlf

ret

show endp ;输出运算式函数结束

crlf proc ;回车换行函数

push ax

push dx

mov ah,02h

mov dl,0dh

int 21h

mov dl,0ah

int 21h ;ah值被改变

pop dx

pop ax

ret

crlf endp ;回车换行函数结束

code ends ;代码段结束

end main ;程序结束

4.2 执行结果

4.2.1 测试方法

本次测试我们采用的是通过菜单形式,输出选择项,然后根据提示信息,输入相关数字,进行举例测试。

对于加法,我们是随便输入两组数:10与1000 122与321

对于减法,我们也是随意输入两组数,200与2 (结果为正的情况)

10与198(结果为负的情况)对于本题,我们也设置了错误结果测试:加法60000与6000,减法 2与70000

4.2.2 测试结果

(1)加减法正确测试结果如下:

减法测试结果

加法测试结果

(2)错误结果显示如下:

错误结果

错误结果分析:

加法,60000+6000等于66000,而我们用的的BX寄存器保存值,BX寄存器最大能保存16位数字,最大能表示的无符号数为:2^16-1=65535;而值66000

超过了范围,66000-2^16=464,即把66000当成了补码,所以为464

减法,2-70000=69998,与加法错误一样,69998-2^16=4462,即把4462当成了69998补码。

5.使用说明

1.本次程序的使用说明,我们先把源程序拷贝到一个文本文件中,并把它命名为

一个汇编程序的格式(*.asm),如ca.asm

2.我们在dos中找到masm.exe与link.exe文件所在的文件夹

masm>masm ca

………

masm>link ca

………

masm>ca

然后根据提示信息进行相关操作

3.操作示例图如下:

进入dos找到masm.exe所在的文件夹

上一步回车后,进行如图所示的操作

接着一上步回车,输入ca,便进入了操作演示界面

6.总结

经过几天的奋斗,本次汇编语言课程设计总算是完成了。本次课程设计,是对我所学汇编语言知识的一次比较综合的检测,同是也是一次很有意义的实践训练。

一拿到题目的时候,一看,是设计十进制加减计算器,心里面感觉好像比较简单,好像也有了大体模块:菜单提示,加法、减法运算操作,十进制输入、输出操作,主函数。可是当我真正的动起手的时候,才发现很多基本问题都忘记了,比如:汇编程序的格式只记得一般都有代码段和数据段,但具体怎么写?菜单,我要怎么设置字符串变量?输入、输出操作,用的是哪个寄存器?比如这些问题,都把我给难住了。

后来看看课本,也把以前写的程序看了看,才对这些基本问题有了比较清楚的了解。写程序确实不是很难,几个基本模块没有花多长时间就写好,但是后来陆续碰到各种各样的错误,修改它可就相当困难了,明明觉得逻辑上应该是对的呀,可是结果却相差很远。典型的错误有以下几种情况。

比如,有一次,无论输入什么,程序直接跳出,加法、减法都没有执行。后来分析才发现,是因为在输入选项之后,我为了控制格式,调用了回车换行函数(当时没有对dx,ax进行进栈和出栈操作)再进行判断,此时al的值因为调用int 21h语句而被改变为0了,所以你无论输入什么数,都会执行“0.Exit”所对应的语句,自然就会跳出程序。再比如有一次无论是加法还是减法,都会出现“Device Overload”错误,后来我在除cx(10000/1000/100)之前将DX置0,即做了一个“mov dx,0 ”操作之后问题就解决了。再之后在我认为程序正确了的时候,我突然想输入一个大点的数,比如输入3000,它会输出440,很奇怪,应该是数的表示范围出现了问题。经过分析推敲,我将十进制输入函数(inputdec)中的”mov cl,10 mul cl”语句是的cl改为了cx,果然问题解决了。因为我们用”mul cl”语句的时候,系统是将cl的值乘发al中的值,并不我们想要的ax(因为我们之前做的操作是xchg ax,bx)中的值,所以出现了上面的问题。当我们把cl换成cx以后,系统会将cx的值乘以ax中的值,符合我的意愿。

本次课程设计,刚开始程序很粗糙:不仅没有解决前导0输出的问题,而

且结果也仅输出一个数字而已。后来我慢慢修改,去掉了前导0,然后让结果以算术表达式的形式输出,我觉得这是我本次实验做的还不错的地方。

但是,同时我的程序不足之处也是很明显的:第一,没能够为错误输出提供提示信息;第二,没有很好的解决连续加减的问题,一次只能输出两个数;

第三点就是没有涉及到括号问题(也是运算顺序问题),智能性方面很欠缺。

所以如果要完善本程序的时候,首先要解决以上三点问题,让程序更智能性一些。另外可以考虑加上乘除法功能,这样,计算器功能更强大。然后还应该考虑一下多进制的问题。

本次课程设计让我对汇编语言的几个重要知识点:寄存器问题、基本命令(mov,加减乘除操作,跳转、循环操作)、汇编程序的基本格式以及函数的定义和调用有了一个比较清楚的了解。通过本次实验,我也学会了一种调试程序的方法,那就是“一个函数一个函数单独测试”的方法。另外一般在编写程序时,我首先应该写出程序的主体框架,然后再进行修饰、完善。在查错时,我们一定要一条语句一条语句的推敲,绝不能疏忽大意,因为错误的程序往往都是形似而神非,往往错误就在那一两条语句,所以必须仔细。

总之,这次汇编语言课程设计让我受益菲浅。是一次重要的,有意思的实践。

本科生课程设计成绩评定表

班级:计算机0808姓名:何爽学号:012

及格(60-69分)、60分以下为不及格

指导教师签名:

20年月日

同步二进制加法计数器

同步二进制加法计数器 F0302011 5030209303 刘冉 计数器是用来累计时钟脉冲(CP脉冲)个数的时序逻辑部件。它是数字系统中用途最广泛的基本部件之一,几乎在各种数字系统中都有计数器。它不仅可以计数,还可以对CP 脉冲分频,以及构成时间分配器或时序发生器,对数字系统进行定时、程序控制操作。此外,还能用它执行数字运算。 1、计数器的特点: 在数字电路中,把记忆输入CP脉冲个数的操作叫做计数,能实现计数状态的电子电路称为计数器。特点为(1)该电路一般为Moore型电路,输入端只有CP信号。 (2)从电路组成看,其主要组成单元是时钟触发器。 2、计数器分类 1) 按CP脉冲输入方式,计数器分为同步计数器和异步计数器两种。 同步计数器:计数脉冲引到所有触发器的时钟脉冲输入端,使应翻转的触发器在外接的CP脉冲作用下同时翻转。 异步计数器:计数脉冲并不引到所有触发器的时钟脉冲输入端,有的触发器的时钟脉冲输入端是其它触发器的输出,因此,触发器不是同时动作。 2) 按计数增减趋势,计数器分为加法计数器、减法计数器和可逆计数器三种。 加法计数器:计数器在CP脉冲作用下进行累加计数(每来一个CP脉冲,计数器加1)。 3) 按数制分为二进制计数器和非二进制计数器两类。 二进制计数器:按二进制规律计数。最常用的有四位二进制计数器,计数范围从0000到1111。 异步加法的缺点是运算速度慢,但是其电路比较简单,因此对运算速度要求不高的设备中,仍不失为一种可取的全加器。同步加法优点是速度快,虽然只比异步加法快千分之一甚至几千分之一秒,但对于计数器来讲,却是十分重要的。所以在这个高科技现代社会中,同步二进制计数器应用十分广泛。 下图为三位二进制加法计数器的电路图。 图1 三位二进制计数器 图示电路为对时钟信号计数的三位二进制加法计数器或称为八进制加法计数器。 该电路的经典分析过程: 1.根据电路写出输出方程、驱动方程和状态方程 2. 求出状态图 3.检查电路能否自启动 4.文字叙述逻辑功能 解:

汇编语言实现十进制加减计算器

课程设计 题目十进制数加减计算器学院计算机科学与技术 专业计算机科学与技术 班级计算机0808班 姓名何爽 指导教师袁小玲 2010 年12 月31 日

课程设计任务书 学生姓名:何爽专业班级:计算机0808班 指导教师:袁小玲工作单位:计算机科学与技术学院 题目: 十进制数加减计算器的设计 初始条件: 理论:学完“汇编语言程序设计”、“课程计算机概论”、“高级语言程序设计”和“数字逻辑”。 实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)十进制数加减计算器的设计。 (2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。 (3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。 (4)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 在正文第一行写课程设计题目; 1.需求说明(要求、功能简述)或问题描述; 2.设计说明(简要的分析与概要设计); 3.详细的算法描述; 4.源程序与执行结果(含测试方法和测试结果); 5.使用说明; 6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该 程序进一步改进扩展的设想)。 时间安排: 设计时间一周:周1:查阅相关资料。 周2:系统分析,设计。 周3~4:编程并上机调试。 周5:撰写课程设计报告。 设计验收安排:20周星期五8:00起到计算机学院科学系实验中心进行上机验收。 设计报告书收取时间:20周的星期五下午5:00之前。 指导教师签名: 2010年12月31日 系主任(或责任教师)签名: 2010年12月31日

十进制4位加法计数器设计

洛阳理工学院 十 进 制 4 位 加 法 计 数 器 系别:电气工程与自动化系 姓名:李奇杰学号:B10041016

十进制4位加法计数器设计 设计要求: 设计一个十进制4位加法计数器设计 设计目的: 1.掌握EDA设计流程 2.熟练VHDL语法 3.理解层次化设计的内在含义和实现 设计原理 通过数电知识了解到十进制异步加法器的逻辑电路图如下 Q3 则可以通过对JK触发器以及与门的例化连接实现十进制异步加法器的设计 设计内容 JK JK触发器的VHDL文本描述实现: --JK触发器描述 library ieee; use ieee.std_logic_1164.all; entity jk_ff is

port( j,k,clk: in std_logic; q,qn:out std_logic ); end jk_ff; architecture one of jk_ff is signal q_s: std_logic; begin process(j,k,clk) begin if clk'event and clk='0' then if j='0' and k='0' then q_s <= q_s; elsif j='0' and k='1' then q_s <= '0'; elsif j='1' and k='0' then q_s <= '1'; elsif j='1' and k='1' then q_s <= not q_s; end if; end if; end process; q <= q_s; qn <= not q_s; end one; 元件门级电路: 与门VHDL文本描述实现: --与门描述library ieee; use ieee.std_logic_1164.all;

汇编语言入门

汇编语言入门教程 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。 内存是电脑运作中的关键部分,也是电脑在工作中储存信息的地方。内存组织有许多可存放

计算机组成原理与汇编语言(课后习题).

《计算机组成原理与汇编语言》习题 第一章 1. 计算机中为什么都采用二进制数而不采用十进制数? 2. 写出下列用原码或补码表示的机器数的真值: a (1 01101101 (2 10001101 (3 01011001 (4 11001110 3. 填空: a (1 (123410=(2=(16 b (2 (34.687510=(2=(16 c (3 (271.33 10 = ( 2= ( 16 d (4 (101011001001 2 = ( 10 = ( 16 e (5 (1AB.E 16 = ( 10 = ( 2 f (6 (10101010.0111 2= ( 10 = ( 16 4. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码、和补码。 5. 已知[X]补=01010101B,[Y]补=10101010B,[Z]补=1000111111111111B,求X、Y、Z及X+Y,Y-Z的十进制值为多少? 6. 用8位补码进行下列运算,并说明运算结果的进位和溢出: a (1 33+114 (233-114 (3(-33+114 (4(-33 -114 7. 将下列十进制数表示为8421BCD码: (18609 (25254 (32730 (42998

8. 将下列8421BCD码表示为十进制数和二进制数: a (101111001 (2001010000101 (3022********* (4 010********* 9. 将下列数值或字符串表示为相应的ASCII码: (151 (27FH (3C6H (4Computer (5 how are you? 10. 定点数和浮点数表示方法各有什么特点? 11. 微处理器、微型计算机和微型计算机系统三者之间有什么不同? 12. 微型计算机由哪几部分组成,各部分功能是什么? 13. CPU在内部结构上由哪几部分组成,CPU应具备什么功能? 14. 简述计算机执行指令和执行程序的过程。以书中的例子为例,说明在此三条指令执行中,哪些信号属于数据流,哪些信号属于控制流? 15. 微型计算机外部为什么采用三总线结构? 16. 数据总线和地址总线在结构和作用上有什么不同? 17. 如果某几种CPU的地址总线分别有8、16、20、32条,它们各自能寻址的存储器的容量是多少? 18. 什么是硬件,什么是软件,硬件和软件的关系如何? 19. 说明位、字节、字长的概念及它们之间的关系。 20. 计算机的发展趋势有哪些?你如何看待冯?诺依曼计算机体系结构理论? 21. 说出几种型号的CPU,它们各有什么特点? 22. 说出目前流行的几种主机板的类型以及它们的性能特点。

verilog HDL十进制加减法计数器报告

十进制加减法计数器 1.实验要求 (1)在Modelsim环境中编写十进制加减法计数器程序; (2)编译无误后编写配套的测试程序; (3)仿真后添加信号,观察输出结果。 2.设计程序如下 module decade_counter #(parameter SIZE=4) (input clock,load_n,clear_n,updown, input [SIZE-1:0]load_data, output reg [SIZE-1:0]q ); always @(negedge load_n,negedge clear_n,posedge clock) if (!load_n) q<=load_data; else if (!clear_n) q<=0; else //clock??? if(updown) q<=(q+1)%10; else begin if(q==0) q<=9; else q<=q-1; end endmodule 3.测试程序如下 `timescale 1ns/1ns module test_decade_counte; reg clock,load_n,clear_n,updown; reg [3:0]load_data; wire [3:0]q; decade_counter T1(clock,load_n,clear_n,updown,load_data,q); initial begin clock=0;clear_n=0;

#30 clear_n=1;load_n=0;load_data=7; #30 load_n=1;updown=0; #300 updown=1; #300 updown=0; #300 updown=1; #300 $stop; end always #10 clock=~clock; always @(q) $display("At time%t,q=%d",$time,q); endmodule 4.波形如下 5.测试结果如下 # At time 0,q= 0 # At time 30,q= 7 # At time 70,q= 6 # At time 90,q= 5 # At time 110,q= 4 # At time 130,q= 3 # At time 150,q= 2 # At time 170,q= 1 # At time 190,q= 0 # At time 210,q= 9 # At time 230,q= 8 # At time 250,q= 7 # At time 270,q= 6 # At time 290,q= 5 # At time 310,q= 4 # At time 330,q= 3

计算机组成原理与汇编语言综合练习题

计算机组成原理与汇编语言综合练习题 一、填空题 1.表示一个数值数据的基本要素是、、。 2.8位二进制补码所能表示的十进制整数范围是至,前者的二进 制补码表示为,后者的二进制补码表示为。 3.某机定点整数格式字长8位(包括1位符号位),用二进制表示最小负数的反 码为,最大正数的反码为。 4.在数的表示范围方面,浮点比定点。在运算规则方面,浮点比定 点。在运算精度方面,浮点比定点。 5.浮点数表示中,数据的范围由的位数据决定,数的精度由决 定。 6.已知0和9的ASCII码分别为0110000和0111001,则3的ASCII码 为,5的ASCII码为。 7.已知字符A的ASCII码为1000001,则字符B的ASCII码为,字符D 的ASCII码为。 8.15的8421码为。 9.每条指令由两部分组成,即部分和部分。 10.有一机器字16位,其中操作码占4位。若采用三地址寻址,则每个地址位为 位,可直接寻址空间为字节;若采用单地址寻址,则每个地址位为位, 可直接寻址空间为字节。 11.零地址指令是不带的机器指令,其操作数是由提供 的。 12.存储器堆栈中,需要一个,用它来指明的变化。 13.运算器的主要功能是进行。 14.SN74181 ALU是一个位运算单元,由它组成16位ALU需使用片 SNN74182 ,其目的是为了实现并行操作。 15.在微程序控制器中,微操作是由控制实现的最基本操作。一条机器指 令是由若干组成的微程序来解释执行的。 16.微程序顺序控制常用的两种方式是方式和方式。 17.控制器的控制方式有、和三种形式,其中方 式最节省时间,方式最浪费时间,而方式介于两者之间。 18.在控制器中,指令寄存器(IR)的作用是,它的位数与有 关。 19.使用Intel 2114(1K×4位)芯片32片可组成容量为 KB内存,每片片 内地址线有位。 20.若有一个512K字的存储器,它由四个存储体组成,每个存储体为16K,则该 存储体的字长是位。 21.计算机的I/O系统由、、和组成。 22.通常外部设备寻址方式有、和等三种方式。 23.中断请求是中断源向发出的申请中断要求,发出中断请求的条件 是。和。 24.中断返回时要恢复和,才能返回主程序继续执 行。 25.发向量地址和执行中断隐指令在程序中断处理过程的阶段,执 行中断服务程序在阶段,自动恢复程序断点地址在阶段。 26.中断隐指令的功能是:在响应中断之后立即中止现行程序,保护 . 和。内容,取出新的送入程序状态字寄存器,取出相应的送程序计 数器。 27.一个完整的程序中断处理过程应包括、、、 和▁五个阶段。

汇编语言实现简单的计算器运算

汇编语言实现简单的计算器运算 DA TAS SEGMENT x dw 0 op db 0 DIV ARRAY dw 10000,1000,100,10,1 DA TAS ENDS stack segment db 100 dup(?) stack ends CODES SEGMENT ASSUME CS:CODES,DS:DA TAS,ss:stack START: MOV AX,DATAS MOV DS,AX next: call do_cal ;输入第一个表达式如:5+3= call show ;输出表达式结果 mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 jmp next ;跳回输入第二个表达式 do_cal: ;输入表达式 call input ;输入数 cmp al,'e' jz exit MOV OP,AL CMP OP,'+' jnz next1 call do_add jmp next5 next1: CMP OP,'-' JNZ NEXT2 CALL DO_SUB JMP NEXT5 NEXT2: CMP OP,'*' JNZ NEXT3 CALL DO_MUL JMP NEXT5 NEXT3:

CMP OP,'/' JNZ NEXT4 CALL DO_DIV jmp next5 NEXT4: cmp op,'=' call show next5:ret ;判断运算符input: ;输入数字xor bx,bx mov cx,10 skip: MOV AH,1 INT 21H cmp al,'0' jl skip1 cmp al,'9' jg skip1 push ax mov ax,bx mul cx mov bx,ax pop ax and al,0fh xor ah,ah add bx,ax jmp skip skip1:ret do_add: ;加法 mov x,bx call input ;输入第二个数 add bx,x ret do_sub: ;减法 mov x,bx call input ;输入第二个数 sub x,bx mov bx,x ret do_mul: ;乘法 mov x,bx call input ;输入第二个数 mov ax,bx mul x mov bx,ax

汇编语言与计算机系统组成单选题

题干A B C D答案难度[1]电子计算机技术在半个世纪中虽有很大的进步,但至今其运行 仍遵循着一位科学家提出的基本原理。他就是( )。 牛顿爱因斯坦爱迪生冯·诺依曼D中 目前我们所说的个人台式商用计算机属于( )。巨型机中型机小型机微型机D中 冯·诺依曼机工作方式的基本特点是( )。多指令流单数据流按地址访问并顺序执行指令堆栈操作存储器按内容选择地址B中 至今为止,计算机中的所有信息仍以二进制方式表示,其理由 是( )。 节约元件运算速度快物理器件性能决定信息处理方便C中 对计算机的软、硬件资源进行管理,是( )的功能。操作系统数据库管理系统语言处理程序用户程序A中 CPU的组成中不包含( )。存储器寄存器控制器运算器A中 主机中能对指令进行译码的器件是( )。ALU运算器控制器存储器C中 许多企事业单位现在都使用计算机计算、管理职工工资,这属 于计算机的( )应用领域。 科学计算数据处理过程控制辅助工程B中 微型计算机的发展以( )技术为标志。操作系统微处理器磁盘软件B中 邮局对信件进行自动分拣,使用的计算机技术是( )。机器翻译自然语言理解机器证明模式识别D中 电子邮件是指( )。用计算机管理邮政信件通过计算机网络收发消息用计算机管理电话系统用计算机处理收发报业务B中 微型计算机的工作环境要求室温一般在15~35度,室温过低容 易造成( )。 磁盘读写出错静电干扰机内元器件受潮变质散热不好,烧毁电源A中 下列关于微处理器的描述中,( )是正确的。微处理器就是一台微机微处理器是微机系统微处理器就是主机微处理器可以用作微机的CPU D中 下列的四个叙述中,只有一个是正确的,它是( )。系统软件就是买来的软件,应用软 件就是自己编写的软件 外存上的信息可以直接进入CPU被 处理 用机器语言编写的程序可由计算机 直接执行 说一台计算机配置了FORTRAN语 言,就是说它一开机就可以用 FORTRAN语言编写和执行程序 C中 将有关数据加以分类、统计、分析,以取得有利用价值的信 息,我们称其为( )。 数值计算辅助设计数据处理实时控制C中微型计算机的分类通常以微处理器的( )来划分 。规格芯片名字长寄存器数目A中下列( )型号计算机标志了计算机时代的真正开始。ENIAC EDVAC EDSAC UNIVAC-I D中地址是内存储器各存储单元的编号,现有一个32KB的存储器, 用十六进制数表示它的地址码,则地址码应从0000H到( ) H。 3276780007FFF8EEE C中 Intel的创始人高登·摩尔总结的摩尔定律说:单片集成电路 所包含的晶体管数目大约每( )个月增加一倍。 12152418D中 在计算机未来发展展望中,计算机科学家们提出的最有可能取 代电子计算机的计算机探索方案是( )计算机。 光子计算机DNA计算机分子计算机量子计算机D中 The fundamental conceptual unit in a computer is: ( ) CPU Hard Drive Operating System Transistor D中 Virtually all computer designs are based on the von Neumann architecture. A high level view of this architecture has the following three components:( )Buses, memory, input/output controllers Hard disks, floppy disks, and the CPU memory, the CPU, and printers memory, input/output modules, and the CPU D中 Which of the following programming languages has an instruction set closest to the machine language of a computer? ( ) BASIC Fortran Assembly Language C++C中 Program that manages the resources of a computer for the benefit of the programs that run on that machine is ( ). Compiler Operating System ALU Control Unit B中 Program that translates from a high-level notation to assembly language is ( ). Compiler Instruction Set CPU Operating System A中计算机中表示地址时使用( )。无符号数原码反码补码A中对于二进制码10000000,若其值为-0,则它是用( )表示 的。 原码反码补码阶码A中对于二进制码10000000,若其值为-128,则它是用( )表 示的。 原码反码补码阶码C中对于二进制码10000000,若其值为-127,则它是用( )表 示的。 原码反码补码阶码B中字长16位,用定点补码小数表示时,一个字所能表示的范围是 ( )。 0~(1-2^-15)-(1-2^-15)~(1-2^-15)-1~+1-1~(1-2^-15)D中某机字长32位,其中1位符号位,31位尾数。若用定点整数补 码表示,则最小正整数为( )。 +1+2^31-2^32-1A中 某机字长32位,其中1位符号位,31位尾数。若用定点整数补 +1+2^31-2^32-1C中

实验十进制加减法计数器

实验1 十进制加减法计数器 实验地点:电子楼218 实验时间:2012年10月19日指导老师:黄秋萍、陈虞苏 实验要求:设计十进制加减法计数器,保留测试程序、设计程序、仿真结果 1.设计程序: module count(EN,CLK,DOUT,F,RST); input EN,CLK,F,RST; output [3:0]DOUT; reg [3:0]DOUT; always@(posedge CLK) begin :abc if(EN) if(!RST) if(F) begin :a DOUT=DOUT+1; if(DOUT==10) DOUT=0; end //END A else begin :b DOUT=DOUT-1; if(DOUT==15) DOUT=9; end else DOUT=0; else DOUT=DOUT; end endmodule 2.测试程序 `timescale 10ns/1ns module test_count; wire [3:0] DOUT; reg EN,F,RST,CLK; count M(EN,CLK,DOUT,F,RST); initial begin :ABC CLK=0; EN=0;

RST=1; F=1; #100 EN=1; #200 RST=0; #1500 F=0; #3000 $stop; end always #50 CLK=~CLK; initial $monitor("EN=%b,F=%b,RST=%b,DOUT%D",EN,F,RST,DOUT); endmodule 3.测试结果 # EN=0,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT 0 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=1,RST=0,DOUT 6 # EN=1,F=1,RST=0,DOUT 7 # EN=1,F=1,RST=0,DOUT 8 # EN=1,F=1,RST=0,DOUT 9 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 4 # EN=1,F=0,RST=0,DOUT 3 # EN=1,F=0,RST=0,DOUT 2 # EN=1,F=0,RST=0,DOUT 1 # EN=1,F=0,RST=0,DOUT 0 # EN=1,F=0,RST=0,DOUT 9 # EN=1,F=0,RST=0,DOUT 8 # EN=1,F=0,RST=0,DOUT 7 # EN=1,F=0,RST=0,DOUT 6 # EN=1,F=0,RST=0,DOUT 5

计算机组成原理与汇编语言

计算机组成原理及汇编语言试卷10 一、选择题(共20道题) 1.计算机硬件能直接执行的只有()。 A 符号语言 B 机器语言 C 机器语言和汇编语言 D 汇编语言 2.中央处理机(CPU)是指()。 A 运算器 B 控制器 C 运算器和控制器 D 运算器、控制器和主存贮器 3.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是:()。 A 基址寻址 B 立即寻址 C 变址寻址 D 基址变址寻址 4.所谓第二代计算机是以()为主要元器件。 A 超大规模集成电路 B 集成电路 C 晶体管 D 电子管 5.大部分计算机内的减法是用( )来实现的。 A 将被减数加到减数中 B 从被减数中减去减数 C 补数的相加 D 从减数中减去被减数

6.个人计算机是属于()。 A 大型计算机 B 小型机 C 微型计算机 D 超级计算机 7.运算器的主要功能是进行()。 A 逻辑运算 B 算术运算 C 逻辑运算与算术运算 D 初等函数运算 8.计算机中()负责指令译码。 A 算术逻辑单元 B 控制单元 C 存储器译码电路 D 输入输出译码电路 9.如果要处理速度、温度、电压等连续性数据可以使用()。 A 数字计算机 B 模拟计算机 C 混合型计算机 D 特殊用途计算机 10.有些计算机将部分软件永恒地存于只读存储器中,称之为()。 A 硬件 B 软件 C 固件 D 辅助存储 E 以上都不对 11.下列()不属于系统程序。 A 数据库系统 B 操作系统 C 编译程序 D 编辑程序 12.一个完整的计算机系统应包括()。 A 运算器、存贮器、控制器 B 主机和外部设备 C 主机与应用程序 D 配套的硬件设备和软件系统

10进制加法计数器课程设计

西北师范大学知行学院 数字电子实践论文 课题:74ls161组成的十进制加法计数器 (置数法) 班级:14电本 学号:14040101114 姓名:于能海

指导老师:崔用明 目录 第1章前言 (1) 1.1 摘要 (1) 1.2 设计目的 (2) 1.3 设计内容及要求 (2) 第2章设计方案 (3) ....................................................................................................................... 错误!未定义书签。 2.1主要芯片功能介绍 (3) 2.2.1 四位二进制计数器74161介绍 (3) ............................................................................................................... 错误!未定义书签。 2.2 工作原理 (4) 第3章硬件设计 (4) 3.1 单元电路设计 (4) 3.2 总硬件电路图 (5) 第4章仿真与试验 (6) 4.1 仿真结果 (6) 4.2 调试中遇到的问题 (7) 第5章结论和体会 (8)

第1章前言 1.1 摘要在数字电路技术的课程中,计数器的功能是记忆脉冲的个数,它是数字系统中应用最广泛的基本时序逻辑构件。计数器在微型计算机系统中的主要作用就是为CPU和I/O设备提供实时时钟,以实现定时中断、定时检测、定时扫描、定时显示等定时控制,或者对外部事件进行计数。一般的微机系统和微机应用系统中均配置了定时器/计数器电路,它既可当作计数器作用,又可当作定时器使用,其基本的工作原理就是"减1"计数。计数器:CLK输入脉冲是一个非周期事件计数脉冲,当计算单元为零时,OUT输出一个脉冲信号,以示计数完毕。 本十进制加法计数器是基于74161芯片而设计的, 该十进制加法计数器设计理念是用于工厂流水线上产品计数,自动计数,方便简单。 关键词:74ls161计数器 Introduction In the course of digital circuit technology, the counter memory function is the number of pulses, it is a digital system, the most widely used basic sequential logic components. The main role of the counter in the micro-computer system is to provide real-time clock for the CPU and I / O devices to achieve the timer interrupt, timing detection, scheduled scanning, the timing display timing control, or to count external events. General computer systems and computer application systems are equipped with a timer / counter circuit, it can as a counter action, but also as a timer, the basic working principle is "minus 1" count. Counter: CLK input pulse is a non-periodic event count pulses to zero when calculating unit, OUT outputs a pulse signal, to show the count is completed. The decimal addition counter is designed based on the 74161 chip, the low potential sensor senses when to rely on external signals, sensors in an object within the sensing range, otherwise it is a high potential. Within the sensing range of the sensor when an object is moved out of date, sensor potential from high to low and then high, appears on the edge. Counter is automatically incremented and displayed on a digital control. The decimal addition counters have two seven-segment LED. It can count from 0 to 99 objects, and easy to expand. The design concept of decimal addition counter is used to count on a factory assembly line products, automatic counting, convenient and simple. Keywords:74ls161counter

计算机组成原理及汇编语言.

计算机组成原理及汇编语言试卷 10 一、选择题(共20道题) 1.计算机硬件能直接执行的只有()。 A 符号语言 B 机器语言 C 机器语言和汇编语言 D 汇编语言 2.中央处理机(CPU)是指()。 A 运算器 B 控制器 C 运算器和控制器 D 运算器、控制器和主存贮器 3.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是:()。 A 基址寻址 B 立即寻址 C 变址寻址 D 基址变址寻址 4.所谓第二代计算机是以()为主要元器件。 A 超大规模集成电路 B 集成电路 C 晶体管 D 电子管 5.大部分计算机内的减法是用( )来实现的。 A 将被减数加到减数中 B 从被减数中减去减数 C 补数的相加 D 从减数中减去被减数 6.个人计算机是属于()。 A 大型计算机 B 小型机 C 微型计算机 D 超级计算机 7.运算器的主要功能是进行()。 A 逻辑运算 B 算术运算 C 逻辑运算与算术运算 D 初等函数运算 8.计算机中()负责指令译码。 A 算术逻辑单元 B 控制单元 C 存储器译码电路 D 输入输出译码电路 9.如果要处理速度、温度、电压等连续性数据可以使用()。 A 数字计算机 B 模拟计算机 C 混合型计算机 D 特殊用途计算机 10.有些计算机将部分软件永恒地存于只读存储器中,称之为()。 A 硬件 B 软件 C 固件 D 辅助存储 E 以上都不对 11.下列()不属于系统程序。 A 数据库系统 B 操作系统 C 编译程序 D 编辑程序

12.一个完整的计算机系统应包括()。 A 运算器、存贮器、控制器 B 主机和外部设备 C 主机与应用程序 D 配套的硬件设备和软件系统 13.下列()不是输入设备。 A 磁盘驱动器 B 键盘 C 鼠标器 D 打印机 14.以真空管为主要零件的是()。 A 第一代计算机 B 第二代计算机 C 第三代计算机 D 第四代计算机 15.MOV AX,ES:[1000H] 源操作数的寻址方式是:()。 A 立即寻址 B 直接寻址 C 变址寻址 D 基址寻址 16.计算机经历了从器件角度划分的四代发展历程,但从系统结构来看,至今为止绝大多数计算机仍是()式计算机。 A 实时处理 B 智能化 C 并行 D 冯·诺依曼 17.将有关数据加以分类、统计、分析,以取有利用价值的信息,我们称其为()。 A 数值计算 B 辅助设计 C 数据处理 D 实时控制 18.下列()为计算机辅助教学的英文缩写。 A CAD B CAM C CAE D CAI 19.下列描述()是正确的。 A 控制器能理解、解释并执行所有的指令及存储结果 B 一台计算机包括输入、输出、控制、存储及运算五个单元 C 所有的数据运算都在CPU的控制器中完成 D 以上答案都正确 20.第三代计算机采用()。 A 晶体管 B 电子管 C 集成电路 D 超大规模集成电路 二、填空题(共20道题) 1.(D4E5)H ∨()H=(152345)H 2.主存储器的读取规则:“高高低低”规则,即____地址对应高字节,低地址对应____字节。 3.在浮点补码二进制加减运算中,当尾数部分出现_____和_____形式时,需进行左规,此时尾数______移一位,阶码_____,直到______为止。 4.设操作数字长16位(不包括符号位),机器作原码两位乘运算,共需作__次___操作,最多需做___次____操作,才能得到最后的乘积,乘积的符号位需_______。

计算机组成原理及汇编语言

计算机组成原理及汇编语言试卷 12 一、选择题(共30道题) 1.下列()不是输入设备。 A 磁盘驱动器 B 键盘 C 鼠标器 D 打印机 2.如果要处理速度、温度、电压等连续性数据可以使用()。 A 数字计算机 B 模拟计算机 C 混合型计算机 D 特殊用途计算机 3.计算机硬件能直接执行的只有()。 A 符号语言 B 机器语言 C 机器语言和汇编语言 D 汇编语言 4.计算机中()负责指令译码。 A 算术逻辑单元 B 控制单元 C 存储器译码电路 D 输入输出译码电路 5.有些计算机将部分软件永恒地存于只读存储器中,称之为()。 A 硬件 B 软件 C 固件 D 辅助存储 E 以上都不对 6.以真空管为主要零件的是()。 A 第一代计算机 B 第二代计算机 C 第三代计算机 D 第四代计算机 7.大部分计算机内的减法是用( )来实现的。 A 将被减数加到减数中 B 从被减数中减去减数 C 补数的相加 D 从减数中减去被减数 8.下列描述()是正确的。 A 控制器能理解、解释并执行所有的指令及存储结果 B 一台计算机包括输入、输出、控制、存储及运算五个单元 C 所有的数据运算都在CPU的控制器中完成 D 以上答案都正确 9.中央处理机(CPU)是指()。 A 运算器 B 控制器 C 运算器和控制器 D 运算器、控制器和主存贮器

10.两补码相加,采用l位符号位,则当()时,表示结果溢出。 A 最高位有进位 B 最高位进位和次高位进位异或结果为0 C 最高位为1 D 最高位进位和次高位进位异或结果为1 11.在原码加减交替除法中,符号位单独处理,参加操作的数是()。 A 原码 B 绝对值 C 绝对值的补码 D 补码 12.一个完整的计算机系统应包括()。 A 运算器、存贮器、控制器 B 主机和外部设备 C 主机与应用程序 D 配套的硬件设备和软件系统 13.个人计算机是属于()。 A 大型计算机 B 小型机 C 微型计算机 D 超级计算机 14.在浮点机中,下列()是正确的。 A 尾数的第一数位为l时,即为规格化形式 B 尾数的第一数位与数符不同时,即为规格化形式 C 不同的机器数有不同的规格化形式 D 尾数的第一数位为0时,即为规格化形式 15.第三代计算机采用()。 A 晶体管 B 电子管 C 集成电路 D 超大规模集成电路 16.在浮点机中、判断补码规格化形式的原则是()。 A 尾数的第一数位为1,数符任意 B 尾数的符号位与第一数位相同 C 尾数的符号位与第一数位不同 D 阶符与数符不同 17.运算器的主要功能是进行()。 A 逻辑运算 B 算术运算 C 逻辑运算与算术运算 D 初等函数运算 18.下列()不属于系统程序。 A 数据库系统 B 操作系统 C 编译程序 D 编辑程序

相关文档
最新文档