教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

微机前四章答案(楼顺天版)(9)

来源:网络收集 时间:2026-07-18
导读: ADD DEC MOV MOV DEC INC SI,CX SI AL,[SI] [DI],AL SI DI L1: LOOP L1 LEA MOV MOV LEA MOV CMP JZ INC SI,STR1 (3) DX,[SI+6] CX,17 SI,STR1 (4) AL,20H [SI], AL L2 SI L1: LOOP L1 L2: 31. 设在数据段中定

ADD DEC MOV MOV DEC INC

SI,CX SI AL,[SI] [DI],AL SI DI

L1:

LOOP L1 LEA MOV MOV LEA MOV CMP JZ INC

SI,STR1

(3)

DX,[SI+6] CX,17

SI,STR1

(4)

AL,20H [SI], AL L2 SI

L1:

LOOP L1

L2:

31. 设在数据段中定义了:

STRING DB ‘Today is Sunday & July 16, 2000’

编写程序实现将STRING中的’&’用’/’代替。 解:STRING中保存了30个字符。

MOV LEA MOV CMP JNZ MOV INC

CX,30

SI,STRING

AL,’&’ [SI],AL L2

BYTE PTR [SI],’/’ SI

L1:

L2:

LOOP L1

- 40 -

32. 分析下列程序段完成的功能:

MOV CX,100 LEA SI,FIRST LEA DI,SECOND REP MOVSB

解:将缓冲区FIRST中100个字节传送到SECOND中。 33. 分析下列程序段:

LEA DI,STRING MOV CX,200 CLD

MOV AL,20H REPZ SCASB JNZ FOUND JMP NOT_FOUND

问:转移到FOUND的条件。

解:在缓冲区STRING中搜索非空格字符,如果有非空格则转到FOUND,如果200个单元中都是空格,则转到NOT_FOUND。

34. 设在数据段的变量OLDS和NEWS中保存有5个字节的字符串,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行程序。 解:设DS和ES均指向字符串OLDS和NEWS所在的段。

CLD MOV

35. 编程实现将STRING字符串中的小写字母变换成大写字母。 解:设STRING中的字符个数为N。

- 41 -

CX,5

SI,OLDS DI,NEWS

LEA LEA REPZ JNZ

CMPSB NEW_LESS

MOV LEA MOV AND INC

CX,N

SI,STRING

AL,5FH [SI],AL SI

L1:

LOOP L1

36. 设在数据段中定义了:

STUDENT_NAME DB 30 DUP(?) STUDENT_ADDR DB 9 DUP(?) STUDENT_PRINT DB 50 DUP(?) 编写程序实现:

用空格符清除缓冲区STUDENT_PRINT; 在STUDENT_ADDR中查找第一个’_’字符; 在STUDENT_ADDR中查找最后一个’_’字符;

如果STUDENT_NAME中全为空格符,则STUDENT_PRINT全存入’*’;

将STUDENT_NAME传送到STUDENT_PRINT的前30个字节中,将STUDENT_ADDR传送到STUDENT_PRINT的后9个字节中。

37. (上机题)编写程序实现,将缓冲区BUFFER中的100个字按递增排序,并按下列格式顺序显示:

数据1 <原序号> 数据2 <原序号> ??

38. (上机题)按同余法产生一组随机数N(1

Total <总人数> A: <人数1> B: <人数2> C: <人数3>

- 42 -

D: <人数4> E: <人数5> F: <人数6>

39.(上机题)编写程序实现下列5项功能,通过从键盘输入1~5进行菜单式选择:

(1)按数字键“1”,完成将字符串中的小写字母变换成大写字母。用户输入由英文大小写字母或数字0~9组成的字符串(以回车结束),变换后按下列格式在屏幕上显示:

<原字符串>例如:abcdgyt0092 <新字符串> ABCDGYT0092

按任一键重做;按Esc键返回主菜单。

(2)按数字键“2”,完成在字符串中找最大值。用户输入由英文大小写字母或数字

0~9组成的字符串(以回车结束),找出最大值后按下列格式在屏幕上显示:

<原字符串> The maximum is <最大值>.

按任一键重做;按Esc键返回主菜单。

(3)按数字键“3”,完成输入数据组的排序。用户输入一组十进制数值(小于255), 然后变换成十六进制数,并按递增方式进行排序,按下列格式在屏幕上显示:

<原数值串> <新数值串>

按任一键重做;按Esc键返回主菜单。

(4)按数字键“4”,完成时间的显示。首先提示用户对时,即改变系统的定时器 HH:MM:SS(以冒号间隔,回车结束),然后在屏幕的右上角实时显示出时 间:HH:MM:SS。

按任一键重新对时;按Esc键返回主菜单。

(5)按数字键“5”,结束程序的运行,返回操作系统。 解:

※主程序的编程思路:

此程序共5个功能,可采用跳转表法来实现多路分支结构程序设计。现将这5个程序段,各程序段的首地址分别标号为G1,G2,G3,G4,G5。将5个程序段的入口地址做成表TABLE放入数据段,程序根据给定的参数计算出欲转入的程序段的首地址在TABLE中的位置后,取出该地址,跳转至该程序段。

首先,通过调用子程序MENU,设置显示器,并输出提示文档。接着,读取‘1’-‘5’之间的ASCII表示数。然后,通过跳转表TABLE实现由输入参数转入相应的程序段。由于

- 43 -

表中按“字”存放数据,则每个数据的位移量是:0、2、4、6、8。对于输入参数N,计算位移量的公式是N=(N-1)*2。

当输入‘1’时,跳转到标号G1。调用子程序CHGLTR,完成将输入字符串中的小写字母变换成大写字母。用户按键,若为ESC,则转到主程序段首调用MENU,否则,转到标号G1;

当输入‘2’时,跳转到标号G2。调用子程序MAXLTR,完成在输入字符串中找最大值。用户按键,若为ESC,则转到主程序段首调用MENU,否则,转到标号G2;

当输入‘3’时,跳转到标号G3。调用子程序SORTNUM,完成输入数据组的排序。用户按键,若为ESC,则转到主程序段首调用MENU,否则,转到标号G3。

当输入‘4’时,跳转到标号G4。调用子程序TIMCHK,完成时间的显示。用户按键,若为ESC,则转到主程序段首调用MENU,否则,转到标号G4。

当输入‘5’时,跳转到标号G5。结束程序的运行,返回操作系统。 其流程框图见图3-1。

- 44 -

…… 此处隐藏:723字,全部文档内容请下载后查看。喜欢就下载吧 ……
微机前四章答案(楼顺天版)(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447842.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)