微机原理及应用实验报告Word文件下载.docx

上传人:b****7 文档编号:22490641 上传时间:2023-02-04 格式:DOCX 页数:26 大小:1.52MB
下载 相关 举报
微机原理及应用实验报告Word文件下载.docx_第1页
第1页 / 共26页
微机原理及应用实验报告Word文件下载.docx_第2页
第2页 / 共26页
微机原理及应用实验报告Word文件下载.docx_第3页
第3页 / 共26页
微机原理及应用实验报告Word文件下载.docx_第4页
第4页 / 共26页
微机原理及应用实验报告Word文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

微机原理及应用实验报告Word文件下载.docx

《微机原理及应用实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

微机原理及应用实验报告Word文件下载.docx

A100;

给各内存单元赋值

Movdi,0300

Movdx,0a

Movcx,5

1oop1:

mov[di],dx

Incdi

Incdx

1ooploop1

程序清单如下:

寻址方式和AX的内容

MOVBX,0300立即寻址

MOVSI,0002立即寻址

MOVAX,BX寄存器寻址AX:

0300

MOVAX,0304H立即寻址AX:

0304

MOVAX,[0304H]存储器直接寻址AX:

ds:

0304内存单元的内容0EH

MOVAX,[BX]寄存器间接寻址AX:

0300内存单元的内容0AH

MOVAX,0001[BX]基址相对寻址AX:

0301内存单元的内容0BH

MOVAX,[BX][SI]基址变址寻址AX:

0302内存单元的内容0CH

MOVAX,0001[BX][SI]基址变址寻址AX:

0303内存单元的内容0DH

●实验内容4

设AX=0002H,编写程序将AX的内容乘10,要求用移位的方法完成。

写出实现上实验报告要求:

1.述功能的程序段;

2.单步执行程序,记录每条指令的机器码及相关寄存器的内容

注意:

左移指令用SHL,而不能使用SAL

A100

Movax,2机器码:

b80200ax:

0002dx:

0000cl:

00

Movdx,0机器码:

ba0000ax:

Shlax,1机器码:

d1e0ax:

0004dx:

Movdx,ax机器码:

01d0ax:

0004cl:

00

Movcl,2机器码:

b102ax:

02

Shlax,cl机器码:

d3e0ax:

0010dx:

02

Addax,dx机器码:

01d0ax:

0014dx:

Int20机器码:

cd20ax:

实验二简单程序的编写及汇编连接

1.熟练掌握编写汇编语言源程序的基本方法和基本框架。

2.学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。

3.掌握程序中数据的产生与数输出的方法。

4.熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。

1.实验前准备

1分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。

2写出算法或画出流程图。

3写出源程序。

4对程序中的结果进行分析,并准备好上机调试的过程。

3.汇编过程中出现问题,可用DEBUG进行调试。

1.实验内容1

①编辑源程序(参考程序见下),建立.ASM文件;

②用MASM程序汇编,生成.OBJ文件;

查看.LST文件的内容

③用LINK程序链接,生成.EXE文件;

4使用DEBUG命令将.EXE文件调进内存,执行后查看程序运行结果;

⑤使用DEBUG命令,检查各段在内存当中分配情况。

参考程序:

;

exercize21

datasegment

org0200h

bufferdw0,1,-5,10,256,-128,-100,45,6,3,

dw-15,-67,39,4,20,-1668,-32766,32765,-525,

dw300

countequ($-buffer)/2

maxdw?

dataends

stacksegmentstack'

stack'

