实验一数码转换编程及程序调试.docx

上传人:b****6 文档编号:8538228 上传时间:2023-01-31 格式:DOCX 页数:17 大小:18.68KB
下载 相关 举报
实验一数码转换编程及程序调试.docx_第1页
第1页 / 共17页
实验一数码转换编程及程序调试.docx_第2页
第2页 / 共17页
实验一数码转换编程及程序调试.docx_第3页
第3页 / 共17页
实验一数码转换编程及程序调试.docx_第4页
第4页 / 共17页
实验一数码转换编程及程序调试.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验一数码转换编程及程序调试.docx

《实验一数码转换编程及程序调试.docx》由会员分享,可在线阅读,更多相关《实验一数码转换编程及程序调试.docx(17页珍藏版)》请在冰豆网上搜索。

实验一数码转换编程及程序调试.docx

实验一数码转换编程及程序调试

个人采集整理资料,仅供沟通学习,勿作商业用途

 

实验一数码变换编程及程序调试

 

一、实验目的

 

掌握不一样进制数及编码互相变换的程序设计方法,加深对数码变换

 

的理解。

 

熟习程序调试的方法。

 

二、实验设施

 

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

 

三、实验内容及步骤

 

计算机输入设施输入的信息一般是由ASSII码或BCD码表示的

 

数据或字符,CPU一般均用二进制数进行计算或其余信息办理,处

 

理结果的输出又一定依据外设的要求变成ASCII码、BCD码或七段

 

显示码等。

所以,在应用软件中,各种数制的变换是必不行少的。

 

b5E2RGbCAP

 

计算机与外设间的数制变换关系如下图2-1所示,数制对应关

 

系如表2-1所示。

 

键盘

ASCII码

ASCII码

CRT显示

ASCII码

光电机

ASCII码

打印机

 

拨码开关BCD码BCD码多段显示

 

数据开关

二进制

二进制

位显示

 

1/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

图2-1数制变换关系

 

表1数制对应关系表

十六进BCD码二进制ASCII码七段码

制数

机器码

0

0000

0000

30H

40H

3FH

1

0001

0001

31H

79H

06H

2

0010

0010

32H

24H

5BH

3

0011

0011

33H

30H

4FH

4

0100

0100

34H

19H

66H

5

0101

0101

35H

12H

6DH

6

0110

0110

36H

02H

7DH

7

0111

0111

37H

78H

07H

8

1000

1000

38H

00H

7FH

9

1001

1001

39H

18H

67H

A

1010

41H

08H

77H

B

1010

42H

03H

7CH

C

1011

43H

46H

39H

D

1100

44H

21H

5EH

E

1110

45H

06H

79H

F

1111

46H

0EH

71H

1.将ASCII码表示的十进制数变换为二进制数十进制表示为:

 

Di代表十进制数0,1,2,,9;

 

上式变换为:

 

2/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

由此可概括十进制数变换为二进制数的方法:

从十进制数的最高位

 

Dn开始作乘10加次位的操作,挨次类推,则可求出二进制数的结

 

果。

p1EanqFDPw

 

参照流程:

 

实验程序:

 

PUBLICSADD

 

SSTACKSEGMENTSTACK

 

DW64DUP(?

>

 

SSTACKENDS

 

DATASEGMENT

 

SADDDB30H,30H,32H,35H,36H。

十进制数:

00256

 

DATAENDS

 

CODESEGMENT

 

ASSUMECS:

CODE,DS:

DATA

 

3/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

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)绘制程序流程图,编写实验程序,经编译、链接无误后装入系

 

统;

 

4/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

<2)待变换数据寄存于数据段,依据自己要求输入,默以为30H,

 

30H,32H,35H,36H;

 

<3)运转程序,而后停止程序;

 

<4)查察AX寄存器,即为变换结果,应为:

0100;

 

<5)频频试几组数据,考证程序的正确性。

 

2.将十进制数的ASCII码变换为BCD码

 

从键盘输入五位十进制数的ASCII码,寄存于3500H开端的内存单元中,将其变换为BCD码后,再按位分别存入350AH开端的内存单元内。

若输入的不是十进制的ASCII码,则对应寄存结果的单元内容为“FF”。

由表1可知,一字节ASCII码取其低四位即变成BCD

 

码。

DXDiTa9E3d

 

实验程序:

 

STACKEGMENTSTACK

 

DW64DUP(?

>

 

STACKENDS

 

CODESEGMENT

 

ASSUMECS:

CODE

 

START:

MOVCX,0005H

变换位数

MOVDI,3500H

ASCII码首地点

A1:

MOVBL,0FFH

将错误标记存入BL

MOVAL,[DI]

CMPAL,3AH

 

5/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

JNBA2。

不低于3AH则转

 

A2

 

SUBAL,30H

 

JBA2。

低于30H则转A2

 

MOVBL,AL

 

A2:

MOVAL,BL。

结果或错误标记送入AL

 

MOV[DI+0AH],AL。

结果存入目标地点

 

INCDI

 

LOOPA1

 

A3:

JMPA3

 

CODEENDS

 

ENDSTART

 

实验步骤:

 

<1)自己绘制程序流程图,而后编写程序,编译、链接无误后装入

 

