内蒙古工业大学微机原理实验指导答案doc.docx

上传人:b****8 文档编号:12401025 上传时间:2023-06-05 格式:DOCX 页数:28 大小:324.67KB
下载 相关 举报
内蒙古工业大学微机原理实验指导答案doc.docx_第1页
第1页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第2页
第2页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第3页
第3页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第4页
第4页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第5页
第5页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第6页
第6页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第7页
第7页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第8页
第8页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第9页
第9页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第10页
第10页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第11页
第11页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第12页
第12页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第13页
第13页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第14页
第14页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第15页
第15页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第16页
第16页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第17页
第17页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第18页
第18页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第19页
第19页 / 共28页
内蒙古工业大学微机原理实验指导答案doc.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

内蒙古工业大学微机原理实验指导答案doc.docx

《内蒙古工业大学微机原理实验指导答案doc.docx》由会员分享,可在线阅读,更多相关《内蒙古工业大学微机原理实验指导答案doc.docx(28页珍藏版)》请在冰点文库上搜索。

内蒙古工业大学微机原理实验指导答案doc.docx

内蒙古工业大学微机原理实验指导答案doc

被嗅材尊机原理与旅用实验指导布实验

程禹够告

沽说:

信息工程修陇班披,

电877-7班g生名:

Eg

样号,2011202030

实验一编辑、汇编、

连接、调试程序的使用

程序设计A

设计要求

(1)将FFFFH送到AX,SI,DI,BP,DS,ES寄存器

(2)编程(利用DEBUG调试程序,每执行一次T命令后,记录相关寄存器

内容,并判断是否正确。

)程序如下:

CODESEGMENT

ASSUMECS:

CODE

STARTPROCFAR

STTPUSHDS

SUBAX,AX

PUSHAX

MOVAX,0FFFFH

MOVSI,AX

MOVDI,AX

MOVBP,AX

MOVDS,AX

MOVES,AX

RET

STARTENDP

CODEENDS

ENDSTT

B、设计要求

⑴将1,2,3,4,5分别送到数据段偏移地址为1000H,1001H,1002H,1003H,

1004H,单元中。

⑵编程

DATASEGMENT

ORG1000H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE

STARTPROCFAR

STTPUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAL,1

MOVDS:

[1000H],AL

MOVAL,2

MOVDS:

[1001H],AL

MOVAL,3

MOVDS:

[1002H],AL

MOVAL,4

MOVDS:

[1003H],AL

MOVAL,5

MOVDS:

[1004H],AL

RET

STARTENDP

CODEENDS

ENDSTT

实验二、加法程序设计

设计内容A、设计要求

(1)在数据段偏移地址1000H处开始,连续存放有3字节的数据(高位对应高地址,低位对应低地址),1003H处开始连续存放有两字节的数据(高对高,低

对低),求这两数据之和,并将结果放在流量数据之后。

(eg:

123456H+789AH=12

ACFOH)

(2)编程

DATASEGMENT

ORG1000H

H1DB56HJ34H,12H,9AH,78H

H2DB3DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STTPUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATAMOV

DS,AX

MOVSIJOOOH

MOVDI,1003H

MOVBX,1005H

MOVCX,2

CLC

LP:

MOVAL,[SI]

