汇编程序计算机组成原理实验及答案.docx
- 文档编号:6197724
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:34
- 大小:26.54KB
汇编程序计算机组成原理实验及答案.docx
《汇编程序计算机组成原理实验及答案.docx》由会员分享,可在线阅读,更多相关《汇编程序计算机组成原理实验及答案.docx(34页珍藏版)》请在冰豆网上搜索。
汇编程序计算机组成原理实验及答案
实验一I/O地址译码
一、实验目的
掌握I/O地址译码电路的工作原理。
二、实验原理和内容
实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:
280H~287H,Y1:
288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:
执行下面两条指令
MOVDX,2A0H
OUTDX,AL(或INAL,DX)
Y4输出一个负脉冲,执行下面两条指令
MOVDX,2A8H
OUTDX,AL(或INAL,DX)
Y5输出一个负脉冲。
图1-1
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
三、编程提示
1、实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。
;*******************************;
;*I/O地址译码*;
;*******************************;
outport1equ2a0h
outport2equ2a8h
codesegment
assumecs:
code
start:
movdx,outport1
outdx,al
calldelay;调延时子程序
movdx,outport2
outdx,al
calldelay;调延时子程序
movah,1
int16h
jestart
movah,4ch
int21h
delayprocnear;延时子程序
movbx,200
lll:
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
codesegment
assumecs:
code
start:
movdx,ls244;从2A0输入一数据
inal,dx
movdl,al;将所读数据保存在DL中
movah,02
int21h
movdl,0dh;显示回车符
int21h
movdl,0ah;显示换行符
int21h
movah,06;是否有键按下
movdl,0ffh
int21h
jnzexit
jestart;若无,则转start
exit:
movah,4ch;返回
int21h
codeends
endstart
实验二简单并行接口
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验内容
1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
三、编程提示
1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:
MOVAL,数据
MOVDX,2A8H
OUTDX,AL
通过上述并行接口输入数据需要2条指令:
MOVDX,2ADH
INAL,DX
;****************************;
;*简单的并行输出实验*;
;****************************;
ls273equ2a8h
codesegment
assumecs:
code
start:
movah,2;回车符
movdl,0dh
int21h
movah,1;等待键盘输入
int21h
cmpal,27;判断是否为ESC键
jeexit;若是则退出
movdx,ls273;若不是,从2A8H输出其ASCII码
outdx,al
jmpstart;转start
exit:
movah,4ch;返回
int21h
codeends
endstart
实验三可编程定时器/计数器(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
codesegment
assumecs:
code
start:
moval,14h;设置8253通道0为工作方式2,二进制计数
movdx,io8253a
outdx,al
movdx,io8253b;送计数初值为0FH
moval,0fh
outdx,al
lll:
inal,dx;读计数初值
calldisp;调显示子程序
pushdx
movah,06h
movdl,0ffh
int21h
popdx
jzlll
movah,4ch;退出
int21h
dispprocnear;显示子程序
pushdx
andal,0fh;首先取低四位
movdl,al
cmpdl,9;判断是否<=9
jlenum;若是则为'0'-'9',ASCII码加30H
adddl,7;否则为'A'-'F',ASCII码加37H
num:
adddl,30h
movah,02h;显示
int21h
movdl,0dh;加回车符
int21h
movdl,0ah;加换行符
int21h
popdx
ret;子程序返回
dispendp
codeends
endstart
实验三可编程定时器/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
1、按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
三、编程提示
1、8253控制寄存器地址283H
计数器0地址280H
计数器1地址281H
CLK0连接时钟1MHZ
;*******************
;*8253分频*
;*******************
io8253aequ280h
io8253bequ281h
io8253cequ283h
codesegment
assumecs:
code
start:
movdx,io8253c;向8253写控制字
moval,36h;使0通道为工作方式3
outdx,al
movax,1000;写入循环计数初值1000
movdx,io8253a
outdx,al;先写入低字节
moval,ah
outdx,al;后写入高字节
movdx,io8253c
moval,76h;设8253通道1工作方式2
outdx,al
movax,1000;写入循环计数初值1000
movdx,io8253b
outdx,al;先写低字节
moval,ah
outdx,al;后写高字节
movah,4ch;程序退出
int21h
codeends
endstart
实验三可编程定时器/计数器(8253)
一、实验目的
掌握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,'counter0:
','$'
mesg2db13,10,'counter1:
','$'
mesg3db13,10,'continue?
(y/n)','$'
mesg4db13,10,13,10,'ThankYou!
',13,10,'$'
errormdb13,10,'InputError!
','$'
counter0dw0
counter1dw0
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar
start:
movdx,segdata
movds,dx
movdx,offsetmesg0
movah,09h
int21h
do:
subbx,bx
subax,ax
movcounter0,0
movcounter1,0;init
l1:
movdx,offsetmesg1
movah,09h
int21h
rd1:
;readcounter0
movah,01;readachar
int21h
cmpal,13;ifenter
jefdone1
jmptdone1
fdone1:
jmpdone1
tdone1:
cmpal,10
jefdone1
cmpal,'0';ifinput<0orinput>9error
jberror
cmpal,'9'
jaerror
pushax
movax,10
mulcounter0
movcounter0,ax;counter0=counter0*10
popax
subbx,bx
movbl,al
subbl,30h
addcounter0,bx;counter0=counter0+input
jmprd1
error:
movdx,offseterrorm
movah,09h
int21h
movdl,7
movah,2
int21h
jmpdone3
tr:
;forjmpdo
movdl,al
movah,02h
int21h
movdl,10
int21h
movdl,13
int21h
jmpdo
l2:
movdx,offsetmesg2
movah,09h
int21h
rd2:
;readcounter1
movah,01
int21h
cmpal,13;ifenter
jefdone2
cmpal,10
jefdone2
jmptdone2
fdone2:
jmpdone2
tdone2:
cmpal,10
jefdone2
cmpal,'0'
jberror
cmpal,'9'
jaerror
pushax
movax,10
mulcounter1
movcounter1,ax;counter1=counter1*10
popax
subbx,bx
movbl,al
subbl,30h;bh=0
addcounter1,bx;counter1=counter1+input
jmprd2
done1:
jmpl2
done2:
jmpout8253;afterentertwocounters
;set8253anddoit
done3:
movdx,offsetmesg3
movah,09h
int21h
l3:
movah,07h
int21h
cmpal,'Y'
jetr
cmpal,'y'
jetr
cmpal,'N'
jequit
cmpal,'n'
jequit
movdl,7
movah,02h
int21h
jmpl3
out8253:
;workcode
moval,00110110b
movdx,283h
outdx,al
movax,counter0
movdx,280h
outdx,al
moval,ah
outdx,al
moval,01110100b
movdx,283h
outdx,al
movax,counter1
movdx,281h
outdx,al
moval,ah
outdx,al
movcx,2801
delay:
loopdelay
jmpdone3
quit:
;returntoDOS
movdx,offsetmesg4
movah,9
int21h
movax,4c00h
int21h
mainendp
codeends
endstart
实验四可编程并行接口
(一)(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
codesegment
assumecs:
code
start:
movdx,io8255b;设8255为C口输入,A口输出
moval,8bh
outdx,al
inout:
movdx,io8255c;从C口输入一数据
inal,dx
movdx,io8255a;从A口输出刚才自C口
outdx,al;所输入的数据
movdl,0ffh;判断是否有按键
movah,06h
int21h
jzinout;若无,则继续自C口输入,A口输出
movah,4ch;否则返回
int21h
codeends
endstart
实验四可编程并行接口
(二)(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
A口的地址288H
C口的地址28AH
datasegment
chipdb13,10
db13,10
db'Programtotestthechipof74LS138',13,10
db13,10
db13,10
db'+------------------------------+',13,10
db'|Y0Y1Y2Y3Y4Y5Y6Y7|',13,10
db'||',13,10
db'|74LS138|',13,10
db'||',13,10
db'|ABCG1G2A+G2B|',13,10
db'+------------------------------+',13,10,'$'
messdb'Afteryouhaveready,Pleasepressanykey!
','$'
mes2db'TestAgain?
(Y/N)','$'
InAdb0
OutCdb0
clldb'','$'
dataends
;********************************************
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
again:
callcls
callInputB
;OutputCTRLcode(write)to28Bh
movdx,28bh
moval,10001011b
outdx,al
;OutputInto288h
movdx,288h
moval,InA
outdx,al
callOutputC
jmp1:
movah,2
movdh,15
movdl,20
int10h
movah,09
leadx,mes2
int21h
movah,1
int21h
cmpal,'y'
jeagain
cmpal,'n'
jeexit
movah,2
movdh,15
movdl,0
int10h
leadx,cll
movah,9
int21h
jmpjmp1
exit:
movah,4ch
int21h
;********************************************
InputBprocnear
movah,2
movbh,0
movdx,0
int10h
movah,09
leadx,chip
int21h
movah,2
movbh,0
movdh,15
movdl,10
int10h
movah,09h
leadx,mess
int21h
movah,0ch
moval,08h
int21h
wait1:
movah,0Bh
int21h
cmpal,0
jnewait1
movah,2
movbh,0
movdh,15
movdl,10
int10h
leadx,cll
movah,9
int21h
movdh,12
movdl,18
jmp3:
pushdx
movah,2
movbh,0
int10h
jmp4:
movah,7
int21h
cmpal,'1'
jnejmp2
movah,2
xchgal,dl
int21h
movcl,1
movbl,InA
salbl,cl
addbl,1
movInA,bl
jmpjmp5
jmp2:
cmpal,'0'
jnejmp4
movah,2
xchgal,dl
int21h
movcl,1
movbl,InA
salbl,cl
movInA,bl
jmp5:
popdx
adddl,5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 计算机 组成 原理 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)