微机原理课程设计素材1Word格式.docx

上传人:b****4 文档编号:7356017 上传时间:2023-05-08 格式:DOCX 页数:34 大小:23.63KB
下载 相关 举报
微机原理课程设计素材1Word格式.docx_第1页
第1页 / 共34页
微机原理课程设计素材1Word格式.docx_第2页
第2页 / 共34页
微机原理课程设计素材1Word格式.docx_第3页
第3页 / 共34页
微机原理课程设计素材1Word格式.docx_第4页
第4页 / 共34页
微机原理课程设计素材1Word格式.docx_第5页
第5页 / 共34页
微机原理课程设计素材1Word格式.docx_第6页
第6页 / 共34页
微机原理课程设计素材1Word格式.docx_第7页
第7页 / 共34页
微机原理课程设计素材1Word格式.docx_第8页
第8页 / 共34页
微机原理课程设计素材1Word格式.docx_第9页
第9页 / 共34页
微机原理课程设计素材1Word格式.docx_第10页
第10页 / 共34页
微机原理课程设计素材1Word格式.docx_第11页
第11页 / 共34页
微机原理课程设计素材1Word格式.docx_第12页
第12页 / 共34页
微机原理课程设计素材1Word格式.docx_第13页
第13页 / 共34页
微机原理课程设计素材1Word格式.docx_第14页
第14页 / 共34页
微机原理课程设计素材1Word格式.docx_第15页
第15页 / 共34页
微机原理课程设计素材1Word格式.docx_第16页
第16页 / 共34页
微机原理课程设计素材1Word格式.docx_第17页
第17页 / 共34页
微机原理课程设计素材1Word格式.docx_第18页
第18页 / 共34页
微机原理课程设计素材1Word格式.docx_第19页
第19页 / 共34页
微机原理课程设计素材1Word格式.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计素材1Word格式.docx

《微机原理课程设计素材1Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计素材1Word格式.docx(34页珍藏版)》请在冰点文库上搜索。

微机原理课程设计素材1Word格式.docx

第二个字节相加

ADCAL,[DI+1]

DAA

MOV[BX+1],AL

MOVAL,[SI+2]

ADCAL,[DI+2]

MOV[BX+2],AL

MOVAL,[SI+3]

ADCAL,[DI+3]

MOV[BX+3],AL

MOVDL,00;

最高位字节有进位则显示"

01"

ADCDL,00

CALLDISPSUM

MOVAH,4CH;

返回DOS

INT21H

DISPSUMPROCNEAR;

结果显示子程序

PUSHAX

PUSHBX

PUSHCX

PUSHSI

MOVSI,4

PUSHDX

MOVCX,5

LAB:

MOVAL,DL

MOVBL,DL

MOVCL,4;

显示高位字节

SHRAL,CL

ADDAL,30H

MOVAH,02

MOVDL,AL

INT21H;

显示一位字符

ANDBL,0FH;

显示低位字节

ADDBL,30H

MOVDL,BL

POPBX

POPCX

DECSI

MOVDL,[BX][SI];

结果显示

LOOPLAB

POPDX

POPSI

POPAX

RET

DISPSUMENDP

CODEENDS

ENDSTART

2.有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。

编程要求及提示:

[1]参加排序的数据及个数由学生自己定义。

[2]要将排序前的数组和排序后的数组在屏幕上显示出来。

[3]实验步骤同内容一。

见图2.

程序如下:

STACKSEGMENTSTACK

