当前位置:文档之家› 汇编课程设计

汇编课程设计

汇编课程设计
汇编课程设计

燕山大学

汇编语言课程设计说明书

题目:计算机钢琴程序

交通灯控制系统

学院(系):信息科学与工程学院

年级专业: 10级计算机科学2班

学号: 100104010113 学生姓名:马强

学号: 100104010116 学生姓名:夏洋

指导教师:何海涛、邹晓红

完成日期: 2013年7月3日

目录

1.课程设计的目的和意义........................................................................................................... - 2 -

1.1课程设计目的................................................................................................................ - 2 -

1.2课程设计的意义............................................................................................................ - 2 -

2.题目一:计算机钢琴程序....................................................................................................... - 2 -

2.1系统的主要功能............................................................................................................ - 2 -

2.2总体设计方案................................................................................................................ - 2 -

2.2.1扬声器驱动方式................................................................................................. - 2 -

2.2.2延时原理............................................................................................................. - 3 -

2.2.3键盘控制发声程序............................................................................................. - 4 -

2.2.4设计总结............................................................................................................. - 5 -

2.3作品使用说明................................................................................................................ - 6 -

3.题目二:交通灯控制系统....................................................................................................... - 6 -

3.1系统的主要功能............................................................................................................ - 6 -

3.2 系统工作原理............................................................................................................... - 6 -

3.2.1 8259的工作原理................................................................................................ - 6 -

3.2.2 8255A的工作原理:...................................................................................... - 7 -

3.2.3 8253的工作原理:............................................................................................ - 7 -

3.3总体设计方案................................................................................................................ - 7 -

3.3.1程序流程图......................................................................................................... - 8 -

3.3.2接口电路图....................................................................................................... - 11 -

3.4交通灯的设计总结...................................................................................................... - 11 -

4.课程设计心得体会................................................................................................................. - 12 -

5.参考文献................................................................................................................................. - 12 -

6.附录:程序代码..................................................................................................................... - 12 -

6.1计算机钢琴程序代码.................................................................................................. - 12 -

6.2交通灯控制系统代码.................................................................................................. - 14 -

1.课程设计的目的和意义

1.1课程设计目的

1.进一步了解汇编语言指令的功能和用法。

2.进一步了解汇编接口的功能和用法。

3.了解用汇编语言实现声音、图像的编程。

4.锻炼团队协作完成程序设计的能力。

1.2课程设计的意义

本次课程设计,给同学们一个把理论知识转化为实际动手能力的机会,使同学们能够更深入的理解汇编语言,掌握汇编语言指令的用法,掌握8259A、8255、8253接口的功能和控制方法。本次课程设计的题目难度适中,既可以培养同学们的自信心又可以锻炼同学们解决困难的能力。本次课程设计的形式为两人一组共同完成两个任务,既培养同学们的团队精神又提升了每个人的能力。

2.题目一:计算机钢琴程序

2.1系统的主要功能

编写程序,程序运行时使PC机成为一架可弹奏的钢琴,当按下数字键1-8时,依次发出8个音调。按CTRL-C则退出钢琴状态。

2.2总体设计方案

2.2.1扬声器驱动方式

1.直接控制扬声器发声

程序通过I/O指令使设备控制寄存器(I/O端口地址为61H)的第一位交替为0和1,而端口61H的第一位和扬声器的脉冲门相连,当第一位由0变为1,延迟一会又由1变为0时,脉冲门就先打开后关闭,产生了一个脉冲电流。这个脉冲电流被放大后送到扬声器使之发出了声音。

图1 设备控制寄存器

2.利用8253驱动扬声器

PC机上的大多数I/O都是由主板上的8255可编程程序外围接口芯片(PPI)管理的。由PPI输出寄存器中的0和1两位来控制扬声器的驱动方式。将8253的定时器2连接到扬声器上。GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。

图2 利用8253驱动扬声器发声

2.2.2延时原理

1.利用CPU来产生延迟

利用CPU来产生延迟时间是最常用的一种方法,但对8086,80286,80386

等,它们产生的延迟时间是不一样的。对于基于8088的PC/XT,PS/2等PC机,可用下面的程序来产生时间延迟:

MOV CX,N

DELAY:LOOP DELAY

在8088CPU中,执行一条LOOP指令需要17个时钟周期,因此,执行上面的指令大约需要N*17*T时钟周期。例如,N=2800,系统频率为4.7MHZ,那么可得到的延迟时间为10ms。

