云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 微机原理软件实验指导书

微机原理软件实验指导书

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 11:05:06

0000:350A 01 02 03 04 05 CC? (5) 反复试几组数,考查程序的正确性。

地址(H) 助记符 注释

2000 MOV CX,0005;循环计数器赋初值 2003 MOV DI,3500;ASCII码首址 2006 MOV BL,FF; 错误标志送BL 2008 MOV AL,[DI];送ASCII码至AL 200A CMP AL,3A; 比较AL与3AH

200C JNB 2014; 不低于3A则转2014

200E SUB AL,30; 低于3A则取ASCII码的低四位 2010 JB 2014; 低于30则转2014

2012 MOV BL,AL; 否则AL内容送BL,取代FF 2014 MOV AL,BL; 结果或错误标志送AL 2016 MOV [DI+0A],AL 2019 INC DI 201A LOOP 2006 201C INT 3

图1-2

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

1)程序及其流程

十六位二进制数的值域为0——65535,最大可转换为五位十进制数。 算法:五位十进制数可表示为:

ND?D??????D??????D??????D?????D?

Di:表示十进制数0——9。

因此,将十六位二进制数转换为五位ASCII码表示表示的十进制数,就是求D1——D4,并将它化为ASCII码。程序流程图如图1-3所示,设源数据存于3500——3501H单元中,结果数存于3510——3514H单元中。

2)实验步骤

(1) 输入程序并检查无误。

(2) 在3500——3501H单元中存放0C00,运行程序并检查结果,应看到3510——3514H单元中

的数依次为3030303132。

(3) 反复试几组数,并运行程序、观察结果。

5

地址(H) 助记符 注释

2000 MOV DX,[3500];取二进制数

2004 MOV SI,3515; 目标首址在3510 2007 DEC SI 2008 MOV AX,DX 200A MOV DX,0000 200D MOV CX,000A

2010 DIV CX; ; 除10 2012 XCHG AX,DX 2014 ADD AL,30 2016 MOV [SI],AL 2018 CMP DX,0000 201B JNE 2007

201D CMP SI,3510 ; 填余下高位为0 2021 JZ 202A; 2023 DEC SI 2024 MOV AL,30 2026 MOV [SI],AL 2028 JMP 201D 202A INT 3

图1-3

4、 十六进制数转换为ASCII码

1) 程序及其流程

经过CPU处理后的十六进制数存放在起始地址为3500H的内存单元中,把它们转换成ASCII码之后,再分别存入起始地址为350AH的内存单元中。

从表2-1中可知,十六进制数加30H即可得到0H——9H的ASCII码,而要得到AH——FH的ASCII码,则需再加7H。程序流程图及参考程序如图1-4所示。

2)实验步骤 (1) 输入程序并检查无误。 (2) 在3500——3501H单元中存入四位十六进制数203B,即 E3500↙,并输入3B,20。 (3) G=2000↙,运行以上程序 (4) D350A↙,显示结果为:

0000:350A 42 33 30 32 CC? 输入数据与结果ASCII码对应顺序相反。 (5) 反复试几组数。考查程序的正确性。

6

地址(H) 助记符 注释 2000 MOV CX,0004 2003 MOV DI,3500 2006 MOV DX,[DI] 2008 MOV AX,DX

200A AND AX,000F ;取低四位值

200D CMP AL,0A; ; 判是否“0”-“9” 200F JB 2013 ; 是“0”-“9”转2013 2011 ADD AL,07; 是“A”-“F”,加7 2013 ADD AL,30; 转换为ASCII码 2015 MOV [DI+0A],AL 2018 INC DI

2019 PUSH CX ;保护循环计数器内容 201A MOV CL,04; 移位次数送CL 201C SHR DX,CL 201E POP CX 201F LOOP 2008 2021 INT 3

4 BCD码转换为二进制数

1) 程序及其流程

设四个二位十进制数的BCD码存放在起始地址为3500H,的单元中,转换出的二进制数码存入起始地址为3510H的内存单元中,程序流程图及参考程序如图1-5所示。

地址(H) 助记符 注释 2000 MOV CX,0004 2003 MOV DI,3500 2006 MOV AL,[DI]

2008 ADD AL,AL ;乘2 200A MOV BL,AL

200C ADD AL,AL ;乘2 200E ADD AL,AL ;乘2 2010 ADD AL,BL ;乘10 2012 INC DI 2013 MOV AH,00

2015 ADD AL,[DI]; BCD码十位与个位加

2017 MOV [DI+0F],AX;存结果 7

图1-4

1-5

图201A INC DI 201B LOOP 2006 201D INT 3

2)实验步骤

(1) 输入程序并检查无误。

(2) 在3500——3507单元中存入四个十进制数(12,34,56,78)的BCD码,即E3500↙ 输

入01,02,03,04,05,06,07,08。

(3) G=2000↙,运行以上程序。

(4) D3510↙,显示结果为3510 0C 00 22 00 38 00 4E 00 (5) 反复试几组数,考查程序的正确性。

四、思考题

1、 图1-1程序,将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,

最大又可为多少?为什么?

2、 将一个十六位二进制数转换为ASCII码十进制数时,如何确定D1的值?

3、 在十六进制数转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?

4、 自编ASCII码→十六进制、十进制小数→二进制、二进制→BCD码的程序,并调试运行。

8

搜索更多关于: 微机原理软件实验指导书 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

0000:350A 01 02 03 04 05 CC? (5) 反复试几组数,考查程序的正确性。 地址(H) 助记符 注释 2000 MOV CX,0005;循环计数器赋初值 2003 MOV DI,3500;ASCII码首址 2006 MOV BL,FF; 错误标志送BL 2008 MOV AL,[DI];送ASCII码至AL 200A CMP AL,3A; 比较AL与3AH 200C JNB 2014; 不低于3A则转2014 200E SUB AL,30; 低于3A则取ASCII码的低四位 2010 JB 2014; 低于30则转2014

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com