系统;

 

<2)在3500H~3504H单元中寄存五位十进制数的ASCII码,即:

 

入E3500后,输入31,32,33,34,35;RTCrpUDGiT<3)运转程序,而后停止程序运转;

 

<4)键入D350A,显示运行结果,应为:

 

0000:

350A0102030405CC5PCzVD7HxA

 

<5)频频测试几组数据,考证程序功能。

 

3.将十六位二进制数变换为ASCII码表示的十进制数

 

6/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

十六位二进制数的值域为0~65535,最大可变换为五位十进制数。

 

五位十进制数可表示为:

 

Di:

表示十进制数0~9

 

将十六位二进制数变换为五位ASCII码表示的十进制数,就是求

 

D1~D4,并将它们变换为ASCII码。

自行绘制程序流程图,编写程

 

序可参照例程。

例程中源数寄存于3500H、3501H中,变换结果寄存

 

于3510H~3514H单元中。

jLBHrnAILg

 

实验程序:

 

STACKEGMENTSTACK

 

DW64DUP(?

>

 

STACKENDS

 

CODESEGMENT

 

ASSUMECS:

CODE

 

START:

MOVSI,3500H。

源数据地点

 

MOVDX,[SI]

 

MOVSI,3515H。

目标数据地点

 

A1:

DECSI

 

MOVAX,DX

 

MOVDX,0000H

 

MOVCX,000AH。

除数10

 

DIVCX。

得商送AX,得余数送DX

 

7/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

XCHGAX,DX

ADDAL,30H

得Di得ASCII码

MOV[SI],AL

存入目标地点

CMPDX,0000H

JNEA1

判断变换结束否,未结束则转A1

A2:

CMPSI,3510H

与目标地点得首地点比较

JZA3

等于首地点则转A3,不然将节余地点

DECSI

中填30H

MOVAL,30H

MOV[SI],AL

JMPA2

A3:

JMPA3

CODEENDS

ENDSTART

 

实验步骤

 

<1)编写程序,经编译、链接无误后,装入系统;

 

<2)在3500H、3501H中存入0C00;

 

<3)运转程序,而后停止运转;

 

<4)检查运转结果,键入D3510,结果应为:

3030303132;

 

<5)可频频测试几组数据,考证程序的正确性。

 

4.十六进制数变换为ASCII码

 

8/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

由表1中十六进制数与ASCII码的对应关系可知:

将十六进制数

 

0H~09H加上30H后获得相应的ASCII码,AH~FH加上37H可获得

 

相应的ASCII码。

将四位十六进制数寄存于开端地点为

3500H的内

 

存单元中,把它们变换为ASCII码后存入开端地点为350AH的内存

 

单元中。

自行绘制流程图。

xHAQX74J0X

 

实验程序

 

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

 

9/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

PUSHCX

 

MOVCL,04H

 

SHRDX,CL。

将十六进制数右移4位

 

POPCX

 

LOOPA1

 

A3:

JMPA3

 

CODEENDS

 

ENDSTART

 

实验步骤

 

<1)编写程序,经编译、链接无误后装入系统;

 

<2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,

 

而后输入3B20;

 

<3)先运转程序,而后再停止运转;

 

<4)键入D350A,显示结果为:

0000:

350A32303342CC;

 

<5)频频输入几组数据,考证程序功能。

 

5.BCD码变换为二进制数

 

将四个二位十进制数的BCD码寄存于3500H开端的内存单元中,将

 

变换的二进制数存入3510H开端的内存单元中,自行绘制流程图并

 

编写程序。

LDAYtRyKfE

 

SSTACKSEGMENTSTACK

 

DW64DUP(?

>

 

SSTACKENDS

 

10/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

CODESEGMENT

 

ASSUMECS:

CODE

 

START:

XORAX,AX

 

MOVCX,0004H

 

MOVSI,3500H

 

MOVDI,3510H

 

A1:

MOVAL,[SI]

 

ADDAL,AL

 

MOVBL,AL

 

ADDAL,AL

 

ADDAL,AL

 

ADDAL,BL

 

INCSI

 

ADDAL,[SI]

 

MOV[DI],AL

 

INCSI

 

INCDI

 

LOOPA1

 

A2:

JMPA2

 

CODEENDS

 

ENDSTART

 

实验步骤

 

11/12

个人采集整理资料,仅供沟通学习,勿作商业用途

 

<1)编写程序,经编译、链接无误后装入系统;

 

<2)将四个二位十进制数的BCD码存入3500H~3507H中,即:

先键

 

入E3500,而后输入0102030405060708;Zzz6ZB2Ltk

 

<3)先运转程序,而后停止运转;

 

<4)键入D3510显示变换结果,应为:

0C22384E;

 

<5)频频输入几组数据,考证程序功能。

 

声明:

 

全部资料为自己采集整理,仅限个人学习使用,勿做商业用

 

途。

 

12/12

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

当前位置:首页 > 表格模板 > 合同协议

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

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