2.80x86PC的时间延迟

80x86的各种处理器采用6~66MHz的工作频率,LOOP指令的执行时间在这些处理器上也不相同。为了建立一个与处理器无关的实践延迟,IBM采用了一种利用硬件产生时间延迟的方法,即通过监控端口61H的PB4,使PB4每18.08us触发一次,以产生一个固定不变的时间基准。在IBM PC AT BIOS 中的WAITF子程序,就是一个产生N*15.08us时间延迟的程序。调用WAITF子程序时,CX寄存器必须装入15.08us的倍数N。

;(CX)=Count of 15.08us

WAITF PROC NEAR

PUSH AX

WAITF1:

IN AL,61H

AND AL,10H

CMP AL,AH

JE WAITF1

MOV AH,AL

LOOP WAITF1

POP AX

RET

WAITF ENDP

利用WAITF子程序能获得任意的延迟时间,而再不必考虑CPU的型号和工作频率。

2.2.3键盘控制发声程序

音符和频率之间有一定的对应关系,如果计算机键盘上的某些键和音符、频率也形成一种对应关系,则可通过键盘控制扬声器发出各种音符声音,这时计算机键盘就变成了钢琴键盘,就可以用它弹奏出简单的音乐。钢琴有88个音符,为了简单起见,下面通过编写一个八度音程的钢琴程序来了解键盘控制发声的原理。为了弹奏方便,让数字1~8对应一个音阶的八个音符。

采用的频率为524,588,660,698,784,880,988,1048。

程序框图如下:

图3 PIANO程序框图

2.2.4设计总结

选择本题目时,不了解如何用软件驱动扬声器发音,更不用说如何发出不同的音阶。通过查阅书籍了解到软件驱动扬声器发音的方式,在程序设计过程中遇到一个问题:常按一个键时期望扬声器发出一个连续的长音而不是连续的重复发出该音。为了解决这个问题,最初设想运用中断的方式来判断键盘的输入状态,但是没有成功。通过在网上查阅资料,找到一种方法,即

wait:in al,60h

test al,80h

jz wait

2.3作品使用说明

在TDDBUG中编译并连接piano.asm文件生成piano.exe可执行文件。双击piano.exe文件进入程序运行状态。键盘上的1~8分别代表八个不同的音阶。按照简谱可以模拟钢琴弹奏出乐曲。

3.题目二:交通灯控制系统

3.1系统的主要功能

(1)利用8254定时,8259中断及8255输出实现交通灯模拟控制。

(2)实现能自动控制和手动控制。

(3)实现能随时可以调整自动模式的绿灯和红灯时间。

(4)南北方向红灯亮时东西方向绿灯亮,7段数码显示管显示倒计时,最后三秒红灯闪烁。

3.2 系统工作原理

3.2.1 8259的工作原理

(1)数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过缓冲器传送的。

(2)读/写控制逻辑:CPU通过它实现对8259A的读/写操作。

(3)级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。

(4)控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。

(5)中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当响应的中断请求输入引脚有中断请求时,该寄存器的相应位置1。

(6)中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。当其中某位置“0“时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。该寄存器的内容为8259A 的操作命令字OCW1,可以由程序设置或改变。

(7)中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。

(8)用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。

3.2.2 8255A的工作原理:

(1)8255A的内部结构:

1)、数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

2)、三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

3)、A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C 口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

4)、读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

(2)8255A的工作方式:

方式0---基本输入输出方式;方式1---选通输入输出方式;方式2---双向选通输入输出方式。

3.2.3 8253的工作原理:

8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0~CLK2是计数器0~2的时钟脉冲输入端, GATE0~GATE2是门控脉冲输入端, OUT0~OUT2是输出端。

3.3总体设计方案

设计中使用了8259中断控制器、8255A可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。

城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:

1.东西方向车辆放行5秒钟。即东西方向绿灯和南北方向的红灯同时点亮5秒钟;

2.4秒钟后,东西方向绿灯保持不动,南北方向的红灯闪烁1秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。

3.南北方向的红灯闪烁1秒钟后,转为南北方向放行5秒钟。即东西方向

的红灯和南北方向的绿灯同时点亮5秒钟;

4.南北方向放行4秒钟后,转为东西方向的红灯闪烁1秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。

5.东西方向的红灯闪烁1秒钟后转为东西方向放行5秒钟。如此循环重复。

3.3.1程序流程图

图4 交通灯控制程序

图5 交通灯数码管显示模块

