语言程序设计习题答案.docx

上传人:b****6 文档编号:12583782 上传时间:2023-06-06 格式:DOCX 页数:24 大小:20.22KB
下载 相关 举报
语言程序设计习题答案.docx_第1页
第1页 / 共24页
语言程序设计习题答案.docx_第2页
第2页 / 共24页
语言程序设计习题答案.docx_第3页
第3页 / 共24页
语言程序设计习题答案.docx_第4页
第4页 / 共24页
语言程序设计习题答案.docx_第5页
第5页 / 共24页
语言程序设计习题答案.docx_第6页
第6页 / 共24页
语言程序设计习题答案.docx_第7页
第7页 / 共24页
语言程序设计习题答案.docx_第8页
第8页 / 共24页
语言程序设计习题答案.docx_第9页
第9页 / 共24页
语言程序设计习题答案.docx_第10页
第10页 / 共24页
语言程序设计习题答案.docx_第11页
第11页 / 共24页
语言程序设计习题答案.docx_第12页
第12页 / 共24页
语言程序设计习题答案.docx_第13页
第13页 / 共24页
语言程序设计习题答案.docx_第14页
第14页 / 共24页
语言程序设计习题答案.docx_第15页
第15页 / 共24页
语言程序设计习题答案.docx_第16页
第16页 / 共24页
语言程序设计习题答案.docx_第17页
第17页 / 共24页
语言程序设计习题答案.docx_第18页
第18页 / 共24页
语言程序设计习题答案.docx_第19页
第19页 / 共24页
语言程序设计习题答案.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

语言程序设计习题答案.docx

《语言程序设计习题答案.docx》由会员分享,可在线阅读,更多相关《语言程序设计习题答案.docx(24页珍藏版)》请在冰点文库上搜索。

语言程序设计习题答案.docx

语言程序设计习题答案

4.1分析执行下列指令序列后的结果:

1),1234H

,00

【答】()=0034H

2),01010101B

,00011111B;(AL)=00010101B

,11000000B;(AL)=11010101B

,00001111B;(AL)=11011010B

AL

【答】()=00100101B

3),05H

,0A00H

,0H

,0

:

[]

本程序实现了什么功能?

【答】在以0A001H开始的15个单元中查找05H。

4)

B1

B2

本程序实现了什么功能?

【答】将B1中N个字节数据传送到B2开始的15个存储单元。

5),0H

05H

0A000H

0

:

本程序实现了什么功能?

【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环,控制数据05H的查找。

4.2阅读程序:

1).

,[0100H]

0080H

本程序实现了什么功能?

【答】将中起始地址为0100H的128个字节单元清零。

2).,08H

01H;(AL)=00010000H

BL,AL

02H

;(AL)=01000000H

;(AL)=01010000H

本程序实现了什么功能?

【答】将中的内容乘以10。

4.3试分析下列程序完成什么功能?

,3F08H

,0A2H

,4

,;()080H

,;()=20H

,;()=02H

,;()=82H

【答】将中的低4位数据8H分离出来,将中的低4位数据2H分离出来,合并为82H存放在。

4.4已知程序段如下:

,1234H

,4

,4

试问:

(1)每条指令执行后,寄存器的内容是什么?

(2)每条指令执行后,,及的值分别是什么?

(3)程序运行结束时,及寄存器的值为多少?

【答】,1234H;()=1234H,0

,4

,;()=2341H10

;()=2340H,10

,4;

;()=8000H010

4.5试分析下列程序段:

L2

L3

5

如果、的内容给定如下:

(1)14C6H80(程序转向L2)

(2)B568H54B7H(程序转向5)

问该程序在上述情况下执行后,程序转向何处?

【答】

(1)程序转向L2。

(2)程序转向5。

4.6以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?

19;2字节

210(?

),2;44字节

32(?

,10(?

));22字节

4‘';11字节

【答】该数据段共占79字节。

4.7下列语句在存储器中分别为变量分配多少字节空间?

并画出存储空间的分配图。

110,2;2字节

25(?

),0;12字节

3‘?

',‘$';13字节

4-1,1,0;2字节

1

2

3

4

10

?

H

2

?

O

?

W

?

?

A

01H

?

R

00H

?

E

00H

?

00H

?

Y

00H

?

O

00H

0

U

00H

0

00H

$

4.8编写一段程序,比较两个5字节的字符串和,若相同,在置0,否则置0。

【答】参考程序:

1,2,3,4,5

1,2,3,4,5

?

10

;串不相等转

AL,0

:

AL,0

:

AL

:

4.9编程求和1+A2+….+A100。

其中为字节变量。

【答】参考程序:

12,3,45,..

?

?

……….

0

0

;清

4

:

[];求和

:

;指向下一个数

;未加完,继续

;存和

4.10内存中以和开始的单元中分别存放着两个16位组合的十进制(码)数,低位在前。

编程序求这两个数的组合的十进制和,并存到以开始的单元。

【答】参考程序:

1325+9839=?

05H,02H,03H,01H;

09H,03H,08H,09H;

