微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx

上传人:b****5 文档编号:5976330 上传时间:2023-01-02 格式:DOCX 页数:16 大小:106.86KB
下载 相关 举报
微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx_第1页
第1页 / 共16页
微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx_第2页
第2页 / 共16页
微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx_第3页
第3页 / 共16页
微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx_第4页
第4页 / 共16页
微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx

《微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx》由会员分享,可在线阅读,更多相关《微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx(16页珍藏版)》请在冰豆网上搜索。

微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级.docx

微机原理与接口实验报告实验一INTRL88软件实验杭州电子科技大学自动化09级

微机原理与接口

实验报告

 

实验名称:

INTRL88软件实验

班级:

学号:

姓名:

指导老师:

 

2011年月日

实验一INTEL88软件实验

(一)两个多位十进制数相减实验

1.实验要求

将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI和DATA2为首的5个内存单元中(低位在前),并且先后在数码管上显示出来,相减的结果转化为ASCII码送回DATA。

2.实验目的

1.学习数据传送和算术运算指令的用法。

2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

3.程序说明:

流程图

 

4.源程序清单及执行结果:

NEQU5

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

PUSHCS

POPDS

LEASI,DATA1;显示子程序入口参数

MOVCX,N

CALLLEDSHOW;显示被减数

CALLDELAY

LEASI,DATA2

MOVCX,N

CALLLEDSHOW;显示减数

CALLDELAY

LEASI,DATA1

LEADI,DATA2

MOVCX,N

CLD

CLC

MOVAH,00H

MINUS:

MOVAL,[SI]

ANDAL,0FH

MOVDL,[DI]

ANDDL,0FH

SUBAL,DL

SUBAL,AH

AAS

MOVAH,00H

ADCAH,00H

ORAL,30H

MOV[SI],AL

INCSI

INCDI

LOOPMINUS

CMPAH,01H

JNESHOW

SHOW_SIGN:

LEASI,NEGTIVE

MOVCX,1

CALLLEDSHOW

CALLDELAY

SHOW:

LEASI,DATA1

MOVCX,N

CALLLEDSHOW

CALLDELAY

JMPOVER

LEDSHOWPROC

PUSHAX

PUSHBX

PUSHDX

PUSHF

MOVDX,239H;初始化(8279芯片命令字端口)

MOVAL,00;左边输入,八位显示外部译码八位显示

OUTDX,AL

MOVBX,CX

MOVCX,08

MOVDX,238H;8279芯片数据端口

MOVAL,00

NEXT1:

OUTDX,AL;熄灭所有数码管

LOOPNEXT1

MOVCX,BX

NEXT:

MOVAL,[SI];取被显示的数

LEABX,LED;查表

XLAT;查表的结果送AL

MOVDX,238H

OUTDX,AL;显示一个数

INCSI

LOOPNEXT

POPF

POPDX

POPBX

POPAX

RET

LEDDB45DUP(00H)

DB40H,80H,00H;减号,点号字型码

DB3FH,06H,5BH,4FH;0-3字型码

DB66H,6DH,7DH,07H;4-7字型码

DB7FH,6FH;8-9字型码

DB7DUP(00H)

DB77H,7CH,39H,5EH;A-D字型码

DB79H,71H,7DH,76H;E-H字型码

DB0FH;I字型码

DB7DUP(00H)

DB67H,50H,6DH;Q-S字型码

DB11DUP(00H),08H;"_"字型码

LEDSHOWENDP

DELAYPROC;延时子程序

PUSHAX

PUSHCX

PUSHF

MOVAL,0AH

DELAY1:

MOVCX,0FFFFH

DELAY2:

NOP

LOOPDELAY2

DECAL

JNZDELAY1

POPF

POPCX

POPAX

RET

DELAYENDP

OVER:

NOP

HLT

DATA1DB34H,35H,36H,37H,38H;第一个数据(作为被减数)

DATA2DB35H,34H,35H,36H,37H;第二个数据(作为减数)

RESULTDB6DUP(00H)

NEGTIVEDB2DH

CODEENDS

ENDSTART

;执行结果:

(按显示顺序)876547654511109

(二)两个数相乘的实验

1.实验要求:

实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,并先后显示到数码管上,乘法结果在数码管上显示出来。

2.实验目的:

掌握乘法指令和循环指令的用法。

3.程序说明:

流程图

 

4.源程序清单及执行结果:

NEQU4

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

PUSHCS

POPDS

LEASI,DATA1

MOVCX,N

CALLLEDSHOW

CALLDELAY

LEASI,DATA2

MOVCX,N

CALLLEDSHOW

CALLDELAY

CLC

LEASI,DATA1

LEADI,DATA2

LEABX,RESULT

MOVCX,N

MOVAH,00

MUL1:

PUSHCX

MOVDL,[DI];取乘数

ANDDL,0FH

MOVCX,N

LEASI,DATA1

MUL2:

MOVAL,[SI];取被乘数

ANDAL,0FH

MULDL

AAM

ADDAL,[BX]

AAA

MOV[BX],AL

INCBX

ADD[BX],AH

INCSI

LOOPMUL2

POPCX;取回乘数循环控制量

SUBBX,N-1

INCDI

LOOPMUL1

LEASI,RESULT

MOVCX,N+N

CALLLEDSHOW

CALLDELAY

JMPGAMEOVER

LEDSHOWPROC;显示子程

PUSHAX

PUSHBX

PUSHDX

PUSHF

MOVDX,239H