图6 交通灯手动控制模块

3.3.2接口电路图

图7 交通灯电路

3.4交通灯的设计总结

在交通灯的设计中我们学会了给8259设置控制字,控制中断的方式中断的优先级等,

初步了解了CPU是如何管理终端的。我们自己设计了交通灯的硬件电路,从而进一步了解了各个芯片的工作原理。但是在设计中我们也犯了一些错误需要进一步的改进。

首先,在交通灯的闪烁方面我们没有使用定时器来定时,而是使用8259的B4定时触发的方式写了一个延时子程序来实现灯的延时;而在数码管显示数字方面我们却使用了8254定时器中断方式,每0.1秒发出一次中断请求来刷新数码管。这样在灯和数码管显示的同步方面就发生了问题,我们只好一点一点调试使得它们看起来是同步的。但是这样的程序是没有可扩展性的,如果想要改进的话我想应该将灯和数码管使用同一个定时器使他们同步,这样可扩展性非常强。我们可以随时改动交通灯亮和闪的时间,只要改变一下参数即可。

其次,我们在设计时将A口和B口全都用来给灯输出高低电平,造成最后8255的端口不够用了,其实我们完全可以只用一个端口来模拟交通灯的情况。由于端口不够用,我们只好复用C端口来同时执行数码管显示和接收手动输入的数据这两个任务,这样势必会牵涉到设置C端口的输入输出方式和还原C口的输入输出方式,这样反而影响了数码管的显示效果。

最后,我们将手动方式设置为中断的方式,我们不得不这样设计因为在中断中我们才可以将C端口的输入输出方式重新设计,这是一个重大的失误。因为手动和自动控制应当是主程序的两个循环的子程序。

总之,我们收获了很多也发现了很多需要进一步改进的地方。

4.课程设计心得体会

两周的课程设计结束了,在这次的课程设计中不仅检验了我们所学的知识,也培养了我们如何去把握一件事情,如何去做一件事情,又如何去完成一件事情。在设计过程中,与同学分工设计,和同学相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了理解。课程设计使我们专业知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不可少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句名言的真正含义,我们今天认真的进行课程设计,学会脚踏实地迈出第一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

通过这次课程设计,我们在多方面有所提高。学会综合运用汇编语言与接口技术的理论直射来设计课题。学会了独立思考,学会了协作。体会了学以致用、突出自己劳动成果的喜悦心情,从中发现了自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的任大伟、邹晓红、何海涛老师,在我们提出问题后耐心的给我们解答,鼓励我们完成更好的作品。由于我们的水平有限,所以在设计中难免有错误,恳请老师们多多指教,我们十分乐意接受你们的批评与指正。

5.参考文献

1.《汇编语言与接口技术》(第2版)王让定、朱莹清华大学出版社

2.《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵清华大学出版社

3.《汇编语言与接口技术》叶继华、甘登文机械工业出版社

6.附录:程序代码

6.1计算机钢琴程序代码

data segment para 'data'

table dw 524 ;程序用频率

dw 588

dw 660

dw 698

dw 784

dw 988

dw 1048

data ends

code segment para 'code'

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

check:mov ah,1 ;从键盘输入字符 int 21h

cmp al,0dh

je exit

mov bx,offset table

cmp al,'1' ;检查是否越界 jb check

cmp al,'8'

ja check

and ax,0fh

shl ax,1

sub ax,2

mov si,ax

mov di,[bx][si]

call soundf ;调用子程序

jmp check

exit:mov ah,4ch

int 21h

soundf proc

push ax

push bx

push cx

push dx

push di

mov al,0b6h

out 43h,al

mov dx,12h

mov ax,348ch

div di

out 42h,al

mov al,ah

out 42h,al

in al,61h

or al,3

out 61h,al

wait:in al,60h

test al,80h

jz wait

mov al,ah

out 61h,al

pop di

pop dx

pop cx

pop bx

pop ax

ret

soundf endp

code ends

end start

6.2交通灯控制系统代码

data segment

bls db ?

led db 60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h ;数码管显示码data ends

datastack segment

stack db 100 dup(?)

datastack ends

CODE SEGMENT

ASSUME CS:CODE, ds:data,ss:datastack

START:mov ax,data

mov ds,ax

cli ;关中断

push ds

mov ax,0000h

mov ds,ax

lea ax,leddisplay

mov si,003ch

mov [si],ax

mov ax,cs

mov si,003eh

mov [si],ax ;设置F号中断向量

