微机原理第三章习题答案.doc_第1页
微机原理第三章习题答案.doc_第2页
微机原理第三章习题答案.doc_第3页
微机原理第三章习题答案.doc_第4页
微机原理第三章习题答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

习题 3 答案 1 指出下列指令的错误原因 1 AND AX DL 类型不匹配 2 ADD CS DX CS 不能作为目的操作数 3 MOV AX IP IP 不能作为指令的操作数 4 MOV BP SI SI 两个操作数不能同时为内存操作数 5 SUB BP SI ES DX 段超越前缀只能用在内存操作数之前 6 XCHG AL SI DI 没有 SI DI 这种操作数形式 7 JGE AX 条件转移指令的操作数只能是标号 8 PUSH DL 对堆栈不能进行字节操作 2 用一条指令将 BX 清 0 请给出 3 种方法 方法 1 MOV BX 0 方法 2 SUB BX BX 方法 3 AND BX 0 将 BX 和 0 做与 可以将 BX 清零 方法 4 XOR BX BX 3 写出实现下列功能的指令序列 1 判断 AX 的值 若 AX 等于 0 则转到标号 LABEL 处 请写出 3 种方法 方法 1 CMP AX 0 JZ LABEL 如果 ZF 0 说明 AX 为 0 因为 CMP 指令是做减法 但是不写回结果 因此指令执行后 AX 内容不会受到破坏 方法 2 TEST AX 0FFH JZ LABEL 如果 ZF 0 说明 AX 为 0 TEST 指令做与运算 可是不写回结果 只影响标志位 和 0 与清零 和 1 与不变 所以和 FFH 做与的结果是 AX 本身 但是此时标志位已 经改变了 所以可以利用标志位来判断 但是 AX 内容却没有受到任何破坏 方法 3 AND AX 0FFH 这个方法的原理和方法 2 其实是完全一致的 JZ LABEL 2 将 AL 的高 4 位与低 4 位分别放入 AH 与 AL 的低 4 位 并将 AH 与 AL 的高 4 位清 0 MOV AH AL AND AL 0FH AL 高 4 位通过与清零 而低 4 位保持不变 MOV CL 4 SHR AH CL 这两条指令通过逻辑右移将 AH 的高 4 位清零 因为 SHR 在右移后 高位补零 3 若 AX 和 BX 中的数恰好 1 个是奇数 1 个是偶数 则将奇数放入 AX 偶数放入 BX 否则 AX 和 BX 不变 TEST AX 01H TEST 做与运算 通过与来检测 AX 的最低位 JNZ CONTINUE 如果 ZF 1 说明 AX 的最低位是 0 那么 AX 中的数是偶数 就跳转 否则 说明 AX 中的是奇数 而 BX 中的是偶数 符合结果要求 不用动了 XCHG AX BX CONTINUE 4 分析下列指令序列完成什么功能 MOV CL 4 SHL DX CL MOV BL AH SHL AX CL SHR BL CL OR DL BL 答案 将 DX AX 中的 32 位数整体逻辑左移 4 位 5 给出下列各条指令执行后 AL 以及 CF OF SF 和 ZF 的值 指令ALCFOFSFZF备注 MOV AL 100100 64H XOR AL AL100 64H0010XOR 后 CF OF 0 其余据结果设置 MOV AL 1 1 0FFH0010MOV 指令不影响标志位 INC AL00001INC 不影响 CF 其余据结果设置 NOT AL0FFH0001NOT 指令不影响标志位 SHL AL 10FEH1010SHL 据移出的位设 CF 据结果设 SF ZF 一位移动 据移位前后最高位是否变化 设置 有变化 OF 1 无变化 OF 0 CMP AL 100FEH0010CMP 指令根据结果设置 6 个标志位 SUB AL 7FH7FH0000SUB 根据俄结果设置 6 个标志位 SHL AL 10FEH0110解释同上 6 比较 AX BX 和 CX 中无符号数的大小 将最小数放入 AX 中 答案 CMP AX BX JC BBB 如果 AX BX 跳转 XCHG AX BX 否则 交换 AX 和 BX 的值 将两者中的小值放到 AX 中去 BBB CMP AX CX JC CCC 如果 AX CX 跳转 XCHG AX CX 否则 交换 AX 和 CX 的值 将两者中的小值放到 CX 中去 CCC INT 20H 返回 DOS 7 变量定义伪指令与符号定义伪指令的主要作用是什么 答案 变量定义伪指令 主要用来为某种类型 比如字节型 字型 的内存单元的地址指定一个可以引用 的名字标识 符号定义伪指令 其实就是定义一个宏替换常量 用定义的符号代表一个文本串或者一个数值 在 程序中遇到定义的符号时用相应的文本串或者数值去替换 8 设有下列段定义 DSEG SEGMENT XDW1 3 DSEG ENDS 给出下列两组指令序列分别执行后 AX 的值 1 MOV AX DSEG MOV DS AX MOV AX X 1 2 MOV AX SEG X MOV ES AX MOV AX ES X INC AX 答案 1 AX 2 2 AX 2 备注 这两小段程序实现的功能是相同的 都是给子类型的变量 X 的值加 1 第二段程序采用了段 超越方式来寻址操作数 9 设有如下定义的数据段 DATA SEGMENT ORG 100 V1DW2 DUP 20 10 BUF1 DB 100 5 DD0 BUF2DW1 2 2A9H LENEQUBUF2 BUF1 VADWBUF1 DATAENDS 则 V1 1 中存放的字节数据为 0 V1 4 中存放的字数据为 114 72H VA 的内容为 106 6AH LEN 的值为 8 10 在数据段定义的两个变量 S1 和 S2 要求设计一个完整的程序 将以 S1 为首地址的 50 个字节依次传送到以 S2 为首地址的内存单元 中 File1 ASM datasgsegment s1 db 25 dup 12 s2 db 50 dup 0 datasgends codesgsegment assume cs codesg ds datasg start mov ax datasg mov ds ax mov es ax mov si offset s1 mov di offset s2 mov cx 50 rep movsb mov ax 4c00h int 21h codesgends endstart 11 从键盘读入一个字符串 长度 50 统计其字母 数字及其他字符的个数 File2 asm datasgsegment buff1db 50 最大能容纳的字符个数 countdb 实际输入的字符个数 buff2db 50 dup 实际字符缓冲区 letters db 0 输入的字母个数 digitsdb 0 输入的数字个数 othersdb 0 输入的其他字符的个数 datasgends codesgsegment assumecs codesg ds codesg start mov ax datasg mov ds ax mov dx offset buff1 为 0AH 号系统功能调用准备输入参数 DS DX 指向输入缓冲区的首地址 mov ah 0ah int 21h xor al al mov ch 0 mov cl count CX 中存放循环次数 mov si offset buff2 为 lodsb 准备源地址 DS SI 指向实际的字符串地址 cld check lodsb 取一个数据到 AL cmp al A jc x1 cmp al Z jnc x1 inc letters 将字符串中的大写字母个数统计到 letters 变量中 jmp next x1 cmp al a jc x2 cmp al z jnc x2 inc letters 将字符串中的小写字母个数统计到 letters 变量中 jmp next x2 cmp al 1 jc x3 cmp al 9 jnc x3 inc digits 将字符串中的数字字符统计到 digits 变量中 jmp next x3 inc others 统计其他字符个数 next loop check mov ax 4c00h int 21h codesgends end start 12 设计一个程序 求 10 个无符号数中的最大值 并将最大值存入 变量 MAX 中 File3 asm datasgsegment arraydb 20 12 16 14 13 90 45 32 67 100 字节型数组 maxdb 0 datasgends codesgsegment assume cs codesg ds datasg start mov ax datasg mov ds ax lea si array 数组首地址 mov cx 10 数组元素个数 cl

温馨提示

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

评论

0/150

提交评论