试验数制转换试验.docx
- 文档编号:8515957
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:156.67KB
试验数制转换试验.docx
《试验数制转换试验.docx》由会员分享,可在线阅读,更多相关《试验数制转换试验.docx(12页珍藏版)》请在冰豆网上搜索。
试验数制转换试验
实验一、数制转换实验
1.1.1实验目的
1.掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;
2.熟悉程序调试的方法。
1.1.2实验设备
PC机一台,TD-PITC实验装置一套。
1.1.3实验内容及步骤
计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。
因此,在应用软件中,各类数制的转换是必不可少的。
计算机与外设间的数制转换关系如图1-2-1所示,数制对应关系如表1-2-1所示
图1-1数制转换关系
表1-2数制对应关系表
1.2将ASCII码表示的十进制数转换为二进制数
1.2.1实验原理
十进制表示为:
Di代表十进制数0,1,2,…,9;
上式转换为:
(2)由式
(2)可归纳十进制数转换为二进制数的方法:
从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。
程序流程图如图1-2-2所示。
实验参考程序如下。
图1-2转换程序流程图
1.2.2实验程序清单(例程文件名:
A2-1.ASM)
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
DATASEGMENT
SADDDB30H,30H,32H,35H,36H;十进制数:
00256
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,OFFSETSADD
MOVSI,AX
MOVBX,000AH
MOVCX,0004H
MOVAH,00H
MOVAL,[SI]
SUBAL,30H
A1:
IMULBX
MOVDX,[SI+01]
ANDDX,00FFH
ADCAX,DX
SUBAL,30H
INCSI
LOOPA1
A2:
JMPA2
CODEENDS
ENDSTART
1.2.3实验步骤
(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;
(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H;
(3)运行程序,然后停止程序;
(4)查看AX寄存器,即为转换结果,应为:
0100;
(5)反复试几组数据,验证程序的正确性。
1.3.十六进制数转换为ASCII码
1.3.1实验原理
由表1-2-1中十六进制数与ASCII码的对应关系可知:
将十六进制数0H~09H加上30H后得到相应的ASCII码,AH~FH加上37H可得到相应的ASCII码。
将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。
自行绘制流程图。
1.3.2实验程序清单
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVCX,0004H
MOVDI,3500H;十六进制数源地址
MOVDX,[DI]
A1:
MOVAX,DX
ANDAX,000FH;取低4位
CMPAL,0AH
JBA2;小于0AH则转A2
ADDAL,07H;在A~FH之间,需多加上7H
A2:
ADDAL,30H;转换为相应ASCII码
MOV[DI+0DH],AL;结果存入目标地址
DECDI
PUSHCX
MOVCL,04H
SHRDX,CL;将十六进制数右移4位
POPCX
LOOPA1
A3:
JMPA3
CODEENDS
ENDSTART
1.3.3实验步骤
(1)编写程序,经编译、链接无误后装入系统;
(2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B20;
(3)先运行程序,然后再停止运行;
(4)键入D350A,显示结果为:
0000:
350A32303342CC…;
(5)反复输入几组数据,验证程序功能。
实验二循环程序设计实验
2.1.1实验目的
1.加深对循环结构的理解;
2.掌握循环结构程序设计的方法以及调试方法。
2.1.2实验设备
PC机一台,TD-PITC实验装置一套。
2.1.3实验内容及步骤
2.2求某数据区内负数的个数
2.2.1实验原理
设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。
为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。
实验程序流程图如图1-5-2所示。
图2-1程序流程图
2.2.2实验程序清单
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDI,3000H;数据区首地址
MOVCL,[DI];取数据个数
XORCH,CH
MOVBL,CH
INCDI;指向第一个数据
A1:
MOVAL,[DI]
TESTAL,80H;检查数据首位是否为1
JEA2
INCBL;负数个数加1
A2:
INCDI
LOOPA1
MOV[DI],BL;保存结果
A3:
JMPA3
CODEENDS
ENDSTART
2.2.3实验步骤
(1)按实验流程编写实验程序;
(2)编译、链接无误后装入系统;
(3)键入E3000,输入数据如下:
3000=06(数据个数)
3001=12
3002=88
3003=82
3004=90
3005=22
3006=33
(4)先运行程序,然后停止程序运行;
(5)查看3007内存单元或寄存器BL中的内容,结果应为03;
(6)可以进行反复测试来验证程序的正确性。
2.3学生成绩名次表
2.3.1实验原理
将分数在1~100之间的30个成绩存入首地址为3000H的单元中,3000H+I表示学号为I的学生成绩。
编写程序,将排出的名次表放在3100H开始的数据区,3100H+I中存放的为学号为I的学生名次。
2.3.2实验程序清单
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAX,0000H
MOVDS,AX
MOVES,AX
MOVSI,3000H;存放学生成绩
MOVCX,001EH;共30个成绩
MOVDI,3100H;名次表首地址
A1:
CALLBRANCH;调用子程序
MOVAL,1EH
SUBAL,CL
INCAL
MOVBX,DX
MOV[BX+DI],AL
LOOPA1
A4:
JMPA4
;===扫描成绩表,得到最高成绩者的学号===
BRANCH:
PUSHCX
MOVCX,001EH
MOVAL,00H
MOVBX,3000H
MOVSI,BX
A2:
CMPAL,[SI]
JAEA3
MOVAL,[SI]
MOVDX,SI
SUBDX,BX
A3:
INCSI
LOOPA2
ADDBX,DX
MOVAL,00H
MOV[BX],AL
POPCX
RET
CODEENDS
ENDSTART
2.3.3实验步骤
(1)绘制流程图,并编写实验程序;
(2)编译、链接无误后装入系统;
(3)将30个成绩存入首地址为3000H的内存单元中;
(4)调试并运行程序;
(5)检查3100H起始的内存单元中的名次表是否正确。
实验三、8255并行接口实验--流水灯显示实验
3.1实验目的
1.学习并掌握8255的工作方式及其应用;
2.掌握8255典型应用电路的接法。
3.2实验设备
PC机一台,TD-PITC实验装置一套。
3.3实验内容
流水灯显示实验。
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
3.4实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2-6-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。
图3-18255内部结构及外部引脚图
3.5实验步骤
流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如图2-6-5所示。
实验步骤如下所述:
(1)按图2-6-5连接实验线路图;
(2)编写实验、框图、程序,经编译、链接无误后装入系统;
(3)运行程序,观察LED灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。
图3-38255流水灯实验接线图
8255在此系统中的端口地址为:
0640H、0642H、0644H、0646H
3.6实验程序清单
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,0646H
MOVAL,80H
OUTDX,AL
MOVBX,8001H
AA1:
MOVDX,0640H
MOVAL,BH
OUTDX,AL
RORBH,1
MOVDX,0642H
MOVAL,BL
OUTDX,AL
ROLBL,1
CALLDELAY
CALLDELAY
JMPAA1
DELAY:
PUSHCX
MOVCX,0F000H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
CODEENDS
ENDSTART
3.7思考题
1、改变流水灯的方式,例如:
左右移动等。
2、端口地址为:
0640H、0642H、0644H、0646H,为何都为偶地址?
3、8255的两个控制字共用一个端口地址,如何区别?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试验 数制 转换