已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题 3 答案 1. 指出下列指令的错误原因。 (1) AND AX, DL ;类型不匹配 (2) ADD CS, DX ;CS 不能作为目的操作数 (3) MOV AX, IP ;IP 不能作为指令的操作数 (4) MOV BPSI, SI ;两个操作数不能同时为内存操作数 (5) SUB BPSI, ES:DX ;段超越前缀只能用在内存操作数之前 (6) XCHG AL, SIDI ;没有SIDI这种操作数形式 (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 DB100, 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;数组元素个数 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《职业病防治法》宣传周知识竞赛考试真题试卷含答案
- 冬天皮肤干到起皮 - 怎么保湿课件
- 圣诞习俗各国不一样 - 文化小课堂课件
- 2026年汽车色彩设计美学设计师资格认证考试试题及答案
- 2026年通信系统设计与优化工程师试题及答案
- 2026年药剂科药剂管理三基模拟练习题(含答案)
- 2026年事业单位综合应用能力公文写作专项模拟题及答案
- 2026年药品经营许可证换证延续培训试卷(含答案)
- 2026年眼科医师三基三严培训计划
- 2026年网站安全防护考试题及答案
- 2025华能澜沧江水电股份有限公司大学毕业生招聘17人笔试参考题库附带答案详解(3卷)
- 护理中保护患者隐私
- 对外汉语词汇教学教案(2025-2026学年)
- -心理健康四年级下册《6 同伴交往有分寸》 教学设计+教学设计(教科版)
- 感染性疾病科医生进修汇报
- 泥浆清运合同(2025版)
- 睿达杯二试试题和答案
- 2025年4月自考00012英语一试题及答案含解析
- 再别康桥混声四部合唱谱
- 2025年汉字听写大会汉字听写知识竞赛题库及答案
- 《四川省汉源县岩窝沟铅锌、磷矿勘探实施方案》评审意见书
评论
0/150
提交评论