汇编程序计算机组成原理实验及答案Word文档下载推荐.docx

上传人:b****6 文档编号:21052982 上传时间:2023-01-27 格式:DOCX 页数:29 大小:24KB
下载 相关 举报
汇编程序计算机组成原理实验及答案Word文档下载推荐.docx_第1页
第1页 / 共29页
汇编程序计算机组成原理实验及答案Word文档下载推荐.docx_第2页
第2页 / 共29页
汇编程序计算机组成原理实验及答案Word文档下载推荐.docx_第3页
第3页 / 共29页
汇编程序计算机组成原理实验及答案Word文档下载推荐.docx_第4页
第4页 / 共29页
汇编程序计算机组成原理实验及答案Word文档下载推荐.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

汇编程序计算机组成原理实验及答案Word文档下载推荐.docx

《汇编程序计算机组成原理实验及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《汇编程序计算机组成原理实验及答案Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。

汇编程序计算机组成原理实验及答案Word文档下载推荐.docx

movcx,0

ll:

loopll

decbx

jnelll

ret

delayendp

codeends

endstart

实验二简单并行接口

掌握简单并行接口的工作原理及使用方法。

二、实验内容

1、按下面图2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

2、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

三、编程提示

1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:

MOVAL,数据

MOVDX,2A8H

OUTDX,AL

通过上述并行接口输入数据需要2条指令:

MOVDX,2ADH

INAL,DX

********************************;

*简单并行输入实验*;

ls244equ2a0h

movdx,ls244;

从2A0输入一数据

inal,dx

movdl,al;

将所读数据保存在DL中

movah,02

movdl,0dh;

显示回车符

movdl,0ah;

显示换行符

movah,06;

是否有键按下

movdl,0ffh

jnzexit

jestart;

若无,则转start

exit:

movah,4ch;

返回

1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

****************************;

*简单的并行输出实验*;

ls273equ2a8h

movah,2;

回车符

movdl,0dh

movah,1;

等待键盘输入

cmpal,27;

判断是否为ESC键

jeexit;

若是则退出

movdx,ls273;

若不是,从2A8H输出其ASCII码

jmpstart;

转start