lea ax,shoudong

mov si,0038h

mov [si],ax

mov ax,cs

mov si,003ah

mov [si],ax ;设置E号中断向量

pop ds

mov al,13h

out 20h,al ;设置ICW1,中断边沿触发不设置级联mov al,08h ;设置ICW2

out 21h,al

mov al,01h ;设置ICW4

out 21h,al

mov al,00h ;设置OCW1

out 21h,al

mov dx,06c6h ;设置定时器

mov al,34h

out dx,al

mov dx,06c0h ;给定时器0装入计数值

mov al,00h

out dx,al

mov al,48h

out dx,al

mov cx,50 ;CX用于辅助记时,50代表5秒

MOV DX,0646H ;设置8255输入输出方式

MOV AL,80H

OUT DX,AL

mov dx,0644h ;向C口写B6H,即5

mov al,0b6h

out dx,al

sti ;开中断

MOV DX,0640H

MOV AL,07H

OUT DX,AL ;向A口写入数据灯亮

MOV DX,0642H

MOV AL,61H

OUT DX,AL ;B口连接的灯亮

CALL DELAY1 ;延时

MOV BL,5

A:MOV DX,0640H

MOV AL,07H

OUT DX,AL

MOV DX,0642H

MOV AL,01H

OUT DX,AL

CALL DELAY2

MOV DX,0640H

MOV AL,07H

OUT DX,AL

MOV DX,0642H

MOV AL,61H

OUT DX,AL

CALL DELAY2

DEC BL

JNZ A

mov cx,50

mov dx,0644h

mov al,0b6h

out dx,al

MOV DX,0640H

MOV AL,61H

OUT DX,AL

MOV DX,0642H

MOV AL,07H

OUT DX,AL

CALL DELAY1

MOV BL,5

B:MOV DX,0640H

MOV AL,01H

OUT DX,AL

MOV DX,0642H

MOV AL,07H

OUT DX,AL

CALL DELAY2

MOV DX,0640H

MOV AL,61H

OUT DX,AL

MOV DX,0642H

MOV AL,07H

OUT DX,AL CALL DELAY2

DEC BL

JNZ B

JMP START

DELAY1 PROC

MOV BL,30

mov bls,bl

BACK:mov bx,33144

CALL WAITF

mov bl,bls

DEC BL

mov bls,bl

JNZ BACK

RET

DELAY1 ENDP

WAITF PROC

PUSH AX

WAITF1:MOV DX,0642H

IN AX,DX

AND AL,10H

CMP AL,AH

JE WAITF1

MOV AH,AL

dec bx

jnz WAITF1

POP AX

RET

WAITF ENDP

DELAY2 PROC

push bx

MOV bx,19893

CALL WAITF

pop bx

RET

DELAY2 ENDP

leddisplay proc ;在自动模式下每0.1秒发生一次leddisplay中断。 dec cx ;手动模式下该中断被屏蔽

jnz bb ;每发生一次中断CX的计数就减一

inc cx ;如果CX的值减为0,就加一

bb: push ax

push bx

mov ax,data

mov ds,ax

mov ax,cx

mov bl,10

div bl

lea bx,led

xlat ;利用CX除以10的商在data表中查找数码管的显示码 mov dx,0644h ;将新的数码显示

out dx,al

pop bx

pop ax

sti

mov al,20h ;设置EOI

out 20h,al

iret

leddisplay endp

shoudong proc

mov dx,0646h

mov al,89h

out dx,al ;初始化8255设置A口B口输出C口输入

push bx ;BX用于保存A口和B口的端口状态

mov bh,01h ;BH用于控制B口的显示

mov bl,01h ;BL用于控制A口的显示

aa: mov dx,0644h

in al,dx ;获得C口的输入数据

mov ah,al ;AH用于保存C口的数据因为AL需要被处理

and al,03h

cmp al,02h

jz iexit ;没有获得中断退出的指令时就继续执行

cc: mov al,bl

out dx,al

mov dx,0642h

mov al,bh

out dx,al ;初始化A口B口

shl ah,1

mov dx,0640h

s1: shl ah,1 ;获得C6的捣旁贑F标志位中

jnc next1

or bl,20h ;C6的值是1,就把A5置1,且把A1置0

and bl,0fdh

mov al,bl

out dx,al

jmp s2

next1: ;c6的值是0,则把A5置0,且把A1置1

or bl,02h

and bl,0dfh

mov al,bl

out dx,al

