汇编语言程序设计练习题
1. 逆序输出字符串“BASED ADDRESSING”。
2. 从键盘上输入 2 个一位数,求出它们的和(假设和不超过 1 位)。
3. 试编写一段程序,要求在长度为 100H 字节的数组中,找出大于 42H 的无符号数
的个数并存入字节单元 UP 中;找出小于 42H 的无符号数的个数并存入字节单元 DOWN
中。
4. 试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。
5. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按
顺序显示这三个字符。
6. 编写程序,将一个包含有 20 个数据的数组 M 分成 2 个数组:正数数组 P 和负数
数组 N,并分别把这两个数组中数据的个数显示出来。
7. 试编写一段程序,求出首地址为 DATA 的 100D 字数组中的最小偶数,并把它存
放在 AX 中。
8. 试编写一段程序,要求比较两个字符串 string1 和 string2 所含字符是否相等,
如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。
9. 试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值
的二进制数。
10. 从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并
显示计数结果。
11.有一个首地址为 mem 的 100 个字的数组,试编制程序删除数组中所有为零的项,
并将后续项向前压缩,最后将数组的剩余部分补上零。
12.从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,
试编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置
置 0。
13.在首地址为 DATA 的字数组中,存放了 100H 个 16 位补码数,试编写一个程序,
求出它们的平均值放在 AX 寄存器中;并求出数组中有多少个数小于此平均值,将结果放
在 BX 寄存器中。
14. 已知数组 A 包含 15 个互不相等的整数,数组 B 包含 20 个互不相等的整数。试编
制一个程序,把既在 A 中又在 B 中出现的整数存放于数组 C 中。
15.设在 A、B 和 D 单元中分别存放着个数。若三个数都不是 0,则求出三个数的和冰
存放在 S 单元中;若其中有一个数为 0,则把其他两个单元也清零。请编写此程序。
16.试编写一个程序,要求比较数组 ARRAY 中的三个 16 位补码数,并根据比较结果
在终端上显示如下信息:
(1)如果三个数都不相等则显示 0;
(2)如果三个数有两个相等则显示 1;
(3)如果三个数都相等则显示 2。
17. 从键盘输入一系列字符(以回车符结束),冰按字母、数字及其他字符分类计数 ,
最后显示这三类的计数结果。