当前位置:文档之家› 汇编语言课程设计报告-打字练习程序

汇编语言课程设计报告-打字练习程序

汇编语言课程设计报告-打字练习程序
汇编语言课程设计报告-打字练习程序

提供全套毕业设计,欢迎咨询

汇编语言课程设计报告

程序题目:打字练习程序

学生姓名:XX

班级:2010级计算机科学与技术专业4班学号:XXX

院系:计算机科学学院

指导教师:XXX

—I—

目录

1设计目的 (3)

2概要设计 (3)

2.1 系统总体分析 (3)

2.2主模块框图及说明 (4)

3 详细设计 (5)

3.1 主模块及子模块说明 (5)

3.2 各模块详细设计 (5)

3.2.1主界面模块 (5)

3.2.2随机字母产生模块 (7)

3.2.3字母落下模块 (9)

3.2.4暂停模块 (10)

4.程序调试 (11)

4.1运行界面分析 (11)

4.2调试过程及分析 (13)

5心得体会 (13)

5.1 设计体会 (13)

5.2 系统改进 (13)

参考文献 (14)

附:程序源代码 (14)

陕西师范大学汇编语言课程设计实验报告

1设计目的

本程序运行后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。通过课程设计,主要达到以下目的:

1. 增进对汇编语言的认识,加强用汇编语言编程的能力;

2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;

3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;

4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;

5. 掌握屏幕输出显示的设计方法。

2概要设计

2.1 系统总体分析

根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。2.字母自动落下。3.从键盘输入的字母与落下字母相同则该字母消失,并且下一个字母自动接着落下。4.按下“Ese”键则程序返回到主界面。5.按空格键游戏暂停。6.在主界面按“E”则程序退出。打字练习的主要功能由以上六部分组成,每一部分之间的联系都是比较紧密的。对于以上及部分,最主要的部分就是第二三两个部分,这是打字练习的重点,需要详细设计其所需要的功能。

2.2主模块框图及说明

E 其他键

ENTER

ENTER

是 否

图2-1程序设计流程图

程序的核心模块是打字,各个模块功能的实现主要是通过键盘输入指令来

从键盘输入字符 结束 随即字母落下 当前字母消失 暂停 判断输入按键

键入字符是否与下落一致 是否是空格 开始

输入空

是否是ESC

融合的,主要流程是先到主界面,然后选择你想要进行的指令ENTER进入打字界面开始打字,E退出程序,空格在打字练习时执行暂停的功能,ESC是从打字界面返回到主界面。核心模块的流程大体如下面的流程图图2-1:

3 详细设计

3.1 主模块及子模块说明

主界面是程序的初始入口,也是其他功能模块的接入点。主模块是打字模块,也是核心模块,主要通过各个键盘符来控制各个子模块之间的协调。子模块分为判断输入字符判断模块(这当中包含两个小的子模块:主界面输入字符判断和打字模块输入字符判断)、暂停模块、退出模块(这当中包含两个小的子模块:打字界面返回主界面模块和主界面退出程序模块)

3.2 各模块详细设计

3.2.1主界面模块

当程序运行后,我们首先要进行选择,是要继续进行即进入打字练习程序还是终止练习退出程序。所以,在这里我们需要设置一个程序,该程序要判断键盘键入的字符,我们不妨规定ESC键和ENTER键分别为终止程序的控制键和进入打字练习程序的控制键,即当检验到键盘输入ESC后,退出程序;当键盘输入为ENTER时进入打字练习程序。

单元程序如下:

data segment

ZK db "HELLO,WELCOME TO HERE!$"

no db "My name isXX,my student number is:XX.$"

meg db "Press 'ENTER' key to continue.......$"

meg1 db "When a letter is dropping,please hit it!$"

meg2 db "Press 'SPACE' key to pause!$"

meg3 db "Press ESC key to return main interface!$"

meg4 db "Press letter 'E' to exit!$"

;以上设置主界面的显示方式。

clear_screen 00d,00d,24d,79d

Init_game 00d,00d,0ah,dl,80d,nextsign1