s2: shl ah,1

jnc next2 ;如果C5的值是1,则把A6置1,且把A2置0

or bl,40h

and bl,0fbh

mov al,bl

out dx,al

jmp s3

next2: ;如果C5的值是0,则把A6置0,把A2置1 and bl,0bfh

or bl,04h

mov al,bl

out dx,al

s3: mov dx,0642h

shl ah,1

shl ah,1 ;获得C3的置放在标志位CF中

jc next3

or bh,20h

and bh,0fdh

mov al,bh

out dx,al

jmp s4

next3: or bh,02h

and bh,0dfh

mov al,bh

out dx,al

s4: shl ah,1 ;获得C2的置放到CF中

jc next4 ;如果C2的值是1

or bh,40h

and bh,0fbh

mov al,bh

out dx,al

jmp s5

next4: ;如果C2的值是0

or bh,04h

and bh,0bfh

mov al,bh

out dx,al

s5: jmp aa

iexit:

pop bx

mov dx,0646h

mov al,80h

out dx,al ;将8255设定为A口B口C口均为输入端口

mov al,20h

out 20h,al

iret

shoudong endp

CODE ENDS

END START

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编与微机原理课程设计报告

微机接口课程设计报告 (题目:模拟自动门) 指导老师郭兰英 班级2015240204

目录 一概述 (1) 1.1 课程设计名称 (1) 1.2 课程设计要求 (1) 1.3 课程设计目的 (1) 二设计思想 (1) 三实施方案 (2) 3.1 获得传感器和“门”的状态 (2) 3.2 驱动步进电机和点阵模块 (2) 3.3 实现硬件延时 (3) 四硬件原理 (3) 4.1 中断控制器8259 (4) 4.2并行接口8255 (4) 4.3 定时/计数器8254 (5) 4.4 点阵LED显示屏 (5) 4.5 步进电机 (6) 4.6 红外距离传感器 (7) 五软件流程 (8) 六程序运行结果及分析 (11) 6.1 开门状态 (11) 6.2 关门状态 (12) 6.3 关门操作进行时中断到开门操作 (14)

6.4特殊状态 (15) 七个人感想 (16) 八附录 (18)

一、概述 1.1课程设计名称 模拟自动门 1.2课程设计要求 1)用汇编语言编程完成硬件接口功能设计。 2)硬件电路基于80x86微机接口。 3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。 4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。 1.3课程设计目的 通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。 二、设计思想 本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。 为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能: 1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。 2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

汇编课程设计

方式,这个设置可以用BIOS调用中00号功能的设置显示方式功能,其入口参数为:AL=显示方式,出口参数:无。显示方式设置好之后,就要显示提示用户信息的字符串,可预先将要显示的字符串放在内存中,显示字符串要用DOS调用中的I/O设备功能调用,其入口参数为DS:DX=字符串首址,字符串需要以$结束,其出口参数无。这样一个具有提示信息的界面就产生了,接着就需要其要具有可以输入一个字符的功能,由此确立了主程序要有使用户进行键盘输入的指令,这条指令要用到设备I/O 的功能调用,使用21H的01H号功能的键盘输入字符功能,其入口参数:无,出口参数为AL=输入字符;完成以上的汇编语言程序设计的前期工作之后就要进行对输入的字符进行判断了,而主程序只能判断出大写字母D、T、E这三个字符,判断用户输入的字符是什么字符可以根据其ASCII值来判定,故可将其输入的字符的ASCII值分别于D、T、E相减来判断,若用户按下的是键盘上的大写字母D,则主程序就调用一个显示当前系统日期的子程序来完成显示日期的功能;若用户按下键盘上的大写字母T,则主程序调用显示时间子程序,完成显示当前系统时间的功能;若用户按下键盘上的大写字母E,则主程序调用退出子程序,退出程序:若用户按下出了这三个按键之外的其他按键,则主程序只显示用户提示信息,等待用户的继续输入,直至用户输入大写字母E,程序才能正常结束。这个按输入字符而执行相应程序的功能决定了其判断字符的程序段结构为分支结构或循环结构。 (2)主程序流程图 由主程序完成的功能及实现方式可确定其流程图的结构,主程序的流程图如图1所示。

Y N