MOVDL,[DI[

ADCAL,DL

MOV[BX],AL

INCSI

INCDI

INCBX

LOOPLP

MOVAL,[SI]

ADCAL,00

MOV[BX],AL

RET

CODEENDP

STARTENDS

ENDSTT

C、设计要求

(1)用串传送指令把A程序的数据块偏移地址1000H开始的区域传递到同一数据段的偏移地址为1003H开始的区域。

用DEBUG查看运行结果。

(2)编程

DATASEGMENTORG

1000H

H1DB56H,34H,12H,9AH,78H

ORG1003H

H2DB56H,34H,12HJ9AH,78H,0F0H,0ACHJ12H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STTPUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AXMOV

ES,AX

LP:

MOVSIJOOOHMOV

DIJ003H

MOVSBMOV

CX,8

INCSI

INCDI

LOOPLP

RET

STARTENDP

CODEENDS

ENDSTT

实验三、查表程序设计

A、设计要求

(1)在数据段偏移地址1000H处,存放0—9的平方值,任给一个自然数M在1010H单元中(0WMW9),查表求出M的平方值,并将结果放入1011单元中。

(2)编程

DATASEGMENT

ORG1000H

TABDB00,01,04,09,16,25,36,49,64,81

ORG1010HMDB4,?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STT:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS3AX

MOVBX,OFFSETTAB

MOVAL,M

XLAT

MOVDS:

[1011H],AL

RET

STARTENDP

CODEENDS

ENDSTT

B、设计要求

(1)编程实现:

将BCD数00H-99H顺序存放到当前数据1000H开始的内存单元中,用DEBUG查看运行结果。

(2)编程

DATASEGMENT

ORG1000H

HDB100DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STT:

PUSHDSSUB

AX5AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVSI,1000H

MOVAL,0

MOVCX,100

LP:

MOV[SI],AL

ADDAL,1

DAA

INCSI

LOOPLP

RET

STARTENDP

CODEENDS

ENDSTART

实验四、码制的变换程序设计

B、设计要求

(1)把BX中的“1”的个数放到AL中,“0”的个数放到AH中,并在屏幕上分别显示0和1的个数

(2)编程

DATASEGMENT

ORG1000H

HDB000FH

ORG1010H

WDB100DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STT:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

CALLZ1

CALLZ2

CALLZ3

CALLZ4

RET

STARTENDP

Z1PROCNEAR

MOVBX,DS:

[1000H]

MOVCX,16

MOVAX,0

CLC

KK:

RCRBX,1

JCAA

ADDAH,1

JMPBB

AA:

ADDAL,1BB:

LOOP

KK

MOVDS:

[1010H],AH

MOVDS:

[1020H],AL

RET

Z1ENDP

Z2PROCNEAR

PUSHAX

PUSHBX

MOVAX,DS:

[1010H]

MOVAH,0

MOVBX,000AH

DIVBL

ADDAH,30H

ADDAL,30H

MOVDS:

[1041H],AH

MOVDS:

[1040H],AL

POPBX

POPAX

RET

Z2ENDP

Z3PROCNEAR

PUSHAX

PUSHBX

MOVAX,DS:

[1020H]

MOVAH,0

MOVBX,000AH

DIVBL

ADDAH,30H

ADDALs30H

MOVDS:

[1044H],AH

MOVDS:

[1043H],AL

POPBX

POPAX

RET

Z3ENDP

Z4PROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHSI

MOVCX,6

MOVSI,1040H

LP:

MOVDL,[SI]

MOVAH,2

INT21H

INCSI

LOOPLP

POPSI

POPDX

POPCX

POPAX

RET

Z4ENDP

CODEENDS

ENDSTT

实验五、求最大值的程序设计

A、设计要求

(1)从首地址为BUF开始存放的10个字节无符号数,从这些数中找出最大值,

存入MAX中。

(2)编程

DATASEGMENT

ORG1000H

BUFDB01H302H303H,04H305H306H,07H308H309H,0AH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STT:

PUSHDSSUB

AX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVSIJOOOH

MOVCX,9

MOVAL,[SI]

INCSI

MOVAL,0

LP:

CLC

CMPAL,[SI]

JNCAA

MOVAL,[SI]

AAJNCSI

LOOPLP

MOVDS:

[2000H],AL

RET

STARTENDP

CODEENDS

ENDST1

实验六、软件综合设计

一、实验目的:

1.熟悉并且掌握汇编语言的基本指令及编程方法。

2.掌握用汇编语言编写程序的思路和设计方法。

3.熟练掌握DEBUG调试程序的方法。

二、实验内容:

1.设计课题:

模拟温度测量软件设计

2设计要求:

(1)将首地址为1000H开始存放的10个单字节数据,进行数字滤波。

实现方法是:

找出其中最大值(设子程序名为:

ZMAX)和最小值(设子程序名为:

ZMIN)并从中10个数中去掉最大值和最小值,将剩余的的8个数取平均值后,存放在1010H单元中。

(设子程序名为:

Z1)

(2)将存放在1010H单元中的十六进制数的整数部分转换成非压缩的

BCD码,存放在1020H开始的存储单元中(低位在前,高位在后)。

(设子程序名为:

Z2)

(3)将存放在1020H开始的非压缩BCD码转换成ASCII码。

存放在

1030H开始的存储单元中。

(低位在前,高位在后)(设子程序名为:

Z3)

(4)将存放在1030H开始的ASCII码送CRT显示(高位在前,低位在后)。

(设子程序名为:

Z4)

3、程序结构及编程

DATASEGMENT

ORG1000H

LDB9AH,66H,2EH51AH,5DH,3CH,36H,88H552H,22H

ORG1010H

AVERDB?

ORG1020H

XDB3DUP(?

ORG1030H

YDB3DUP(?

ORG1050H

HDB4DUP(?

ORG1060H

H1DB100DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCFAR

STT:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

CALLZMAX

CALLZMIN

CALLZ1

CALLZ2

CALLZ3

CALLZ4

RET

STARTENDP

ZMAXPROCNEAR

PUSHAX

PUSHCX

PUSHSI

MOVSI,1000H

MOVCX,0009H

MOVALJSI]LP1:

CLC

CMPALJSI]

JNCAA

MOVALJSI]

AA:

INCSI

LOOPLP1

MOVDS:

[1050H],AL

POPSI

POPCX

POPAX

RET

ZMAXENDP

ZMINPROCNEAR

PUSHAX

PUSHCX

PUSHSI

MOVSI,1000H

MOVCX,0009H

MOVAL,[SI]

LP2:

GLC

CMPAL,[SI]

JCBB

MOVAL,[SI]

BB:

INCSI

LOOPLP2

MOVDS:

[1052H],AL

POPSI

POPCX

POPAX

RET

ZMINENDP

Z1PROCNEAR

PUSHAX

PUSHCX

PUSHSIMOVSIJOOOHMOVCX,000AHMOVAX,0000HEE:

ADDAL,[SI]

ADGAH30

INCSI

LOOPEE

SUBAX,DS:

[1050H]

SUBAX,DS:

[1052H]

MOVBL,0008H

DIVBL

MOVDS:

[1010H],AL

POPSI

POPCX

POPAX

RET

Z1ENDP

Z2PROCNEAR

PUSHAX

PUSHBX

MOVAX,DS:

[1010H]

MOVAH,0

MOVBX,000AH

DIVBL;

MOVDS:

[1020H],AH

MOVDS:

[1021H],AL

POPBX

POPAX

RET

Z2ENDP

Z3PROCNEAR

PUSHAX

PUSHBX

MOVAX,DS:

[1020H]

ADDAH,30H

ADDAL.30H

MOVDS:

[1030H],AX

POPBX

POPAX

RET

Z3ENDP

Z4PROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHSI

MOVCX,3MOVSIJ032H

LP3:

MOVDL,[SI]MOVAH,2INT21HDECSILOOPLP3

POPSIPOPDXPOPCXPOPAX

RET

Z4ENDP

CODEENDS

ENDSTT

实验七、并行接口芯片的使用

(1)编程要求将开关kO——k7作为输入开关量从8255c口输入,发光二极管

10——17作

为输出开关量从A口输出。

当某个开关闭合式时,对应发光二极管亮。

当按下

(2)编程提示

CODESEGMENT

ASSUMECS:

CODE

STARTPROCFAR

ST1:

PUSHDS

SUBAX,AX

PUSHAX

MOVDS,AX

MOVDX,28BH

MOVAL,89H

OUTDX,AL

LL:

MOVDX,28AH

INAL,DX

MOVDX,288H

OUTDX,AL

MOVAH,0BH

INT21H

CMPAL,OFFH

JNZLL

MOVAH,4CH

INT21H

CODEENDS

ENDST1

实验八、定时/技术器芯片的使用

1、实验内容一

(1)将计数器0设置为方式0,计数初值为N(NW0FH),用手动逐个输入单

脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUTO电平变化。

(2)编程

CODESEGMENT

ASSUMECS:

CODE

STARTPROCFAR

ST1PUSHDS

SUBAX,AX

MOVDX,283H

MOVAL,36H

OUTDX,AL

MOVAL,3EH

MOVDX,280H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVAL,08H

OUTDX,AL

AA:

MOVAL,280H

INAL,DX

ADDAL,30H

MOVDL,AL

MOVAH,2

INT21H

MOVAH,OBH

INT21H

CMPAL,OFFH

JCAA

RET

STARTENDP

CODEENDS

ENDST1

2、实验内容二

(1)将计数器0、计数器1分别设置方式为3,计数初值设为1000,用逻辑笔观察OUT1电平变化。

(2)编程

CODESEGMENT

ASSUMECS:

CODE

STARTPROCFAR

ST1PUSHDS

SUBAX,AX

MOVDX,283H

MOVAL,36H

OUTDX,AL

MOVAL,OE8H

MOVDX,280H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVDX,283H

MOVAL,76H

OUTDX,AL

MOVAL,OE8H

MOVDX,281H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVAX,4CH

INT21H

STARTENDP

CODEENDSEND

ST1

实验~一、D/A转换接口

实验内容

1、实验电路原理如图,将DAC0832片选端接地址290HoDACO832米用单缓冲方式,具有单极性输入端

2、编程验证DAC0832能够将数字量转换为与之成正比的模拟量填入下表。

3、编程产生以下波形(从Ub输出,用示波器观察波形)

(1)锯齿波参考流程图与编程(图11-2)

*5

 

四、参考流程图:

图27

程序如下:

CODESEGMENT

ASSUMECS:

CODE

DAPORTEQD298H

ORG1000H

START:

MOVAL,OFFH

DACON1:

MOVDX,DAPORT

OUTDX,AL

MOVCX,400H

DACONR:

LOOPDACON2

NOTAL

JMPDACON1

CODEENDS

ENDSTART

(A)锯齿波

实验十二、A/D转换接口

1、通过实验台左下角屯位器RW1输出0—5V直流电压送入ADC0809通道0,ADC0809的IN0口地址为298H,IN1口地址为299H。

2、编程验证ADC0809能够将模拟量转换为与之成正比的数字量。

3、通过实验台左下角电位器RW1输出0〜5V直流电压送入ADC0809通道0(IN0),编程采集IN0输入的电压,在屏幕上显示出转换后的16进制数据。

ref(+)VCC

6ND

1NM2

JWV

R6

10k

R710k

10

28

27

>CLOCK

IN-2

IN-1

I"26

INI♦空

IN-0

~|ihRUl19k

12346678

22222222

76643210DDDDDDDD

ADD・C

ADD-B

ADD-A

EOC

ALESTftRT

ENABLE

210

AAa

•EOC

7

74LSG2

U9ADC0809

 

 

 

图29模数转换电路

 

、参考流程图(见图30、31)

COD

读入转换后数据

所该数据吼给BL

从BL中取出数朔和0FH相"

调显示r程序虽示其高“

调显示*程序显示其低叫位

(A)'程序

COD

商AL赋给DlT]

DL加7

DL大于9吗?

DUJI130H|

星示ASC玛为DL的字符

 

 

编程如下:

codesegmentassume

cs:

code

start:

movdx,298h;启动A/D转换

器outdx,almovcx.Offh;

延时

delay:

loopdelay

inal,dx;从A/D转换器输入数据

movbl,al;将AL保存到BL

movcl,4shral,cl;将AL右移四

calldisp;调显示了程序显示其高四位

moval,blandal,Ofh

calldisp;调显示子程序显示其低四位movah,02mov

dl,20h;加空格符

int21hmovdl,20hint21hpushdx

movah,06h;判断是否有键按下

movdl,Offhint21hpopdxjestart;若没有转STARTmovah,4ch;退出int21h

dispprocnear;显示子程序mov

;比较DL是否>9

;若不大于则为。

・9,加30h为其ASCII码

;否则为A・F,再加7ddd:

;显示movah,02int

dispendpcodeends

dl,al

cmpdl,9

jleddd

adddl,7

adddl,30h21hretendstart

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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