Init_game 24d,00d,0ah,dl,80d,nextsign2

Init_game 00d,00d,0ah,dh,25d,nextsign3

Init_game 00d,79d,0ah,dh,25d,nextsign4

menu 05d,15d,ZK ;菜单信息的宏调用

menu 07h,15d,no

menu 09d,15d,meg

menu 11d,15d,meg1

menu 13d,15d,meg2

menu 15d,15d,meg3

menu 17d,15d,meg4

put: mov ah,02h ;设置光标位置

mov bh,00h

mov dh,22d

mov dl,33d

int 10h

mov ah,01h ;从键盘输入任意字符

int 21h

cmp al,0dh

je speed3

cmp al,45h

je exit

以上代码是清屏,并调用宏实现主界面的显示,并在主界面中设置了菜单显

示后的光标位置,以方便使用者的操作。

in_cycle:

add cx,01h

cmp cx,1000

jne in_cycle

push dx

mov ah,06h ;从键盘输入字符

mov dl,0ffh

int 21h

pop dx

jz pass

cmp al,1bh ;如果键入ESC,则返回主菜单

je to_start1

cmp al," " ;如果键入SPACE,则游戏暂停

je pause

cmp al,[di] ;输入字母正确!则字母消失

je disappear

to_start1: ;返回主菜单

jmp start

上述程序段中用到了中断INT21,利用中断的有关规定,先将01H存入到AH 当中,则AL中即为由键盘键入的字符。在此,先通过CMP指令来判断输入的字符是否是ENTER键(ENTER键的ASCII码为十六进制的0DH,程序开头部分的宏定义已经令CR为0DH),如果是的话,程序将跳转到程序disappear,disappear是定义的又一个程序,该程序即为打字练习程序的核心部分。如果不是ENTER的话,将执行下一条指令,即判断键盘键入的是否为E键,此功能由CMP AL,1BH 来实现,其中1BH是E键的ACSII码的十六进制的表示。如果是E键的话,程序将跳转到TZD_1子程序,再通过TZD_1程序来判断是否要退出打字练习程序。如果键盘键入的既不是ENTER也不是E键的话,程序将继续等待键盘的输入,直到输入的按键为ENTER和E当中的一个为止。

3.2.2随机字母产生模块

当用户选择继续运行程序且进入打字练习界面时,则程序需要首先为用户

输出一列随机的字符序列,这时程序就需要自动的调用产生随机字符序列的程序。程序段如下:

letters db "jwmilzoeucgpravskntxhdyqfb"

db "iytpkwnxlsvxrmofzhgaebudjq"

db "nwimzoexrphysfqtvdcgljukda"

letters_bak db "jwmilzoeucgpravskntxhdyqfb"

db "iytpkwnxlsvxrmofzhgaebudjq"

db "nwimzoexrphysfqtvdcgljukda"

letter_counter db 0

begin: clear_screen 01d,01d,23d,78d ;清屏宏调用

clear_screen 01d,01d,23d,78d

Init_game 23d,01d,01h,dl,78d,nextsign5

mov ah,02h

mov bh,00h

mov dh,01h

mov dl,01h

int 10h

mov cx,00h

lea si,letters

上述的程序段中,begin实现了输出的字符的随机显示,当然这个随机是我们要事先通过自己随机定义一段由26个字母随机组成的序列,然后由begin 来调用,从而间接来实现随即字母的产生。Begin段利用了INT10,其功能是设置屏幕显示方式,灵活的利用INT10丰富的指令功能,可以巧妙的设计出想要的程序来。INT10中断规定,DH和DL共同控制着字符输出的位置,其中DH 为字符输出的行标,DL为字符输出的列标,通过改变DH和DL的值,可以改变字符在命令符输出屏幕上的位置;如果AH=09H时,则AL=字符,BL则是控制

着输出的字符属性或颜色;计数器CX中存放的则是重复输出字符的个数。本程序中令CX中存放78,也就是说loop循环程序将循环78次,程序的输出为78个字符,当loop循环程序运行结束之后,程序将执行下一条指令,调用DAZIRUKOU子程序。使得程序继续运行,让用户按照程序自动产生的字符串来进行打字练习。