20(?

1100(‘’)

11

:

;初始化数据段

;初始化堆栈段

1

4;计算4次

1;取数据地址

2;取数据地址

;取结果地址

00H;将暂存标志的清0

1:

[];取第一个数

;将中的标志送标志寄存器

[];与第二个数带进位加

;十进制校正

;将标志寄存器内容送

30H;计算值拼成码

[],;存结果的码

;指向第一个数的下一位

;指向第二个数的下一位

;指向结果单元的下一位

1;未计算完,继续

01H;将最高位的进位标志送

30H;最高位的进位位拼成码

[],;存结果的最高位

02H;调用的02H功能显示

05H;显示数据的位数

2:

[];显示数据送

21H;显示

;显示数据所在存储单元加一

2;未显示完,继续

4;返回

21H

4.11试编程序,统计由40000H开始的16K个单元中所存放的字符“A“的个数,并将结果存放在中。

【答】参考程序

1''

$1

100(?

:

0

1

'A'

:

[]

:

4.12统计数据块中正数与负数的个数,并将正数与负数分别送到两个缓冲区。

【答】参考程序:

-13,5,62,0,20,10

8(?

);正数缓冲区

8(?

);负数缓冲区

0

0

8;数据个数送

:

←[]

80H

;为负数,转

;正数个数加一

;[]←,传正数

:

;负数个数加一

;送负数到缓冲区

:

4.13编写一个子程序将中的十六进制数,转换成码,存于开始的四个单元中。

提示:

1)、中的数从左到右,转换成码,用循环左移和指令,把提出的一个十六进制数置中;

2)、0~9的码:

30~39H,A~F的码:

41H~46H。

(先把每个数加30H,判断是否为数字0~9?

若是A~F,再加07H,得字母的码。

【答】参考程序:

4(?

:

73H;假设中存放73h

4

:

000

30H

'9'

:

07H

:

[]

4

4.14编写一个子程序将中的2进制数,转换成10进制码,存于开始的五个单元中。

【答】参考程序:

5555H;假设二进制数为5555H

4(?

100(?

:

,10000D

1000D

100D

10D

01D

04;返回

21H

;十进制转二进制,完成一位运算,十进制存于中,结果存于所指向的地址中

0

30H

[]

4.15编写一个子程序,对中的数据进行偶校验,并将经过校验的结果放回中。

【答】参考程序:

,1001110B

AL,AL

AL,0

:

AL,1

:

04

21H

4.16从2000H单元开始的区域,存放100个字节的字符串,其中有几个$符号(码为24),找出第一个$符号,送中,地址送。

【答】参考程序:

2000H

100

24H

[]

:

4.17用串操作指令实现:

先将100H个数从2170H单元处搬到1000H单元处,然后从中检索等于中字符的单元,并将此单元换成空格字符。

【答】参考程序:

24H

2170H

1000H

100H

:

1000H

100H

[],20H

0

4.18从60H个元素中寻找一个最大的值,并放到中,假设这60个元素放在1开始的单元中。

【答】参考程序:

10,1,2,3,4,5,6,7,8,9;

20(?

:

10

AL,0

1

:

[]

;大于等于转移

[]

:

4

21H

4.19排序程序设计:

把表中元素按值的大小升序排列。

要求显示排序前和排序后的数据。

【答】参考程序:

'8095554'

$

0,0,'!

$'

20(?

:

;初始化数据段

:

4

21H;返回

1;置外循环次数

1;设有交换标志

:

;

;无交换,已排好序,退出

0;无交换

1

内循环次数

0;指向表首

:

[];字符送

;指向下个字符

[];比较表中相邻字符

;小于

[];否则交换,大字符下

[1];小字符上浮

1;有交换1

:

;内循环结束1

;一次内循环完成,加一

;外循环次数减一

0

;外循环次数非零,继续

:

09H

21H;显示排好序的字符

4.20编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于缓冲区中。

加密表为:

输入数字:

0,1,2,3,4,5,6,7,8,9;密码数字:

7,5,9,1,3,6,8,0,2,4。

【答】参考程序:

7,5,9,1,3,6,8,0,2,4;密码表

10(?

),'$'存放转换数字的缓冲区

20(?

,0

1:

1;从键盘输入

21H

,0

30H

30H

[],

LOOP1

:

09H

21H

4

21H

4.21编程序从键盘接收一个4位16进制数,转换为10进制数后,送显示。

【答】算法:

先将输入的十六进制数保存到中,中的数范围在+3276732768之间,先检查中的符号位,以决定输出“+”还是“-”;若是负数,应先求补,得到原码后即可与正数作统一处理。

转换方法为将被转换的二进制数先除;以10000,商即为万位数,再将余数除以1000,商为千位数,依此类推,求出百、十位数,剩的为个位数。

最后,将各个数加上30H,即成为对应字符。

6(?

),'$'

20(?

:

4;输入4次

;转换4次

0;用保存输入数

1:

1;从键盘输入

21H

;通过子程序转换

;组合成十六进制数

BL,AL

1;循环输入四个数

'+'

0

L4;不是负数,转移

'-'

L4:

10000

30H;将万位转换为数字(商应在内,但因为商不大于9,所以有效部分在内)

1,;保存万位数字

;将余数置入内,以便当作被除数

1000

30H

2,;保存千位数字

;将余数置入内,以便当作被除数

100

30H

3,;保存百位数字

AL,

10

30H

4,;保存十位数字

30H

5,;保存个位数字

09H

21H

4

21H

'9';将码转换为16进制

A2;键入值≤’9’(’0’-‘9’)则减30H

'a';键入值<’a’(‘A’-‘F’)则减37H

A1

20H;值在’a’-‘f’则先减20H,再减37H

A1:

AL,7

A2:

30H

 

(以上参考答案由黄玉清整理)

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

当前位置:首页 > 法律文书 > 调解书

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

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