实验三可编程定时器/计数器(8253

掌握8253的基本工作原理和编程方法。

1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH,用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平。

1、8253控制寄存器地址283H

计数器0地址280H

计数器1地址281H

CLK0连接时钟1MHZ

*************************;

*8253方式0计数器实验*;

io8253aequ283h

io8253bequ280h

moval,14h;

设置8253通道0为工作方式2,二进制计数

movdx,io8253a

movdx,io8253b;

送计数初值为0FH

moval,0fh

inal,dx;

读计数初值

calldisp;

调显示子程序

pushdx

movah,06h

popdx

jzlll

movah,4ch;

退出

dispprocnear;

显示子程序

andal,0fh;

首先取低四位

movdl,al

cmpdl,9;

判断是否<

=9

jlenum;

若是则为'

0'

-'

9'

ASCII码加30H

adddl,7;

否则为'

A'

F'

ASCII码加37H

num:

adddl,30h

movah,02h;

显示

加回车符

加换行符

ret;

子程序返回

dispendp

1、按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ。

*******************

*8253分频*

io8253aequ280h

io8253bequ281h

io8253cequ283h

movdx,io8253c;

向8253写控制字

moval,36h;

使0通道为工作方式3

movax,1000;

写入循环计数初值1000

outdx,al;

先写入低字节

moval,ah

后写入高字节

movdx,io8253c

moval,76h;

设8253通道1工作方式2

movdx,io8253b

先写低字节

后写高字节

程序退出

掌握8253的基本工作原理和编程方法,用示波器观察不同方式下的波形。

1、按图3-3连接电路,将计数器0设置为方式3(方波,计数器设置为方式2(分频。

2、实现计数器0的输出为方波,计数器1的输出是计数器0输出的分频波形。

3、人机交互界面设计:

实现在显示屏幕上提示输入计数器0(方波的参数和计数器1(分频信号的参数。

如下所示:

counter0:

____

counter1:

continue?

(y/n____

4、实现用键盘直接输入修改程序中方波的参数和分频信号的参数,以改变方波的宽度,分频信号的周期和分频数,不需重新修改源代码。

5、用示波器观察计数器0和计数器1的输出波形及其关系,并在纸上画出CLK0、OUT0、OUT1的波形。

*8253program*;

datasegment

mesg0db13,10,'

*******************************8253progam

*******************************'

13,10,'

$'

mesg1db13,10,'

'

'

mesg2db13,10,'

mesg3db13,10,'

(y/n'

mesg4db13,10,13,10,'

ThankYou!

errormdb13,10,'

InputError!

counter0dw0

counter1dw0

dataends

code,ds:

data

mainprocfar

movdx,segdata

movds,dx

movdx,offsetmesg0

movah,09h

do:

subbx,bx

subax,ax

movcounter0,0

movcounter1,0;

init

l1:

movdx,offsetmesg1

rd1:

;

readcounter0

movah,01;

readachar

cmpal,13;

ifenter

jefdone1

jmptdone1

fdone1:

jmpdone1

tdone1:

cmpal,10

cmpal,'

ifinput<

0orinput>

9errorjberror

jaerror

pushax

movax,10

mulcounter0

movcounter0,ax;

counter0=counter0*10

popax

subbx,bx

movbl,al

subbl,30h

addcounter0,bx;

counter0=counter0+inputjmprd1

error:

movdx,offseterrorm

movdl,7

movah,2

jmpdone3

tr:

forjmpdo

movah,02h

movdl,10

movdl,13

jmpdo

l2:

movdx,offsetmesg2

rd2:

readcounter1movah,01

jefdone2

cmpal,10

jmptdone2

fdone2:

jmpdone2

tdone2:

jberror

mulcounter1

movcounter1,ax;

counter1=counter1*10

subbl,30h;

bh=0

addcounter1,bx;

counter1=counter1+inputjmprd2

done1:

jmpl2

done2:

jmpout8253;

afterentertwocounters;

set8253anddoitdone3:

movdx,offsetmesg3

l3:

movah,07h

Y'

jetr

y'

N'

jequit

n'

jmpl3

out8253:

workcode

moval,00110110b

movdx,283h

movax,counter0

movdx,280h

moval,01110100b

movax,counter1

movdx,281h

movcx,2801

delay:

loopdelay

quit:

returntoDOS

movdx,offsetmesg4

movah,9

movax,4c00h

mainendp

实验四可编程并行接口(一(8255方式0

掌握8255方式0的工作原理及使用方法。

1、实验电路如图4-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2、编程从8255C口输入数据,再从A口输出。

1、8255控制寄存器端口地址28BH

A口的地址288H

C口的地址28AH

*8255方式0的C口输入,A口输出*;

io8255aequ288h

io8255bequ28bh

io8255cequ28ah

movdx,io8255b;

设8255为C口输入,A口输出

moval,8bh

inout:

movdx,io8255c;

从C口输入一数据

movdx,io8255a;

从A口输出刚才自C口

所输入的数据

movdl,0ffh;

判断是否有按键

jzinout;

若无,则继续自C口输入,A口输出

否则返回

实验四可编程并行接口(二(8255方式0

1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。

2、掌握8255三个数据端口与被测IC芯片的硬件连接方法。

3、通过实验掌握用8255并行口模拟集成电路测试仪,对集成电路进行逻辑测试的方法。

1、按图4-2连接硬件电路,以测试3-8译码器74LS138为例。

2、人机交互界面设计:

按照集成电路74LS138芯片的引脚图显示在屏幕上,如下所示:

+------------------------------+

|Y0Y1Y2Y3Y4Y5Y6Y7|

||

|74LS138|

|ABCG1G2A+G2B|

TestAgain?

(Y/N

8255控制寄存器端口地址28BH

chipdb13,10

db13,10

db'

Programtotestthechipof74LS138'

13,10

+------------------------------+'

|Y0Y1Y2Y3Y4Y5Y6Y7|'

||'

|74LS138|'

13,10db'

|ABCG1G2A+G2B|'

messdb'

Afteryouhaveready,Pleasepressanykey!

mes2db'

(Y/N'

InAdb0

OutCdb0

clldb'

'

********************************************

movax,data

movds,ax

again:

callcls

callInputB

OutputCTRLcode(writeto28Bh

movdx,28bh

moval,10001011b

OutputInto288h

movdx,288h

moval,InA

callOutputC

jmp1:

movah,2

movdh,15

movdl,20

int10h

movah,09

leadx,mes2

jeagain

jeexit

movdl,0

leadx,cll

jmpjmp1

movah,4ch

********************************************InputBprocnear

movbh,0

movdx,0

leadx,chip

leadx,mess

movah,0ch

moval,08h

wait1:

movah,0Bh

cmpal,0

jnewait1

movdh,12

movdl,18

jmp3:

pushdx

jmp4:

movah,7

1'

jnejmp2

xchgal,dl

movcl,1

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

当前位置:首页 > 高等教育 > 管理学

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

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