db100dup('

s'

stackends

codesegmentpara'

code'

assumecs:

code,ds:

data,ss:

stack

staprocfar

pushds

xorax,ax

pushax

movax,data

movds,ax

leasi,buffer

movcx,count

deccx

movax,[si]

chkmax:

addsi,2

cmp[si],ax

jlenext

next:

loopchkmax

movmax,ax

ret

staendp

codeends

endsta

1.把待汇编的程序放在存放汇编、链接程序的文件夹里打开汇编程序输入待汇编的程序名字,以默认配置生成obj文件,再打开链接程序输入待链接的程序名字以默认配置生成exe文件

2.执行前后buff数据数据块不变max执行前数据为0000H执行后为7ffdH

3.顺利

实验2:

display“0~9”100times

stacsegmentstack'

stacends

codsegmentpara'

cod,ss:

stac

movcx,100

movbl,0

goon:

pushcx

movah,2

movdl,0dh

int21h

Movah,2

Movdl,0ah

Int21h

moval,bl

incal

daa

andal,0fh

movbl,al

oral,30h

movdl,al

movdx,5

l1:

movcx,0ffffh

again:

loopagain

decdx

jnzl1

popcx

loopgoon

ret

codends

作业:

编程并且在计算机上调试。

①用汇编语言编写一个加法程序:

1234+5678

请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加的结果显示输出。

②假设有一组数据:

5,-4,0,3,100,-51,……,请编一程序,判断每个数是否大于0,等于0,还是小于0,并输出判断结果。

即:

1当x>

y=0当x=0

-1当x<

①sstacksegment

dw32dup(?

sstackends

datasegment

data1db‘1234'

data2db‘5678’

data3db4dup(?

dataends

codesegment

assumecs:

code,ss:

sstack,ds:

data

sta:

pushds

xorax,ax

pushax

movax,data

movds,ax

leasi,data1

leadi,data2

leabx,data3

moval,[si+3]

movah,[di+3]

andal,0fh

andah,0fh

addal,ah

oral,30h

mov[bx+3],al

moval,[si+2]

movah,[di+2]

adcal,ah

mov[bx+2],al

moval,[si+1]

movah,[di+1]

mov[bx+1],al

moval,[si]

movah,[di]

mov[bx],al

movcx,4

movah,2h

a1:

movdl,[bx]

incbx

loopa1

codeends

endsta

②sstacksegmentstack'

buffdb12,-23,5,-4,0,3,100,-51,3,-45,9,2

countequ$-buff

assumess:

data,cs:

code

startprogfar

xorax,ax

leabx,buff

leasi,count

movcx,[si]

loop1:

moval,[bx]

cmpal,0

jzaa1

andal,80h

jzaa2

movah,2

movdl,2dh

aa:

looploop1

jmpov

aa1:

movah,2

movdl,30h

int21h

jmpaa

aa2:

movdl,31h

ov:

ret

startendp

endstart

实验三8254定时/计数器应用实验

1、掌握8254的工作方式及应用编程;

2、掌握8254典型应用电路的接法。

二、实验设备

PC机一台,TD-PIE实验装置一套,示波器一台。

1、计数应用实验。

编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。

2、定时应用实验。

编写程序,应用8254的定时功能,产生一个1ms的方波。

1、计数应用实验

编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符‘M’。

实验步骤:

(1)实验接线如图4-2所示;

(2)编写实验程序,经编译、链接无误后装入系统;

(3)运行程序,按动KK1+产生单次脉冲,观察实验现象;

(4)改变计数值,验证8254的计数功能。

图4.28254计数应用实验接线图

实验程序清单:

A8254EQU06C0H;

8254计数器0的端口地址

B8254EQU06C2H;

8254计数器1的端口地址

C8254EQU06C4H;

8254计数器2的端口地址

CON8254EQU06C6H;

8254控制字寄存器的端口地址

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

SSTACK

START:

PUSHDS

MOVAX,0000H

MOVDS,AX

Leaax,irq7

movsi,3ch

mov[si],ax

movax,segirq7

mov[si+2],ax

CLI

POPDS

初始化主片8259,其端口地址为20H和21H

MOVAL,11H

OUT20H,AL;

ICW1

MOVAL,08H

OUT21H,AL;

ICW2

MOVAL,04H

ICW3

MOV21H,01H

OUT21H,AL;

ICW4

MOVAL,6FH;

OCW1

OUT21H,AL

初始化8254

MOVDX,CON8254

MOVAL,________;

计数器0,方式0

OUTDX,AL

MOVDX,A8254

给计数器0送初值

STI

AA1:

JMPAA1

中断服务程序

IRQ7:

MOVAX,014DH

INT10H;

显示字符M

MOVAX,0120H

INT10H

MOVAL,_______

OUT_______,AL;

中断结束命令

IRET

CODEENDS

ENDSEGMENT

2、定时应用实验

编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0输出波形为1ms方波。

(1)接线图如图4-3所示;

(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;

(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。

图4.38254定时应用实验接线图

实验程序清单

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

ASSUMECS:

CODE

START:

MOVDX,CON8254

MOVAL,________;

8254控制字,计数器0,方式3

OUTDX,AL

MOVDX,A8254

MOVAL,________

ENDSTART

六、思考题

1、在将计数初值赋给8254后,马上就可以启动并进行定时或计数吗?

2、若CLK0输入1.925MHz的时钟,能否在OUT0实现输出30ms的定时脉冲?

实验四8255并行接口实验

1、学习并掌握8255的工作方式及其应用;

2、掌握8255典型应用电路的接法。

PC机一台,TD-PITE实验装置一套。

1、基本输入输出实验。

本实验系统中,8255的端口地址分别为0640H,0642H,0644H以及0646H。

编写程序,使8255的A口为输入,接拨动开关,B口为输出,接发光二极管;

要求只要开关拨动,发光二极管的显示就发生相应改变。

2、流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

四、实验原理

图5.18255内部结构及外部引脚图

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A,B,C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0——基本输入/输出方式、方式1——选通输入/输出方式、方式2——双向选通工作方式。

8255的内部结构及引脚如图5-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图5-2所示。

五、实验步骤

1、基本输入输出实验

本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。

用一组开关信号接入端口A,端口B输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入输出功能。

具体实验步骤如下述:

图5.28255控制字格式

(1)实验接线图如图5-3所示,按图连接实验线路图;

(2)编写实验程序,经编译、连接无误后装入系统;

图5-38255基本输入输出实验接线图

(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

DW32DUP(?

SSTACKENDS

ASSUMECS:

MOVDX,0646H

MOVAL,__________;

8255的工作方式控制字

MOVDX,0640H

INAL,DX

CALLDELAY

MOVDX,0642H

JMPAA1

延时子程序

DELAY:

PUSHCX

MOVCX,0F00H

AA2:

PUSHAX

POPAX

LOOPAA2

POPCX

RET

ENDSTART

2、流水灯显示实验

使8255的A口和B口均为输出,数据灯D7DO由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验接线图如图5-5所示。

实验步骤如下所述:

(1)按图5-5连接实验线路图;

(2)编写实验程序,经编译、链接无误后装入系统;

(3)运行程序,观察LED灯的显示,验证程序功能;

图5-58255流水灯实验接线图

(4)自己改变流水灯的方式,编写程序。

Start:

movdx.0646h

Moval,80h

Outdx,al

Movbx,0180h

Aa1:

movdx,0640h

Moval,bl

Calldelay

Movdx,0642h

Moval,bh

Rorbl,1

Rol,bh,1

Jmpaa1

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

当前位置:首页 > 自然科学 > 数学

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

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