N Y N N Y 图1 主程序流程图 3.2.2子程序功能 (1)显示日期子程序完成的功能 显示日期子程序DATE通过调用DOS下的2AH号功能,将日期值传送进寄存器CX和DX中,然后再调用将日期数值转换成ASCII码字符的子程序,最后调用BIOS下的13H号的显示字符串的功能,将日期显示在矩形框中。 此函数的入口条件是:AL=’D’;出口条件是:要显示的日期字符串在以BP指出的附加段中。 (2)显示时间子程序完成的功能 显示时间子程序TIME调用DOS下的2CH号功能,将时间传送进寄存器CX和DX中,

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

汇编课程设计报告

四川大学计算机学院 学生实验报告 实验名称:汇编课程设计报告 指导教师:唐宁九 姓名:廖偲 学号:0943111209 班级:软件09级一班 日期:20101114

实验报告 班级______________姓名_______________学号_________ 一、实验一:DEBUG基本命令与数据传输指令 二、实验的目的和要求: ? 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。 ? 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录; 三、实验的环境: 1.硬件环境:cpu 2.26gHZ、内存2G、显存1G、64位总线笔记本电脑 2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。 四、源程序清单: ?MOV AL, 01H ?MOV SI, 0002H ?LEA SI, [SI] ?MOV BYTE PTR [SI], 80H ?LAHF ?XCHG AL, AH ?SAHF ?XCHG AH, [SI] ?SAHF 五、操作内容: 1.从cmd在debug下进入用A命令进行汇编 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。如果不指定汇编地址, 则以CS:IP为地址 2. 反汇编命令U使用 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 3.寄存器查看/编辑命令r或r寄存器名称 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

微机原理与汇编语言课程设计报告

西北师范大学 计算机科学与工程学院 微机原理与汇编语言 课程设计报告 设计题目:中断控制点阵显示与音乐模块姓名: 学号: 专业班级: 系所中心: 指导老师: 起讫时间: 设计地点: 2016年8月20日

摘要 使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。 【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号

目录 摘要 (2) 第一章课程设计 (2) 1.1 目的和任务 (2) 1.2 设计环境、设备与器材 (2) 第二章设计内容和方案 (3) 2.1 设计内容 (3) 2.2 设计方案 (3) 第三章课程设计相关原理简述 (3) 第四章设计实现 (4) 4.1 系统设计框架结构 (4) 4.2 系统硬件设计 (4) 4.3 系统软件设计 (6) 4.4 程序流程图 (6) 4.5 核心数据结构 (8) 4.6 关键代码片段分析 (10) 第五章设计验证 (10) 5.1 验证步骤及结果 (10) 5.2 数据分析 (10) 5.3 遇到的问题及解决 (11) 5.4 需要讨论的其它问题 (11) 5.5 结论 (11) 第六章设计总结 (12) 第七章本课程教学建议 (13) 第八章参考文献 (13) 第九章附录:源代码 (13) 第一章课程设计 1.1 目的和任务 使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

2016微机原理与汇编语言课程设计参考题目(1)

微机原理课程设计题目与要求 微机原理课程设计说明: 1. 要求使用 A4 纸打印,必须有封面和目录。 封面内容有课设题目、班级、学号、姓名、指导教师、日期等内容。 2. 课设内容一般应包含如下部分: ①课设目的、内容; ②问题分析、设计思路及原因; ③电路设计及功能说明,硬件原理图(包括接口芯片简介); ④软件部分的程序流程图,算法和使用的编程技巧; ⑤汇编源程序清单,对关键的语句(段)要给出简洁的注释; ⑥设计过程中的主要难点(自己遇到的)及解决思路和办法; ⑦课设结果及分析; ⑧收获、体会和建议。 选题规则: 1-2 班同学按顺次排号,名单附件2,一共88个人,每组4人,分22组,共22个题目,每组选举一个联系人,代表本组抽选题目,并加入讨论群,用于讨论实验事宜。 论文要求: 1.必须采用统一的稿纸。 2.封面按照附件1标准格式书写; 3.课程设计(论文)必须明确包含:题目、题目分析、硬件电路图(仅硬件题目提交)件流程框图、设计思路说明、程序清单(需加必要解释); 4.硬件电路图用A4纸单独绘制,统一装订在论文中; 5.题目相同的论文必须有不同之处,否则所有完全相同的论文都以0分计。 成绩评定:课程设计成绩分两部分,设计报告占40%,设计作品占60%(演示)。 硬件演示软件平台:Proteus、Labview或其他PC平台。