3.2.3字母落下模块

程序自动进入打字功能,自动落下字符,等待键盘输入字符以此来判断输入者想什么,如果键盘输入与预期的相符合则程序自动执行相关功能。如果输入字符与落下字符相同,程序执行当前字母消失和产生下一落下字母的功能,字母落下功能的实现是通过逐行替换的方法实现的,字母在当前行出现会有一个延迟时间,当过了这个延迟时间时,程序执行当前位置清空操作,并在下一行显示上一行的字母。代码如下:

hit: mov ah,02h

mov bh,00h

mov dh,01h

mov dl,present_position

int 10h

mov al,[di] ; 出现下一个新字母的数法

add al,7

cmp al,7ah

ja convey_letter

mov ah,0ah

mov bh,00h

mov cx,01h

int 10h

mov [di],al

add letter_counter,01h

jmp nextcycle

convey_letter:

sub al,7ah

add al,61h

mov ah,0ah

mov bh,00h

mov cx,01h

int 10h

mov [di],al

add letter_counter,01h

jmp nextcycle

clear_screen 01,01,23,78

mov ah,02h

mov bh,00h

mov dh,11d

mov dl,20d

int 10h

inc dh

inc dh

mov ah,02h

mov bh,00h

int 10h

disappear: ;击中字母后输出空格

pop cx

pop cx

mov ah,0ah

mov al," "

mov bh,00h

mov cx,01h

int 10h

jmp hit

3.2.4暂停模块

如果输入空格,则程序执行暂停功能,暂停功能的实现是通过以下方法实

现的,当从键盘输入空格时,程序收到暂停信号,执行跳转,跳转到一个死循环模块,就是无限显示当前屏幕,不做其他任何操作,直到键盘再次输入空格时,程序收到暂停结束指令,跳转回到主程序模块,继续执行主模块的功能。代码如下:

pass: pop cx

inc cx

cmp cx,speed

je print

jmp out_cycle

pause: push dx ;暂停处理

mov ah,06h

mov dl,0ffh

int 21h

pop dx

cmp al," "

jne pause

jmp pass

4.程序调试

4.1运行界面分析

程序运行后的主界面如图4-1,主界面第一行是欢迎语,第二行是作者,然后往下是操作说明,为使用者说明该程序的使用方法。

图4-1 程序主界面

当用户按下ENTER键时,程序自动跳入到图4-2的界面,字母随机落下,用户便可以开始打字练习了。练习只要按照说明来做就可以了。

图4-2 打字界面

4.2调试过程及分析

当程序运行时,我发现当按esc退出,如果之前按下空格键暂停时,则退不出去,必须再次按下空格是程序开始运行才能退出。主要是因为按下空格键时,程序收到暂停信号,执行跳转,跳转到一个死循环模块,就是无限显示当前屏幕,不做其他任何操作,直到键盘再次输入空格时.

5心得体会

5.1 设计体会

课程设计对我们多数初学汇编的学生来说,确实是一座高峰。翻越他是需付出努力的。我也是在探索了好久才弄明白他的,在此做个小总结,也许对自己今后的学习有些借鉴作用。在整个程序的编写中,调试占了很大部分的时间,要想写好汇编程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug 指令。通过这次实际动手能力的培养,我进一步熟悉了汇编的结构和使用法,基本达到能独立阅读。我觉得学习汇编的一个较大好处就是可以了解电脑中每一个字节数据的来龙去脉,我觉得学习汇编可以发挥一下自己的空间想象力。

5.2 系统改进

这次课程设计,其主题内容都以满足课程实际的要求,各功能都能相应的完成,即写一个程序,运行可执行程序后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出,但是感觉整个程序界面不够华丽,看着粗糙的界面,不能引起别人的注意,下次能够吧界面做得更好看一些。

参考文献

[1]李敬兆8086/8088和arm核汇编语言程序设计中国科技大学出版社

[2]沈美明,温冬婵编著IBM—PC汇编语言程序设计(第二版)清华大学出版社出