MOVAL,00

OUTDX,AL

MOVBX,CX

MOVCX,08

MOVDX,238H

MOVAL,00

NEXT1:

OUTDX,AL

LOOPNEXT1

MOVCX,BX

NEXT:

MOVAL,[SI]

ANDAL,0FH

LEABX,LED

XLAT

MOVDX,238H

OUTDX,AL

INCSI

LOOPNEXT

POPF

POPDX

POPBX

POPAX

RET

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB5EH,79H,71H

LEDSHOWENDP;显示子程结束

DELAYPROC;延时子程

PUSHAX

PUSHCX

PUSHF

MOVAL,0AH

DELAY1:

MOVCX,06FFFH

DELAY2:

NOP

LOOPDELAY2

DECAL

JNZDELAY1

POPF

POPCX

POPAX

RET

DELAYENDP;延时子程结束

GAMEOVER:

HLT

DATA1DB32H,35H,36H,38H;第一个数据(作为被乘数)

DATA2DB39H,34H,37H,33H;第二个数据(作为乘数)

RESULTDB8DUP(00)

CODEENDS

ENDSTART

;执行结果:

(按显示顺序)4455568225313310

(三)BCD码相乘实验

1.实验要求:

实现BCD码的乘法,要求被乘数和乘数以组合的BCD码形式存放,各占一个内存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD码乘法指令,程序中采用将乘数1作为计数器,累加另一个乘数的方法得到计算结果。

2.实验目的:

掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。

3.程序说明:

流程图

 

4.源程序清单及执行结果:

NEQU2

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

PUSHCS

POPDS

LEABX,DATA1

MOVAL,[BX]

ANDAL,0FH

PUSHBX

LEABX,TDATA1

MOV[BX],AL

POPBX

MOVAL,[BX]

MOVCL,4

SHRAL,CL

LEABX,TDATA1

MOV[BX+1],AL

OR[BX],3030H;TDATA1中存被乘数的ASCII码

LEASI,TDATA1

MOVCX,N

CALLLEDSHOW

CALLDELAY

LEABX,DATA2

MOVAL,[BX]

ANDAL,0FH

PUSHBX

LEABX,TDATA2

MOV[BX],AL

POPBX

MOVAL,[BX]

MOVCL,4

SHRAL,CL

LEABX,TDATA2

MOV[BX+1],AL

OR[BX],3030H;TDATA2中存乘数的ASCII码

LEASI,TDATA2

MOVCX,N

CALLLEDSHOW

CALLDELAY

CLC

LEASI,TDATA1

LEADI,TDATA2

LEABX,RESULT

MOVCX,N

MOVAH,00

MUL1:

PUSHCX

MOVDL,[DI];取被乘数

ANDDL,0FH

MOVCX,N

LEASI,TDATA1

MUL2:

MOVAL,[SI]

ANDAL,0FH

MULDL

AAM

ADDAL,[BX]

AAA

MOV[BX],AL

INCBX

ADD[BX],AH

INCSI

LOOPMUL2

POPCX;取回被乘数偏移量

LEABX,RESULT

INCBX

INCDI

LOOPMUL1

LEASI,RESULT

MOVCX,N+N

CALLLEDSHOW

CALLDELAY

JMPGAMEOVER

LEDSHOWPROC;显示子程

PUSHAX

PUSHBX

PUSHDX

PUSHF

MOVDX,239H

MOVAL,00

OUTDX,AL

MOVBX,CX

MOVCX,08

MOVDX,238H

MOVAL,00

NEXT1:

OUTDX,AL

LOOPNEXT1

MOVCX,BX

NEXT:

MOVAL,[SI]

ANDAL,0FH

LEABX,LED

XLAT

MOVDX,238H

OUTDX,AL

INCSI

LOOPNEXT

POPF

POPDX

POPBX

POPAX

RET

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H

DB5EH,79H,71H

LEDSHOWENDP;显示子程结束

DELAYPROC;延时子程

PUSHAX

PUSHCX

PUSHF

MOVAL,0AH

DELAY1:

MOVCX,06FFFH

DELAY2:

NOP

LOOPDELAY2

DECAL

JNZDELAY1

POPF

POPCX

POPAX

RET

DELAYENDP;延时子程结束

 

GAMEOVER:

NOP

DATA1DB22H;第一个数据(作为被乘数)

DATA2DB33H;第二个数据(作为乘数)

TDATA1DB2DUP(00);存放DATA1的ASCII码,方便调用

TDATA2DB2DUP(00);存放DATA2的ASCII码,方便调用

RESULTDB4DUP(00)

CODEENDS

ENDSTART

;执行结果:

(按显示顺序)2233726

 

心得体会:

通过本次的上机实验,让我初步认识了实验台,了解其基本的操作和上面元器件的使用和连接方法。

熟悉了INTEL88实验软件LCA88ET的基本操作,熟悉了程序的编写,编译和调试等功能,学会了实验机/仿真机的基本设置方法。

通过实验中的编程,让我进一步加深了对微机编程的认识,加深了BCD码和ASCII码的理解,学会了数码管显示子程序和延时子程序的编写。

以前只是在书本上学习堆栈、循环、调用子程序等,学习过程中有些还是不明白,通过本次实验加深了理解。

实验中也遇到了一些问题,如数码管显示不正确,仿真机和实验机不能连接正常,通过自己仔细查找原因和向同学请教,都一一解决,锻炼了我独立思考,主动解决问题的能力。

 

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1