题目1 编程显示学校图书馆广场雕像。 用字符组成汽车图形,在屏幕显示从左向右开动的汽车。 题目2 人名排序程序。 从键盘接收十个人名,字母上升次序显示所输入的人名,每一个人名占一行。 题目3 多功能密码锁 密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示 00 字样。当输入密码错误时,发出错误警告声音,同时显示FF 字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。 设计任务: 1、选用 8086 和适当的存储器及接口芯片完成相应的功能。 2、用 LED 显示器显示电子锁的当前状态。 3、画出详细的硬件连接图。 4、给出程序设计思路、画出软件流程图。 5、给出地址分配表。 6、给出所有程序清单并加上必要注释。 7、完成设计说明书(列出参考文献,所用器件型号) 题目4 汽车倒车测距仪 设计内容及要求: 设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近; ①开机后先显示“———” ,并有开机指示灯。 ② CPU 发射超声波 1ms,然后显示 60ms;即1ms+60ms 为一个工作周期,等待回波,在次周期内完成一次探测。

(最新版)基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文

单片微型计算机课程设计报告 多功能电子数字钟 姓 名 学

教师 许伟敏 电气二班 林卫

目录 一:概述 (1) 二:设计基本原理简介 (2) 三:设计要求及说明 (3) 四:整体设计方案 (4) 系统硬件电路设计 4 系统软件总流程设计模块划分及分析5 6 五:单模块流程设计 (8) 各模块设计概述、流程图模块源程序集合及注释8 13 六:单模块软件测试 (23) 七:系统检测调试 (24) 硬件电路调试 软件部分烧写调试 八:系统优化及拓展 (26) 九:心得体会 (28)

单片微型计算机课程设计 一、概述 基于汇编语言的电子数字钟概述 课程设计题目:电子数字钟 应用知识简介: ● 51 单片机 单片机又称单片微控制器,它不是完成某一个逻辑功能 的芯片,而是把一个计算机系统集成到一个芯片上。作为嵌 入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的中低端市场。 ●汇编语言 汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。汇编语言可以与高级语言配合使用,应用十分广泛。 ● ISP ISP(In-System Programming)在系统可编程, 是当今流行的单片机编程模式,指电路板上的空白元器 件可以编程写入最终用户代码,而不需要从电路板上取 下元器件。已经编程的器件也可以用ISP方式擦除或再 编程。本次课程设计便使用ISP方式,直接将编写好的 程序下载到连接好的单片机中进行调试。 选题 系统功能分析 硬件电路设计 整体流程设计 及模块划分 模块流程设计 模块编 码测试 系统合成调 试编译 下载调试(含硬件电路调试及软件烧写调试) 验收 完成总结报告课程设计流程图↑ 选题目的及设计思想简介: 课程设计是一次难得的对所学的知识进行实践的机会,我希望通过课程设计独立设计一个简单的系统从而达到强化课本知识并灵活运用的目的。电子数字钟是日常生活钟随处可见的简单系统。对电子数字钟的设计比较容易联系实际并进行拓展,在设计中我将力求尽可能跳出课本的样板,从现实生活中寻找设计原型和设计思路,争取有所突破。 如图所示便是我本次课程设计流程图,设计的整个过程运用自顶向下分析、自底向上实现的

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

《汇编语言》课程设计任务书

学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 电话号码本编辑和查找程序的设计与实现 初始条件: 理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界面的设计。具体的设计任务及要求: 1)建立一个可存放50项的电话号码表,每项包括人名及电话号码两部分; 2)程序可接受输入人名及相应的电话号码,并将他们加入电话号码表中; 3)凡有新的输入后,程序应按人名对电话号码表重新排序; 4)程序可接受需要查找电话号码的人名,并从电话号码表中查出其电话号码,并显示出来。 5)程序采用子程序结构,结构清晰; 6)友好清晰的用户界面,能识别输入错误并控制错误的修改。 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。 阅读资料: 1)《IBM—PC汇编语言程序设计实验教程》实验2.4 2)《IBM—PC汇编语言程序设计(第2版)》例6.11 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 乐曲程序的设计与实现 初始条件: 理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。 实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握程序直接控制I/O方式,掌握计算机发声程序的设计。具体的设计任务及要求:1.采用位触发方式编写程序,使计算机发出音响并演奏乐曲(例如《两只老虎》等)。 1)进一步理解程序直接控制I/O方式和位触发方式控制声音的工作原理。 2)一首乐曲是由不同频率和节拍的音调组成,因此控制脉冲的频率和持续时间是编写乐曲程序的关键。根据已知的音符频率对照表,设置乐曲的频率表和节拍时间表; 3)编写程序并调试通过。 2.了解定时器的工作原理,掌握利用定时器产生声音的方法,使计算机演奏乐曲(例如《两只老虎》等)。编写程序并调试通过。 在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。 阅读资料: 1)《IBM—PC汇编语言程序设计实验教程》3.1节 2)《IBM—PC汇编语言程序设计(第2版)》10.4节,10.5节 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试,和验收。 周5:撰写课程设计报告。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 1.显示彩色菱形 2.显示系统当前时间 专业 班级 学号 姓名 指导教师 年月日