[3]罗云彬Windows环境下32位汇编语言程序设计电子工业出版社

[4]【美】Kip R.Irvine 著,温玉杰等译Intel 汇编语言程序设计(第四版)电子工业

出版社

[5]吕晓庆80386/80486系统编程实践淅江大学出版社

[6]袁可风汇编语言程序设计江西高校出版社

[7]戴水贵Windows汇编语言程序设计教程清华大学出版社

[8]罗杰INTEL86系列汇编语言程序设计江西科学技术出版社

附:程序源代码

Init_game macro op1,op2,op3,op4,op5,op6

mov cx,00h

mov dh,op1

mov dl,op2

op6:mov ah,02h

mov bh,00h

int 10h

push cx

mov ah,0ah

mov al,op3

mov bh,00h

mov cx,01h

int 10h

pop cx

inc cx

inc op4

cmp cx,op5

jne op6

endm

clear_screen macro op1,op2,op3,op4 ;清屏宏定义

mov ah,06h

mov al,00h

mov bh,07h

mov ch,op1

mov cl,op2

mov dh,op3

mov dl,op4

int 10h

mov ah,02h

mov bh,00h

mov dh,00h

mov dl,00h

int 10h

endm

menu macro op1,op2,op3 ;菜单显示宏定义

mov ah,02h

mov bh,00h

mov dh,op1

mov dl,op2

int 10h

mov ah,09h

lea dx,op3

int 21h

endm

data segment

ZK db "HELLO,WELCOME TO HERE!$"

no db "My name is Liu Hui,my student number is:41012169.$" meg db "Press 'ENTER' key to continue.......$"

meg1 db "When a letter is dropping,please hit it!$"

meg2 db "Press 'SPACE' key to pause!$"

meg3 db "Press ESC key to return main interface!$"

meg4 db "Press letter 'E' to exit!$"

speed dw 500d

letters db "jwmilzoeucgpravskntxhdyqfb"

db "iytpkwnxlsvxrmofzhgaebudjq"

db "nwimzoexrphysfqtvdcgljukda"

letters_bak db "jwmilzoeucgpravskntxhdyqfb"

db "iytpkwnxlsvxrmofzhgaebudjq"

db "nwimzoexrphysfqtvdcgljukda"

letter_counter db 0

life_flag db 78 dup(0)

position_flag db 78 dup(0)

present_position db 1

data ends

stack segment para stack 'stack'

db 64 dup(0)

stack ends

code segment

main proc far

assume cs:code,ds:data,ss:stack

start: mov ax,data

mov ds,ax

mov letter_counter,00h

mov present_position,1

lea si,position_flag

mov ah,00h

mov cx,00h

init_postion_flag:

mov [si],ah

inc si

inc cx

cmp cx,78d

jne init_postion_flag

lea di,letters

lea si,letters_bak

mov cx,00h

init_letters:

mov ah,[si]

mov [di],ah

inc si

inc di

inc cx

cmp cx,78d

jne init_letters

mov ah,00h

lea si,life_flag

mov cx,00h

init_life_flag:

mov [si],ah

inc si

inc cx

cmp cx,78d

jne init_life_flag

mov cx,00h

mov ah,01h

or ch,00010000b

int 10h

clear_screen 00d,00d,24d,79d

Init_game 00d,00d,0ah,dl,80d,nextsign1

Init_game 24d,00d,0ah,dl,80d,nextsign2

Init_game 00d,00d,0ah,dh,25d,nextsign3

Init_game 00d,79d,0ah,dh,25d,nextsign4

menu 05d,15d,ZK ;菜单信息的宏调用

menu 07h,15d,no

menu 09d,15d,meg

menu 11d,15d,meg1

menu 13d,15d,meg2

menu 15d,15d,meg3

menu 17d,15d,meg4

put: mov ah,02h ;设置光标位置

mov bh,00h

mov dh,22d

mov dl,33d

int 10h

mov ah,01h ;从键盘输入任意字符

int 21h

cmp al,0dh

je speed3

cmp al,45h

je exit

exit: mov ah,4ch

int 21h

