实验1(显示程序实验).doc

上传人:wj 文档编号:4875756 上传时间:2023-05-07 格式:DOC 页数:3 大小:38KB
下载 相关 举报
实验1(显示程序实验).doc_第1页
第1页 / 共3页
实验1(显示程序实验).doc_第2页
第2页 / 共3页
实验1(显示程序实验).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验1(显示程序实验).doc

《实验1(显示程序实验).doc》由会员分享,可在线阅读,更多相关《实验1(显示程序实验).doc(3页珍藏版)》请在冰点文库上搜索。

实验1(显示程序实验).doc

实验1:

显示程序实验

一、实验目的

1、掌握在PC机上以16进制数据形式显示数据的方法。

2、掌握部分DOS功能调用的使用方法。

3、熟悉TDDEBUG集成软件的使用。

二、实验原理分析

一般来说,从键盘上输入的数都是以ASCII码的形式存放在内存中。

另外,数据区中以字符形式定义的数(用单引号括起来的数),在内存中也是以其对应的ASCII码存放的。

1、数据显示

输入到内存的数据或字符是以ASCII码形式保存,若再显示在屏幕上,则还原成源数据或字符。

例如:

数字“7”,存放在内存中是“37H”(即:

7的16进制ASCII码),直接显示在屏幕上时也是数字“7”(一般通过DOS功能调用)。

数字型数据“0~9”转换成ASCII码后,对应的16进制值分别为“30H~39H”。

字符型数据“A~Z”转换成ASCII码后,对应的16进制值分别为“41H~5AH”;字符型数据“a~z”转换成ASCII码后,对应的16进制值分别为“61H~7AH”。

从转换后的16进制ASCII码值来分析,16进制值的“0~9”可以视为对应的ASCII码值“30H~39H”减去30H后得到;16进制值的“A~F”可以视为对应的ASCII码值“41H~46H”37H(减去30H、再减去7H)后得到。

即:

0H=30H﹣30HAH=41H﹣37H

1H=31H﹣30HBH=42H﹣37H

2H=32H﹣30HCH=43H﹣37H

DH=44H﹣37H

EH=45H﹣37H

FH=46H﹣37H

8H=38H﹣30H

9H=39H﹣30H

换句话说:

如果内存中存放的是任一ASCII码值,则显示在屏幕后就是其对应的字符值。

2、关于DOS功能调用

微机系统中的系统软件为用户提供了多种功能调用服务,即用户在进行汇编程序设计时,无需再对这些功能进行汇编编程设计,而直接在自己的用户程序中来调用这些功能程序。

一般有二种功能调用,

(1)DOS功能调用,也称高级调用;

(2)BIOS功能调用,也称低级调用。

用户程序在调用这些功能服务程序时,使用软中断指令:

“INTn”。

所有DOS系统功能调用使用软中断指令“INT21H”来实现,即:

MOVAH[];[]为功能号

INT21H

(1)键盘输入

从键盘上输入的所有内容都作为ASCII字符对待(控制键除外)。

①进行单字符输入时,使用1、7和8功能号。

其中7、8号无回显功能;1号有回显功能(即键盘输入的内容同时也显示在屏幕上)。

MOVAH,1

INT21H

②进行字符串输入时,使用0AH功能号。

MOVAH,0A

INT21H

(2)显示器输出

要将一个字符串送到显示器显示,可调用DOS功能的2、6、9号功能实现。

其中,功能2、6用于显示单个字符,功能9显示一个字符串。

例如:

MOVDL,<要显示的字符>;要显示的字符必须放在DL中

MOVAH,2;功能号送AH

INT21;执行系统功能调用

(3)返回到DOS

程序执行完后将控制权交给DOS系统,称为返回DOS。

使用如下程序段:

MOVAH,4CH;功能号送AH

INT21H;返回DOS

三、实验内容说明

一般来说,很多程序需要显示运行状态和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求编写程序,其功能是将指定数据区的数据以十六进制形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。

实验中的数据主要是指字符型的数据(如“A、B、…Z”或“a、b、…z”)和数值型的数据(如“0、1、…9”)等。

这些数据可以通过键盘输入,也可以在数据区中定义,但在内存中均以对应的ASCII码存放,送到屏幕显示后就还原为原数据字符。

例如:

“7”存入内存后为“37H”,送屏幕显示时还原为“7”;

“A”存入内存后为“41H”,送屏幕显示时还原为“A”;

“ab…”存入内存后为“61H、62H…”,送屏幕显示时还原为“ab…”。

1、实验分析提示:

本实验要求数据存入内存后在送屏幕显示时,显示其对应的16进制的ASCII码值。

即,数据“7”存入内存后,送屏幕显示时应显示“37”;

数据“A”存入内存后,送屏幕显示时应显示“41”;

数据“ab…”存入内存后,送屏幕显示时应显示“6162…”。

数据写入内存后,其ASCII码值为8位二进制值(也可以2位16进制值表示),可以分为高4位和低4位二个部分。

通过编写程序,如果能实现在屏幕上先显示数据的ASCII码高4位的16进制值,再显示数据的ASCII码低4位的16进制值,就能达到实验的目的。

如:

“7”,对应二进制ASCII码值为01100111B,高4位为0110,低4位为0111。

(或“7”,对应16进制ASCII码值为37H,高4位为3,低4位为7)。

任何一个数据的ASCII码高4位(或低4位)的16进制值范围为“0~F”,

显示“0~9”值时,在内存中存放“30H~39H”的ASCII码值。

显示“A、B、C、D、E、F”等值时,在内存中存放“41H、42H、43H、44H、45H、46H”的ASCII码值。

2、程序编写提示:

任何数据写入内存后,先分别取其对应的ASCII高4位和低4位的16进制值

(1)若所取的值在0~9的范围时,将该值加上30H。

即:

取值“0”,对应0H+30H=30H;

取值“1”,对应1H+30H=31H;

取值“9”,对应9H+30H=39H;

再存入内存中,然后送屏幕显示。

(2)若所取的值在A~F的范围时,将该值先加7D,再加30H。

即:

取值“A”,对应(10+7)D=17D=11H,11H+30H=41H;

取值“B”,对应(11+7)D=18D=12H,12H+30H=42H;

取值“F”,对应(15+7)D=22D=16H,16H+30H=46H;

再存入内存中,然后送屏幕显示。

3、实验参考流程图

见实验指导书P35页图3-1-1,显示程序实验流程图。

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2