课程设计任务书 课程名称汇编语言程序设计 课题 1.显示彩色菱形 2.显示系统当前时间专业班级 学生姓名 学号 指导老师 审批 任务书下达日期年月日 任务完成日期年月日

一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能 够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 (1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9 名评委,每个评委给分范围为 0~100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。 (2) 、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30 字的 grade 数组中,各数据的格式为: 学号,成绩 1,成绩 2,?,成绩 5 然后根据 grade 中的学生成绩,把学生名次填入rank 数据组中,并显示出来,格式为:学号,名次 (3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右 上角显示计算机中当前系统时间,显示格式为 时:分: 秒:1/100 秒 (4)、输入一个菱形的两条对角线长,在屏幕上用‘ * ’号画出一个彩色的菱形。 (5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次, 一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一 些实际的问题,为将来编写软件积累一些典型的案例处理经验。 (1)、设计正确,方案合理。 (2)、界面友好,使用方便。 (3)、程序精炼,结构清晰。 (4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 (5)、上机演示。 (6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编

汇编语言课程设计报告

农林大学金山学院 课程设计报告 课程名称:汇编语言课程设计 课程设计题目:动画设计“我爱大自然”姓名: 系:信息与机电工程系 专业:电子信息工程 年级:2008级 学号:082230066 指导教师:\ 职称:助教 2009~2010学年第二学期

目录 1 课程设计的目的 (2) 2 课程设计的要求 (2) 3课程设计报告容 (2) 3.1设计思路 (2) 3.2程序流程图 (2) 3.3设计源程序 (5) 3.4动画示意图 (19) 4 总结 (20) 5参考文献 (20) 6评分标准 (21)

动画设计“我爱大自然” 一、课程设计的目的 《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是: 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求 1)具备初步的独立分析和解决问题的能力; 2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法的能力; 4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风; 5)设计的题目要求达到一定工作量,并具有一定的深度和难度; 6)编写出课程设计说明书。 三、课程设计报告容 (一)设计思路 “我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。 这样,整个程序就被分为几个子程序的有机统一。根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

2013年汇编语言程序设计课程设计

2013年汇编语言程序设计课程设计 一、作业题目 2013年汇编语言程序设计大型作业给出了3道题目,供大家凭自己的兴趣自由选择其中之一完成。这3道作业题目如下: 1.通用进制转换程序 2.两位数加减乘除程序 3.高精度乘法程序 二、交付的文档材料 1.程序系统说明书 内容包括: (1)程序系统总体的功能模块调用图及模块功能说明。 (2)程序系统的详细框图(每个子程序的流程图)。 (3)程序界面图。 (4)程序清单。 2.设计和实现的技术特点、不足和改进的建议 3.课程设计的体会。 4.程序源程序和可执行程序 三、评分说明 独立完成:60分,雷同或抄袭者不及格; 设计技术及技巧使用:25分; 文档质量:10分; 按时完成:5分。 可以自主扩充功能,有创新加分。 四、参考书 1.课本 2.《IBM-PC汇编语言程序设计》清华大学出版社 五、交付时间:第十八周的周五。

题目一通用进制转换程序 一、题目要求 实现不同进制之间的相互转换。(常用进制二、八、十、十六进制) 程序功能: 1.能通过键盘输入任一种进制,有相应的提示信息。 例如please input a Binary data: 2. 输入的数据要有容错检测。 例如:输入的二进制数据为1200,则应该出现错误信息提示。(因为2在二进制中是不允许的 3.输出的数据要有进制选择。 例如:请选择输出数据的进制(0: 二进制,1: 八进制……) 二、重点考察 1.用汇编实现简单的算法。 2.用汇编实现简单的数据结构。 3.可执行程序的参数使用。 4.INT 21H系统功能调用中有关显示与输出的操作 5.综合解决问题的能力。

相关主题
文本预览
相关文档 最新文档