speed3: mov ax,speed+12

mov speed,ax

jmp begin

begin: clear_screen 01d,01d,23d,78d ;清屏宏调用

clear_screen 01d,01d,23d,78d

Init_game 23d,01d,01h,dl,78d,nextsign5

mov ah,02h

mov bh,00h

mov dh,01h

mov dl,01h

int 10h

mov cx,00h

lea si,letters

nextletter:

mov ah,02h ;显示字母

mov dl,[si]

int 21h

inc si

inc cx

cmp cx,78d

je nextcycle

jmp nextletter

from_front:

sub present_position,78d

jmp gobackto_si

find_zero:

cmp letter_counter,78d

cmp present_position,78d

je from_one

mov ah,00h

nextsi: add present_position,01h

inc si

cmp [si],ah

je gobackto_di

cmp present_position,78d

je from_one

jmp nextsi

from_one:mov present_position,01h

jmp gobackto_si

recycle:mov letter_counter,00h

mov present_position,01d

lea si,position_flag

mov cx,00h

mov ah,00h

clearsi: mov [si],ah

inc cx

cmp cx,78d

je nextcycle

inc si

jmp clearsi

nextcycle:

lea di,letters

lea si,position_flag

add present_position,31d

cmp present_position,78

ja from_front

gobackto_si:

add si,word ptr present_position

dec si

mov ah,[si]

cmp ah,01h

je find_zero

gobackto_di:

mov ah,01h

mov [si],ah

add di,word ptr present_position

dec di

mov dl,present_position

mov ah,02h

mov bh,00h

int 10h

mov cx,00h

nextrow: push cx

mov cx,00h

out_cycle: ; 延迟

push cx

mov cx,00h

in_cycle:

add cx,01h

cmp cx,1000

jne in_cycle

push dx

mov ah,06h ;从键盘输入字符

mov dl,0ffh

int 21h

pop dx

jz pass

cmp al,1bh ;如果键入ESC,则返回主菜单

je to_start1

cmp al," " ;如果键入SPACE,则游戏暂停

je pause

cmp al,[di] ;输入字母正确!则字母消失

je disappear

pass: pop cx

inc cx

cmp cx,speed

je print

jmp out_cycle

pause: push dx ;暂停处理

mov ah,06h

mov dl,0ffh

int 21h

pop dx

cmp al," "

jne pause

jmp pass

to_start1: ;返回主菜单

jmp start

print:

mov ah,0ah ;在当前光标位置写空格

mov al," "

mov bh,00h

mov cx,01h

int 10h

inc dh

mov ah,02h ;改变光标位置

mov bh,00h

int 10h

mov ah,0ah ;在当前光标位置写字母

mov al,[di]

mov bh,00h

mov cx,01h

int 10h

pop cx

inc cx

cmp cx,21d

je print_next_letter

jmp nextrow ;下一行

disappear: ;击中字母后输出空格

pop cx

pop cx

mov ah,0ah

mov al," "

mov bh,00h

mov cx,01h

int 10h

jmp hit

print_next_letter:

lea si,life_flag

add si,word ptr present_position

dec si

mov ah,0ah

mov al," "

mov bh,00h

mov cx,01h

int 10h

inc dh

mov ah,02h

mov bh,00h

int 10h

mov ah,0ah

mov al," "

mov bh,00h

mov cx,01h

int 10h

mov ah,1

mov [si],ah

汇编语言课程设计

沈阳大学

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所示。 沈阳大学

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

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

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 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 程序运行结果

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

汇编语言-课程设计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型数据转换为字符串,这样我们才能调用第一个程序将其打印出

【报告】汇编语言程序设计报告

