(1) 若两个数种有一个是奇数, 则将奇数存入 A 中, 偶数存入 B 中 ; (2) 若两个数均为奇数, 则将两数均加 1 后存回原变量 ; (3) 若两个数均为偶数, 则两个变量均不改变 19. 写一段子程序 SKIPLINES, 完成输出空行的功能 空行的行数由用户在主程序中通过键盘输入, 并

Similar documents
求出所有的正整数 n 使得 20n + 2 能整除 2003n n 20n n n 20n n 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y =

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Introduction to Computer Systems /18-243, spring st Lecture, Jan. 12th

Microsoft Word - em78 sub program.doc

《计算概论》课程 第十九讲 C 程序设计语言应用

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

第四章 8086汇编语言程序设计

《微型计算机原理》

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1


,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80

第5章:汇编语言程序设计

《C语言程序设计》教材习题参考答案

《C语言程序设计》第2版教材习题参考答案

<4D F736F F D20CEA2BBFAD4ADC0EDC8EDBCFECAB5D1E9D6B8B5BCCAE92E646F63>

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

全宋词1

Microsoft Word - 鄂卫办函[2009]64号.doc

& ((& ) ((

2006年国家公务员招录考试行测真题(A)

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

6寸PDF生成工具

Microsoft Word - 作业2008.doc

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

C语言上机考试题目汇总(审阅后使用的).doc

bnb.PDF

《C语言程序设计》教材习题参考答案

(Microsoft Word - \277\357\262\325\252\272\246\322\266q.doc)

数据库系统概论

6.3 正定二次型

工程设计资质标准

Modern Ideas of Government Reform ...

4 办 公 室 工 作 实 务 ( 第 3 版 ) 第 1 单 元 单 位 组 织 的 有 效 运 作 离 不 开 办 公 室 工 作 情 景 案 例 左 景 被 宏 达 商 业 集 团 公 司 录 用 为 秘 书, 试 用 期 间, 只 能 在 办 公 室 打 杂, 有 时 工 作 稍 有 差 错

nbqw.PDF

(35 )

nbqw.PDF


COP中文范本

冶金企业安全生产监督管理规定

PowerPoint 演示文稿

<4D F736F F D20BAECB1A6C0F6A3BAB7C7B9ABBFAAB7A2D0D0B9C9C6B1C4BCBCAFD7CABDF0CAB9D3C3B5C4BFC9D0D0D0D4B1A8B8E62E646F63>


Microsoft Word - 中耳的主要疾病~中耳炎.doc

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

幻灯片 1

F515_CS_Book.book

目 录(目录名)

PTR89 应用程序编程接口 V1.00

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

Microsoft Word - 实验3.doc

格式化字符串 Weifeng Sun School of Software, DLUT

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3

幻灯片 1

CH559指令周期.doc

期中考试试题讲解

函数名 endp 的所有内容到代码段空白区域中. 在复制时, 也要注意该函数是否调用了其他函数 ( 这种情况极少, 每个文件外调用我都标注了被调函数的所属文件名 ), 并把被调函数一并复制到个人代码中. 注 : 建议使用第二种方式. 这样, 在库函数接口发生变化时不会影响到已写好的程序. 2 编程规

Guava学习之Resources

目次 CONTENTS 2 1 乘法公式與多項式 二次方根與畢氏定理 因式分解 一元二次方程式

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第 3 章补充案例 案例 3-1 统计成绩最大值和最小值 一 案例描述 1 考核知识点数组的创建 2 练习目标 掌握创建数组的方式 了解 Array.length 求数组长度 3 需求分析输入小明的 5 门成绩, 计算出总分, 平均分 最高分, 最低分 4 案例分析 1) 效果如图 3-1 所示 图


帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

安 联 财 产 保 险 ( 中 国 ) 有 限 公 司 旅 行 人 身 意 外 伤 害 保 险 条 款 (2016 版 ) 1. 合 同 构 成 本 保 险 合 同 由 保 险 条 款 投 保 单 保 险 单 保 险 凭 证 以 及 批 单 等 组 成 凡 涉 及 本 保 险 合 同 的 约 定,

没有幻灯片标题

<4D F736F F D C6F0D6D8D0D4C4DCB1EDA1AAA1AAB9E9B5B5B0E6>

<4D F736F F D C4EAB9FABCD2B9ABCEF1D4B1D0D0D5FEC4DCC1A6B2E2D1E9A3A841C0E0A3A92E646F63>

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

文件

<4D F736F F D D0ADD2E9B7D6CEF6CBB5C3F7BCB0B2BFB7D6CAB5CFD6D4B4B4FAC2EB2E646F63>

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

1

幻灯片 1

教材 微型计算机与接口技术 ( 第二版 ) 科学出版社楼顺天, 周佳社, 张伟涛编著

Microsoft Word - Can use the Chinese Remainder Theorem calculate ....doc

目 录(目录名)

微机第02章1(指令寻址)

PowerPoint Presentation

watermark.pptx

实验 2 顺序结构程序设计 9 unsigned short a; a= 1; printf("%d\n",a); 运行以上程序, 查看输出的结果, 分析为什么会输出这些信息 (1) 打开 VC 创建 liti2 2.c 文件 (2) 输入以上代码并编译执行 (3) 结果如图 2 2 所示 图 2

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63>

(Microsoft Word - \246D\252k\267\247\255n_\275\306\277\357_.docx)

校园之星

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

林子雨《C语言程序设计》讲义PPT

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

网C试题(08上).doc

RSA 图为 RSA 公开密钥算法的发明人, 从左到右 Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于 1978 年 裴士辉 QQ:

人力资源服务机构等级划分与评定.doc

新开放专科单片机技术与应用教学大纲

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

《高等数学》 CAI课件

跨領域學位學程

初等数论 我们知道 除 以外的所有素数均为奇数 每一个素数和下一个素数之差是偶数 显然 两个相继素数之差为 至少为 如果一个素数和下一个素数之差为 我们就把这一对素数称为孪生素数 例如 等 年 波林那克!"#"$% 猜测 孪生素数有无穷多 这是一个至今尚未获证的问题 并且 猜测 哥德巴赫猜想 & 年

<443A5CCED2B5C4CEC4B5B55CB2BFC3C5B9A4D7F7A3A8C4EAB6C8A3A95C C3135A1A2BFC9B3D6D0F8B7A2D5B9B1A8B8E65CCCECBDF2CAD0BDF2C8D9CCECD3EEBEABC3DCBBFAD0B5D3D0CFDEB9ABCBBE C4EAB6C8C9E7BBE1D4F0C8CEB1A8B8E62E646F63>

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

2 数字电路与逻辑设计 ( 第 2 版 ) 制数的不同位置时, 所代表的数值是不同的 例如十进制数 1961 可写成展开式为 (1961) 其中,10 称为基数, 称为各位数的 权 十进制数个位的权为

06寫作魔法學堂─學習單附錄及版權頁

修订记录 为便于阅读, 修订记录按照修订时间逆序排列 2016 年 5 月 19 日, 调整网下申购询价对象用户开通数据文件和网下申购询价对象用户开通结果数据文件, 将 CA 证书 ID 从 C18 调整为 C50 统一字段长度描述方式 2015 年 11 月 13 日, 新增网下新股发行获配数据文

内容简介 汇编语言是提供给用户直接访问计算机系统最快而又最有效的一种编程语言 使用汇编语言编写程序能够充分发挥计算机硬件系统的功能 那些需要对计算机硬件进行控制或对运行时间和效率有要求的系统软件或应用软件 通常都是用汇编语言编写而成的 因此熟练掌握汇编语言程序设计方法是非常重要的 本书是 和 核汇编

Transcription:

汇编语言程序设计练习题 1. 逆序输出字符串 BASEDADDRESSING 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, 若不相同则显示 NOMATCH 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. 从键盘输入一系列字符 ( 以回车符结束 ), 冰按字母 数字及其他字符分类计数, 最后显示这三类的计数结果 18. 已定义了两个整数变量 A 和 B, 试编写程序完成下列功能 :

(1) 若两个数种有一个是奇数, 则将奇数存入 A 中, 偶数存入 B 中 ; (2) 若两个数均为奇数, 则将两数均加 1 后存回原变量 ; (3) 若两个数均为偶数, 则两个变量均不改变 19. 写一段子程序 SKIPLINES, 完成输出空行的功能 空行的行数由用户在主程序中通过键盘输入, 并将行数放在 AX 寄存器中 设有 10 个学生的成绩分别是 76,69,84,90,73,88,99,63,100 和 80 分 试编制一个子程序统计 60-69 分,70-79 分,80-89 分,90-99 分和 100 分的人数, 并分别放到 S6,S7,S8,S9 和 S10 单元中 20. 编写子程序嵌套结构的程序, 把整数分别用二进制和八进制形式显示出来 主程序 BANDO: 把整数字变量 VAL1 存入堆栈, 并条用子程序 PAIRS; 子程序 PAIRS: 从堆栈中取出 VAL1; 调用二进制显示程序 OUTBIN 显示出与其等效的二进制数, 输出 8 个空格 ; 调用八进制显示程序 OUTOCT 显示出与其等效的八进制数, 调用输出回车及换行符的子程序 21. 根据欧几里德辗转相除法求两个正整数 M N 的最大公约数 R 22. 某计算机端口地址 600H 的是 8 位寄存器, 其位 0~6 分别控制数码管显示中各段 D0~D6 的亮 (1) 和灭 (0), 七段数码管的各段编号为 : D0 D5 D6 D1 D4 D2 D3 试编写一个过程, 将 AL 保存的一位 10 进制数以数码管显示出来 ( 如 AL 的值为 3, 则 D0 D1 D2 D3 D6 亮,D4 D5 灭 ) 23. 简化的歌德巴赫猜想 : 任何一个大于 6 的偶数均可以表示为两个素数之和 现从键盘输入一个 0~65535 之间的无符号整数, 试验证歌德巴赫猜想 如输入数 12, 输出 : 12=5+7 如输入数 20, 输出 : 20=3+17 20=7+13 如输入数 7, 输出 : Must be even 如输入数 3, 输出 : Must be greater than or equal to 6 24. 用减奇数次数的方法, 求一个数的近似平方根, 这个平方根是一个整数 如求 17 的平方根, 可以用 17 相继减去奇数 1 3 5 7, 当结果为负数时停止, 即 : 17-1-3-5-7-9<0

可以看出,17 在减去 5 次奇数后结果变为负数, 可以近似认为 17 的平方根在 4 与 5 之间, 计算 NUM 的平方根, 如果 NUM=17, 则 ANS 中保存结果 4 25. 以下面形式定义一个长整数, 其所占用字节数由 N 得到, 比如 128 位的数 5746352413DE89674523BC9A78563412H 定义成 : NUMDB 12H,34H,56H,78H,9AH,0BCH,23H,45H DB 67H,89H,0DEH,13H,24H,35H,46H,57H N DB $-NUM 试编写一个程序, 实现对 N 字节的 NUM 的值求补, 并把求补后的值仍保存在 NUM 中 26. 根据 中华人民共和国国家标准 GB11643-1999 中有关公民身份号码的规定, 公民身份号码是特征组合码, 由十七位数字本体码和一位数字校验码组成 排列顺序从左至右依次为 : 六位数字地址码, 八位数字出生日期码, 三位数字顺序码和一位数字校验码 顺序码的奇数分给男性, 偶数分给女性 校验码是根据前面十七位数字码, 按照 ISO 7064:1983.MOD11-2 校验码计算出来的检验码 下面介绍计算校验码的算法 : 先引入公式 : ( 右边最低位为第 1 位, 左边最高位为第 18 位 ) 有了 Wi 值表后, 可以简化 S 的计算过程, 得出 S 后计算余数 Y,Y 的计算公式为 :Y=mod(S, 11), 再根据下表找出 Y 对应的校验码即为要求身份证号码的校验码 C 编写一个程序, 完成从键盘上输入一个 17 位的身份证号 ( 身份证号的前 17 位, 即上面描述中的第 18 位至第 2 位 ), 通过计算补充第 1 位后, 将完整的身份证号显示出来 27. 编写一个程序, 从键盘输入一个 0~65535 之间的 10 进制无符号数, 然后以 16 进制和六进制数形式显示出所输入的数 28. 编写一个程序, 将一个包含有 30 个字数据的数组 M 分成两个数组 : 奇数数组 ODD 和偶数数组 EVEN, 并把这两个数组中元素的个数以二进制形式显示出来 ( 不能使用 DIV/IDIV 指令 )

29. 已知在首地址为 DATA 的字数组中存放一系列有符号数 ( 首元素为数据个数 ), 试编写一个程序求出它们的平均值放在变量 AVER 中, 并求出数组中有多少个数大于该平均值, 将大于平均值的元素个数保存在变量 COUNT 中 ( 注意, 这些数据的累加和可能超出 -32768~ 32767 之间 ) 要求使用堆栈作为主程序和子程序之间的参数传递方式 30. 编写一个程序, 从键盘输入一个不长于 8 位的四进制数, 并将所输入的数以 10 进制数形式显示出来 31. 从键盘上输入一串字符 ( 用回车键结束, 使用 10 号功能调用 ), 将其中的小写英文字母变换为大写英文字母, 其他字符保持不变 然后将变换后的字符串显示出来 32. 从键盘上输入一串字符 ( 用回车键结束, 使用 10 号功能调用 ), 将其中的小写英文字母变换为大写英文字母, 其他字符保持不变 然后将变换后的字符串显示出来 33. 在 D 盘根目录建立一个文件 abc.txt, 第 1 次向文件中写入 123456 六个字符, 第 2 次增加 abcdefg 几个字符 34. 从键盘上输入文本文件 : d:temp1.txt 的内容, 然后新建一个文件 d:\temp2.txt, 把 d:temp1.txt 中的所有内容复制到 d:\temp2.txt 文件中 35. 从键盘上接收一个有符号的十进制数, 然后在下一行用十进制输出此有符号数 36. 从键盘上输入 10 个人名, 然后把它们按照升序的顺序排序 37. 在数据区中有 10 个不同的信息, 编号为 0-9, 每个信息包括 30 个字符 现在要求编制一个程序 : 从键盘上接收 0-9 之间的一个编号, 然后在屏幕上显示出相应的信息内容 38. 从键盘上接收 0-FFFFH 的十六进制正数, 转换为十进制数并在屏幕上显示出来 39. 主程序 MAIN 和过程 PROADD 在同一源文件中, 要求分别使用变量名 地址表 堆栈传送参数的方法, 用过程 PROADD 累加数组中的所有元素, 并把和 ( 不考虑溢出的可能性 ) 送到指定的存储单元中去 40. 从键盘上取得一个十进制数, 然后把该数用十六进制的形式显示出来 要求子程序用寄存器参数传送的方法 41. 使用跳跃表法, 根据 AL 寄存器中哪一位位 1( 从低位到高位 ) 把程序转移到 8 个不同的程序分支去 42. 在附加段中, 有一个按从小到大的顺序排列的无符号数数组, 其首地址存放在 DI 寄存器中, 数组中的第一个单元存放着数组长度 在 AX 中有一个无符号数, 要求在数组中查找 (AX), 如找到, 则使 CF=-, 并在 SI 中给出该元素在数组中的偏移地址 ; 如未找到, 则使 CF=1. 43. 在附加段中有一个字数组, 其首地址已存放在 DI 寄存器中, 在数组的第一个字中存放着该数组的长度 要求编制一个程序使该数组中的数按照从小到大的次序排列整齐 ( 分别使用起泡排序算法 交换标志 2 种方法 ) 44. 试编制一个程序 : 从键盘输入一行字符, 要求第一个键入的字符必须是空格符, 如不是, 则退出程序 ; 如是, 则开始接收键入的字符并顺序存放在首地址为 buffer 的缓冲区中 ( 空格符不存入 ), 直到接收到第二个空格符时退出程序 45. 设有 2 个数组 X 和 Y X 数组中有 X 1,X 2,,X 10 ; Y 数组中有 Y 1,Y 2,,Y 10 试编制程序计算 Z 1 =X 1 +Y 1 Z 5 =X 5 -Y 5 Z 8 =X 8 -Y 8

Z 2 =X 2 +Y 2 Z 6 =X 6 +Y 6 Z 9 =X 9 +Y 9 Z 3 =X 3 +Y 3 Z 7 =X 7 -Y 7 Z 10 =X 10 +Y 10 Z 4 =X 4 -Y 4 结果存入 Z 数组 46. 在附加段中, 有一个首地址为 LIST 和未经排序的字数组 在数组的第一个字中, 存放着该数组的长度, 数组的首地址已存放在 DI 寄存器中,AX 寄存器中存放着一个数 要求编制一个程序 : 在数组中查找该数, 如果找到此数, 则把它从数组中删除 47. 在 ADDR 单元中存放着数 Y 的地址, 试编制一个程序把 Y 中 1 的个数存入 COUNT 单元中 48. 试编制一个程序, 把 BX 寄存器内的二进制数用十六进制数的形式在屏幕上显示出来 49. 编写一个程序, 计算 1 + 2 + 3 + 4 + + N 的累加和, 并把累加和与 10 进制形式显示出来 ( 不能使用公式计算 累加和 =N (N+1)/2, 必须使用程序实现循环累加来计算 ) 50. 编写一个程序, 新建一个文件 :d:\abc.txt, 从键盘输入文件的内容 ( 不超过 100 个字符 ) 然后新建一个文件:d:\def.txt, 将 d:\abc.txt 文件的内容复制到 d:\def.txt