DB256DUP(?

DATA1DW4031H,3859H,0245H,1111H,0A231H,0FFFFH

STRING1DB'

Originalnumbers:

'

0DH,0AH,'

$'

STRING2DB'

Thenumbersfromlargetosmall:

MOVAX,STACK

MOVSS,AX

LEADX,STRING1;

显示人机交互提示

MOVAH,09H

MOVCX,6

LEASI,DATA1;

显示初始数据

L1:

MOVAX,[SI]

ADDSI,2

CALLDISPAX

CALLDISPCR

LOOPL1

MOVCX,5

LEASI,DATA1

ADDSI,10;

指针指向最后一个数据

LP1:

PUSHSI

LP2:

MOVAX,[SI];

数据排序

CMPAX,[SI-2]

JBENOXCHG

XCHGAX,[SI-2];

交换操作

MOV[SI],AX

NOXCHG:

DECSI;

不需排序时继续

DECSI

LOOPLP2

POPSI

POPCX

LOOPLP1

LEADX,STRING2;

显示字符串

MOVCX,6;

显示排好序后数据

L2:

LOOPL2

MOVAH,4CH

INT21H

DISPALPROC;

显示AL内容子程序

PUSHAX

PUSHCX

PUSHDX

MOVCL,4;

处理高位十六进制数

SHRAL,CL

CALLCHANG

MOVAH,02H

MOVDL,AL

INT21H;

POPAX

ANDAX,0FH;

处理低位十六进制数

POPDX

POPAX

RET

DISPALENDP

CHANGPROC;

十六进制数转换为ASCII码

CMPAL,10

JNGECHANG1

ADDAL,7

CHANG1:

CHANGENDP

DISPAXPROC;

显示AX内容子程序

XCHGAL,AH

CALLDISPAL

XCHGAH,AL

DISPAXENDP

DISPCRPROC;

回车换行子程序

MOVAH,2

MOVDL,0AH

MOVDL,0DH

DISPCRENDP

ENDSTART

3.编写建立、写入、读出磁盘文件的程序要求:

(1)设计一个包括:

建立文件、写入文件、读出文件的主菜单。

(2)能用输入的文件名,在磁盘建立文件。

(3)向已有文件中写入数据。

(4)读出已有文件的内容(ascii码或16进制数)。

下面是我的一篇文件操作代码,你修一下就可以用了。

includekcsj.mac

.modelsmall

.386

.stack200h

publicprog1

.data

menudb30dup('

'

),'

1.Displaytextfile'

0ah,0dh

db30dup('

2.Copytextfile'

3.Deletetextfile'

4.Theend'

Pleaseselectone(1~4):

'

prompt1db0ah,0dh,'

Filename:

prompt2db0ah,0dh,'

Linesofpage(1~25):

FNAMEdb15,?

15dup('

);

存放文件名的缓冲区

out1db0ah,0dh,'

Cannotopenfile!

out2db0ah,0dh,'

Cannotreadfile!

out3db0ah,0dh,'

Cannotcreatfile!

out4db0ah,0dh,'

Cannotwritefile!

out5db0ah,0dh,'

Cannotdeletefile!

out6db0ah,0dh,'

Thefilehasbeencopyed!

out7db0ah,0dh,'

Thefilehasbeendeleted!

bufferdb?

endcodedb0;

错误标志

end1db0;

结束标志

code1dw?

;

原文件的代号

code2dw?

新建文件的代号

signdb0

ask1db0ah,0dh,'

Inputsourcefilename:

ask2db0ah,0dh,'

Inputdestfilename:

rowdb23

infodb'

PressESCtoquit,ptochangepage,anykeytocontinue!

.code

prog1procfar

init

callmainshow

L1:

movah,1

int21h

cmpal,'

1'

jedisplay

2'

jecopy

3'

jedelete

jmprtn1

display:

callfdisp

movend1,0

mov[row],23

movendcode,0

jmpL1

copy:

callfcopy

movsign,0

delete:

callfdel

rtn1:

ret

prog1endp

mainshowprocnear

scroll0

cursor10,0

strdispmenu

mainshowendp

fdispprocnear;

分页显示

strdispprompt1

callfopen

scroll0;

清屏

cursor0,0;

置光标

cmpendcode,1

jnecont

movah,7

jmpext0

cont:

movbx,code1

callfread

jeext1

callfshow;

显示

cmpend1,1

jmpcont

ext1:

movah,3eh;

关闭文件

movbx,code1

ext0:

movendcode,0

ret

fdispendp

fopenprocnear;

打开文件

callin_name

movah,3dh

moval,0

jncnext

movendcode,1

strdispout1

next:

movbx,ax

movcode1,ax

fopenendp

in_nameprocnear;

输入文件名

leadx,FNAME

movah,0ah

int21h

leabx,FNAME+2

movah,0

moval,FNAME+1

addbx,ax

movbyteptr[bx],0

adddx,2

in_nameendp

freadprocnear;

读取文件

movah,3fh

movcx,1

leadx,buffer

jncpast

strdispout2

jmpexit

past:

cmpax,0

jeexit

exit:

movah,3eh

freadendp

fshowprocnear;

显示文件

movdl,[buffer]

movah,2

movah,3

movbh,0

int10h

cmpdh,[row]

jaed1

d1:

strdispinfo

d2:

movah,7

cmpal,0

jzd2

cmpal,1bh;

按ESC退出

jzd4;

退出关闭文件endcode=1

cmpal,70h;

按P提示输入每页行数

jnzd3

strdispprompt2

callchtonum

mov[row],al

d3:

cursor0,0

d4:

movend1,1

fshowendp

chtonumprocnear

movbx,0

newchar:

movah,1;

输入数字并转换为十进制

subal,30h

jlgoon

cmpal,9

jggoon

cbw

xchgax,bx

movcx,10d

mulcx

addbx,ax

jmpnewchar

goon:

moval,bl;

行数传给AL

chtonumendp

fcopyprocnear;

文件拷贝

cursor0,0

strdispask2

callfcreat

cmpendcode,1

jeover

movcode2,ax

strdispask1

callfopen

jeetn0

again:

callfread

jeetn0

movsign,1

pushbx

cmpax,0

jenext2

movcx,ax

movbx,code2

movah,40h

popbx

jncagain

strdispout4

next2:

etn0:

cmpsign,1

jneover

strdispout6

over:

fcopyendp

fcreatprocnear;

创建文件

movah,3ch

movcx,00

jncnext1

strdispout3

next1:

fcreatendp

fdelprocnear;

删除文件

strdispprompt1

callin_name

movah,41h

jnzquit

strdispout5

quit:

strdispout7

fdelendp

endprog1

4.运行符合题目要求,按“q”键退出。

;

按字母“S”画一个用不同颜色填充的三角形;

按字母“Z”画一个用不同颜色填充且带有边框图案的矩形;

datasegment

info1db0dh,0ah,'

pleasechoosetheletterS,Z,q:

db0dh,0ah,'

(inputqtoquit)$'

x1dw140

y1dw60

x2dw500

y2dw400

colordw0c07h

dataends

stacksegmentstack

db200dup(0)

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack

mainprocfar

movax,data

movds,ax

movax,12h

int10h

input:

leadx,info1

movah,9

int21h

@in:

movah,0

int16h

cmpah,10h;

按键码'

q'

和"

Q"

jzexit

cmpah,1fh;

s'

S"

jzsa

cmpah,2ch;

z'

Z"

jnz@in

zhen:

callzheng

callfill

jmpexit

sa:

callsan

movah,1

movah,4ch

ret

mainendp

画三角块

sanprocnear

moval,1

a0:

movdx,1

movbp,1

movcx,320

a1:

pushcx

pushbp

a2:

movah,12

pushax

popax

inccx

subbp,1

jnza2

popbp

addbp,2

popcx

incdx

cmpdx,20

jbeQ1

incal

Q1:

cmpdx,40

jbeQ2

Q2:

deccx

jnea1

sanendp

zhengprocnear

******画矩形******

movcx,x1

movdx,y1

movsi,x2

movdi,y2

cmpcx,si

jbeQ3

xchgcx,si

movx1,cx

movx2,si

Q3:

cmpdx,di

jbeQ5

xchgdx,di

movy1,dx

movy2,di

Q5:

画矩形边框

PUSHDX

PUSHCX

@31C:

MOVAX,color

INT10H

INCCX

CMPCX,SI

JNZ@31C

@326:

INT10H

INCDX

CMPDX,DI

JNZ@326

POPSI

@32E:

DECCX

JNZ@32E

POPDI

@339:

DECDX

JNZ@339

fill:

movax,0c01h

movcolor,ax

incx1

incy1

decx2

decy2

movbp,y2

movdi,bp

shrdi,1

callCol

inccolor

adddi,100

movax,0c04h

ret

填充色块

Col:

_31C:

JNZ_31C

cmpdx,di

jbeCol

zhengendp

codeends

endmain

微机接口课程设计

实验报告

计算机31班

秦鹏程 

03055014

实验一 

 

电子琴

一、实验目的

通过D/A转换器产生模拟信号,使PC机作为简易电子琴

了解利用数模转换器产生音乐的基本方法

二、实验内容

实验电路如图所示,8253的CLK0接1MHz时钟,GATE0接+5V,OUT0接8255的PA0,J1接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。

三、编程提示

1.对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出,给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波,对于音乐,每个音阶都有确定的频率。

各个音阶标称频率值:

音阶 

频率:

(单位Hz)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2