【关键字】报告 汇编语言程序设计报告 计算机学院 2011/6/7 题目要求 分支程序设计: 1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。 子程序设计: 2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。 循环程序设计: 3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。 DOS功能调用: 4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。 5、编写一个生成ASCII码表的程序,并显示在屏幕上。 6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年, 则在屏幕上显示“Y”,否则显示“N”。 7、显示杨辉三角形。要求: (1)从键盘接收正整数n; (2)屏幕显示杨辉三角形,显示n行信息; 编程思路: 1. 在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。 利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错,值存入SCORE中,将SCORE的高位分别与9,8,7,6相比, 跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A. 2. 在数据段设置ADDRESS存放数据偏移量和COUNT计数器 利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。 3. 在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a 则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。 4. 堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2, CX出栈,加入外循环,输出下一行信息。 5. 初始化时设置行列数,第一个字符的ASCII值,设置两层循环,首先CX入栈保护输出行数,外层循环控制输出行数,内循环输出列个数对应的字符数,将要输入的字符存入DL,每输出完一次DL+1,SI值即列数给CX,当CX=0时,输出回车换行,CX出栈,加入外循环准备下

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

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

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

汇编语言课程设计报告 ( 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 为一个工作周期,等待回波,在次周期内完成一次探测。

汇编课程设计报告

汇编课程设计报告

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

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

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

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

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制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

《汇编语言程序设计》学习心得自主学习报告.doc

自主学习报告书 题目:学习汇编语言程序设计报告学习课程:《汇编语言程序设计》姓名: 专业: 学号: 福建工程学院国脉信息学院教务处制 二○一二年六月

学习汇编语言程序设计报告书 由于实际工作中对汇编语言程序设计应用较多,在业余时间我自主学习了北京大学出版社出版的《汇编语言程序设计》一书。这一本书介绍了80x86汇编语言程序设计的方法和技术,共分为两个部分:第一部分介绍80x86cpu的编程结构,汇编语言程序的格式和伪指令,80x86cpu的寻址方式和指令系统;第二部分深入讨论分支程序、循环程序、子程序基本程序设计方法,以及以中断为主的i/o程序设计,其中包括宏指令、多模块连接技术、汇编语言与高级语言的混合编程、dos和bios提供的常用中断调用,以及文件系统等内容。 通过本书,我深入的掌握了汇编语言的编程方法、思路和技巧,并对计算机的底层编程有一定认识;还对计算机底层运行程序的机制及计算机的工作原理有了深入的了解。 在学汇编的过程中,最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与计算机内部的结构联系应该联系很密切,而且我在学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言也

是由一个一个的函数组成的。没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素 汇编程序给人感觉最烦的就是好多程序的结果不能直接通过运行EXE文件显示出来,而更多的是经过DEBUG单步调试才能看到其内在变化,看是否正确。汇编程序不像其他的高级语言一样需要编译器,而是直接的就能在记事本上编写,然后进行汇编和连接就可以了。学习汇编调试,关键就是要掌握DEBUG的运用。汇编程序把汇编语言翻译成机器语言的过程称为汇编。是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 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”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

《汇编语言程序设计》实验报告(一)

《汇编语言程序设计》实验报告(一) 姓名学号系别班级 指导教师实验日期 课程名称《汇编语言程序设计》同组实验者 一、实验名称:实验一汇编程序和连接程序的使用 二、实验目的: 1. 熟悉汇编语言的上机环境; 2. 学习EDIT,MASM,LINK程序的使用; 3. 掌握建立、汇编、链接、运行汇编语言程序的过程。 三、实验类型:验证 四、实验材料、工具、或软件 多媒体计算机、WINDOWS XP系统或纯DOS系统、MASM6.11以上版本或汇编语言程序设计实验集成环境。 五、实验要求 1. 编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。 2.完成课堂例题,并用DEBUG运行,观察结果。 六、试验内容与步骤:(附上必要的调试过程及运行结果截图,可加附页) 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。上机步骤如下: 1、调用https://www.doczj.com/doc/3518866671.html,程序建立汇编语言源程序.ASM 建立好的源文件以EX_1.ASM为文件名存盘 DATA SEGMENT STRING1 DB 'Visual C++ ' STRING2 DB 'Visual Basic' COUNT EQU $-STRING2 MESS1 DB 'MATCH!’,13,10,’$' MESS2 DB 'NO MATCH!’,13,10,’$' DATA ENDS code segment assume cs:code,ds:data,es:data main proc far start: push ds

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.综合解决问题的能力。

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