微机原理及应用习题集答案5.pdf_第1页
微机原理及应用习题集答案5.pdf_第2页
微机原理及应用习题集答案5.pdf_第3页
微机原理及应用习题集答案5.pdf_第4页
微机原理及应用习题集答案5.pdf_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题五 1 汇编程序和汇编语言源程序有什么区别 两者的作用是什么 答 汇编程序是对汇编源程序进行编译的系统程序 汇编源程序是编程人员利用汇编语言为解 决某些问题而编写的程序 汇编程序用来对汇编源程序进行编译 从而产生目标代码的 而汇编源 程序是用来执行程序动作的语句 2 汇编语言源程序的语句有哪几种 各自的作用是什么 答 汇编语言源程序是由指令语句 伪指令语句 宏指令语句组成 指令语句 产生目标代码 是 CPU 可以执行的能够完成特定功能的语句 伪指令语句 在汇编程序对源程序汇编期间由汇编程序处理的操作 它可以完成如处理器选择 定义数据 分配存储区 指示程序结束等功能 但不产生目标代码 宏指令语句 宏指令语句的目的在于简化汇编语言源程序的书写 不能缩小目标代码文件 3 标号和变量都有什么属性 各属性的作用是什么 答 有段属性 偏移地址属性和类型属性 段属性 段属性定义了标号和变量的段起始地址 其值是在某一段寄存器中 偏移地址属性 该属性表示标号和变量相距段起始地址的字节数 是一个 16 位无符号数 类型属性 对于标号而言 用于指出该标号是在本段内引用还是在其它段中引用 标号的类 型有 NEAR 段内引用 和 FAR 段间引用 两种 对变量而言 其类型属性由定义变量的伪指令 DB 定义字节型 DW 定义字型 DD 定义双字型 等确定 4 试叙述汇编语言源程序的上机过程 答 分四步进行 编辑 汇编 连接 调试 编辑 用编辑程序 例如 EDIT COM 建立扩展名为 ASM 的汇编语言源程序文件 汇编 用汇编程序 例如 MASM EXE 将汇编语言源程序文件汇编成目标程序文件 其扩展名 为 OBJ 如果在汇编过程中出现语法错误 根据错误信息提示 如错误位置 错误类型 错误说明 用编辑软件重新调入源程序文件进行修改 直至没有出现语法错误 再进行连接程序 连接 用连接程序 例如 LINK EXE 把目标程序文件转化成可执行文件 其扩展名为 EXE 调试 用调试程 例如 DEBUG EXE 序对可执行文件进行调试 直到无错误为止 此时的可执行文件在 DOS 命令下直接执行 5 已知数据段 DATA 从存储器 02000H 单元开始 DATA 段的定义如下 DATA SEGMENT VAR1 DB 2 DUP 0 1 VAR2 DW 50 DUP VAR3 DB 10 DUP 0 1 2 DUP 3 4 DATA ENDS 试求出三个变量经 SEG OFFSET TYPE LENGTH SIZE 运算的结果 答 运算结果如下表所示 课后答案网 w w w k h d a w c o m 回送符 变量 SEG OFFSET TYPE LENGTH SIZE VAR1 0200H 0000H 1H 2H 2H VAR2 0200H 0006H 2H 32H 64H VAR3 0200H 006AH 1H 0AH 0AH 6 已知数据段定义如下 试采用图示说明各变量在内存的分配情况以及数据的预置情况 DATA SEGMENT A1 DB 50 100 2 DUP 0 1 A2 DB 2 DUP 2 3 DUP 10H A3 DB happy new year A4 DW 0 2000H A5 DW AB DATA ENDS 答 7 试采用图示说明各变量在内存的分配情况以及数据的预置情况 DATA SEGMENT ORG 0100H B1 DB B2 DW 100 B3 DW 2 DUP 0 COUNT EQU 5 B4 DB COUNT DUP 0 1 B5 DW 12 34 56 DATA ENDS 答 内存的分配情况以及数据的预置情况见右图 B3 H 64H 00H 00H 00H 00H 00H 00H 01H 00H 01H 00H 01H 00H 01H 00H 01H 32H 31H 34H 33H 36H 35H 0100H B1 B2 B4 B5 A3 00H 00H 00H 20H H H 42H 41H A1 A2 A4 0000H A5 32H 64H 00H 01H 00H 01H 02H H H H 10H 02H H H H 10H 68H 61H 70H 70H 79H 20H 6EH 65H 77H 20H 79H 65H 61H 72H 21H 001FH0010H 课后答案网 w w w k h d a w c o m 8 已知变量 VAR1 VAR2 VAR3 定义如下 试分析下面的指令是否正确 若有错误 请进行 改正 DATA SEGMENT VAR1 DB VAR2 DB 10 VAR3 EQU 100 DATA ENDS 1 MOV VAR1 AX 2 MOV VAR3 AX 3 MOV BX VAR1 MOV BX 10 4 CMP VAR1 VAR2 5 VAR3 EQU 50 答 1 类型不匹配 该为 MOV VAR1 AL 2 立即数不能作为目的操作数 该为 MOV AX VAR3 3 第一句类型不匹配 改为 MOV BL VAR1 第二句未指明存储器操作数的类型 改为 MOV BYTE PTR BX 10 4 两个存储器操作数之间不能直接作比较 改为 MOV AL VAR1 CMP AL VAR2 5 符号 VAR3 已被定义 不能重复定义 应去掉 9 假设 VAR1 和 VAR2 为字变量 LAB 为标号 试指出下面指令的错误之处 并加以改正 1 ADD VAR1 VAR2 答 两存储器操作数之间不能直接相加 改为 MOV AX VAR1 ADD AX VAR2 2 SUB AL VAR2 答 两操作数类型不匹配 改为 SUB AX VAR2 3 MOV CL VAR1 答 两操作数类型不匹配 改为 MOV CX VAR1 4 JMP LAB SI 答 相对寄存器寻址 相对位移量不能为标号 因为数据值 改为 JMP 5 SI 5 JNZ VAR1 答 条件转移指令转移的目标地址 只能是标号或 8 位位移量 改为 JNZ LAB 10 试说明下面指令中哪些需要进行 PTR 说明 VAR1 DB 10H 100 VAR2 DW 1000 1 MOV AL VAR1 2 MOV DH BX 3 ADD BX 2 4 MOV CL VAR2 5 SUB AL VAR1 1 答 3 4 条指令需要进行 PTR 说明 课后答案网 w w w k h d a w c o m 11 选择题 1 在顺序结构的流程图中 不包含有 C A 起始框 B 终止框 C 判断框 D 处理框 2 设 AL 0A8H CX 2 CF 1 执行 RCL AL CL 指令后 AL 无正确选项 A 51H B 46H C 47H D 0C5H 注 正确的结果为 AL 0A3H 3 下述指令的执行结果是 C MOV AL 0FFH XOR AL 3FH A AL 40H B AL 20H C AL 0C0H D AL 0E0H 12 在 AX 和 DX 中存有一个 32 位带符号数 DX 中存放高 16 位 试编写程序求出它的相反 数 答 程序设计如下 CODE SEGMENT ASSUME CS CODE START MOV CX 0 CLC SBB CX AX MOV AX CX MOV CX 0 SBB CX DX MOV DX CX MOV AH 4CH INT 21H CODE ENDS END START 13 编程实现求 S X2 Y2 Z 的值 并将结果放入 RESULT 单元 设 X Y Z 均为 字节数 且 Z 为无符号数 答 程序设计如下 DATA SEGMENT X DB 20H Y DB 35H Z DB 12H RESULT DW DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AL X MUL AL 课后答案网 w w w k h d a w c o m MOV DX AX MOV AL Y MUL AL ADD AX DX MOV DX 0 MOV BL Z MOV BX 0 DIV BX MOV RESULT AX MOV AH 4CH INT 21H CODE ENDS END START 14 试编程实现将键盘输入的小写字母用大写字母显示出来 答 程序设计如下 CLRF MACRO 宏汇编命令 定义宏 MOV DL 0DH MOV AH 02H INT 21H 回车 使光标回到起始位置 MOV DL 0AH MOV AH 02H INT 21H 光标换行 ENDM 宏定义结束 DATA SEGMENT STRING DB 50 50 DUP DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX LEA DX STRING MOV AH 0AH INT 21H CLRF 宏指令 MOV BL STRING 1 MOV BH 0 LEA SI STRING 2 ADD BX SI MOV BYTE PTR BX NEXT MOV DL SI CMP DL a JB NEXT1 CMP DL z 课后答案网 w w w k h d a w c o m JA NEXT1 SUB DL 20H MOV SI DL NEXT1 INC SI DEC BL JNZ NEXT LEA DX STRING 2 MOV AH 09H INT 21H MOV AH 4CH INT 21H CODE ENDS END START 15 若在数组字变量 SQTAB 平方表中有十进制数 0 100 的平方值 用查表法找出 35 这个数的 平方值放入字变量 NUM 中 写出程序段和有关的伪指令 答 程序设计如下 DATA SEGMENT SQTAB DW 0 1 4 9 16 25 36 10000 TAB DB 35 NUM DW DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV BX OFFSET SQTAB MOV AL TAB SAL AL 1 MOV AH 0 ADD BX AX MOV AX WORD PTR BX MOV NUM AX MOV AH 4CH INT 21H CODE ENDS END START 16 试指出下列无条件转移指令的转移地址中的转移地址 1 JMP BX 答 转移地址为 BX 寄存器中的值 属段内间接转移 IP BX 2 JMP WORD PTR BX 答 转移地址为 BX 中的值指明的存储器字单元中的值 属段内间接转移 IP MEM 3 JMP NEAR PTR FOR 课后答案网 w w w k h d a w c o m 答 转移地址为当前 IP 16 位位移量 标号 FOR 表示 16 位位移量 属段内近转移 4 JMP FAR PTR FAR PRO 答 转移地址为标号 FAR PRO 表示的 16 位段基址和 16 位偏移量 属段间直接转移 5 JMP SHORT AGAIN 答 转移地址为当前 IP 8 位位移量 标号 AGAIN 表示 8 位位移量 属段内短转移 6 JMP DWORD PTR BX DI 答 转移地址为由基址变址寻址方式提供的存储器操作数 两个字 17 试分析下列程序段 如果 AX 和 BX 的内容分别给出如下 5 种情况 试问程序分别转向何 处 1 AX 1478H BX 80DCH 2 AX 0B568H BX 54B5H 3 AX 42C8H BX 608DH 4 AX 0D023H BX 9FD0H 5 AX 94B7H BX 0B568H ADD AX BX JNO L1 JNC L2 SUB AX BX JNC L3 JNO L4 JMP L5 答 1 转向 L1 2 转向 L1 3 转向 L2 4 转向 L5 5 转向 L5 18 编写程序 计算下面函数的值 2X X 0 S 3X 0 X 10 4X X 10 答 程序设计如下 DATA SEGMENT X DB 17 S DB DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AL X CMP AL 0 JGE LOOP1 课后答案网 w w w k h d a w c o m ADD AL AL MOV S AL MOV AH 4CH INT 21H LOOP1 CMP AL 0AH JG LOOP2 MUL 3 MOV S AL MOV AH 4CH INT 21H LOOP2 MUL 4 MOV WORD PTR S AX MOV AH 4CH INT 21H CODE ENDS END START 19 设内存中有三个互不相等的无符号字数据 X Y 和 Z 存放在 X 开始的字单元中 编程实 现将三个数据从小到大排序后放到 X Y 和 Z 中 答 程序设计如下 DATA SEGMENT X DW 25H 27H 18H Y DW Z DW DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AX X CMP AX X 2 JBE LOOP1 XCHG AX X 2 LOOP1 CMP AX X 4 JBE LOOP2 XCHG AX X 4 LOOP2 MOV X AX MOV AX X 2 CMP AX X 4 JBE LOOP3 MOV Z AX MOV AX X 4 MOV Y AX JMP LOOP4 课后答案网 w w w k h d a w c o m LOOP3 MOV Y AX MOV AX X 4 MOV Z AX LOOP4 MOV AH 4CH INT 21H CODE ENDS END START 20 分析下面程序功能 并指出程序执行后 DAT2 数据区中的内容是什么 DAT1 DB 0 1 2 3 4 5 6 7 8 9 DAT2 DB 5 DUP MOV CX 5 MOV BX 5 MOV SI 0 MOV DI 0 NEXT MOV AL DAT1 BX SI MOV DAT2 DI AL INC SI INC DI LOOP NEXT HLT 答 DAT2 数据区中的内容为 5 6 7 8 9 21 编写程序求出首地址为 DAT 的 100 个有符号字数据中的最小偶数 并将这个数存放到 DAT1 字单元中 答 程序设计如下 提示 偶数的最末为是零 DATA SEGMENT DAT DB 02H 0A8H 34H 23H 23H 34H 26H 0A2H NUM EQU 64H DAT1 DB DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX LEA SI DAT MOV CX NUM MOV AL 0 NEXT MOV DL SI SHR DL 1 JNC NN INC SI DEC CX 课后答案网 w w w k h d a w c o m JNZ NEXT JMP MM NN MOV AL SI NN1 INC SI DEC CX JZ MM MOV BL SI SHR BL 1 JC NN1 MOV BL SI CMP AL BL JLE NN1 MOV AL BL JMP NN1 MM MOV DATI AL MOV AH 4CH INT 21H CODE ENDS END START 22 试编写一个程序段 要求比较两个字符串 STR1 和 STR2 是否完全相等 若完全相等 则置 AL 1 若不完全相等 则置 AL 1 答 程序设计如下 DATA SEGMENT STR1 DB FDASFDFDSA NUM1 EQU STR1 STR2 DB FDASFDFDSA NUM2 EQU STR2 DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA ES DATA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论