微机(第四版)戴梅萼 第三章 习题答案
更新时间:2024-01-03 07:09:01 阅读量: 教育文库 文档下载
- 微机第四版课后答案推荐度:
- 相关推荐
3.12 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,这是为什么? [ 解答 ] 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,是因为在执行乘法运算时,要想使无符号数相乘得到正确的结果,有符号数相乘时,就得不到正确的结果;要想使有符号数相乘得到正确的结果,无符号数相乘时,就得不到正确的结果。
3.13 字节扩展指令和字扩展指令用在什么场合?举例说明。
[ 解答 ] 遇到两个字节相除时,要预先执行 CBW 指令,以便产生一个双倍长度的被除数。否则就不能正确的执行除法操作。 CWD 同理。
3.14 什么叫 BCD 码?什么叫组合的 BCD 码?什么叫非组合的 BCD 码? 8086 汇编语言在对 BCD 码进行加、减、乘、除运算时,采用什么方法?
[ 解答 ] 在计算机中,可用 4 位二进制码表示一个十进制码,这种代码叫 BCD 码;用一个字节表示 2 位 BCD 码就是 BCD 码;计算机对 BCD 码进行加、减、乘、除运算,通常采用两种办法:一种是在指令系统中设置一套转专用于 BCD 码的指令;另一种方法是利用对普通二进制数的运算指令算出结果,然后用专门的指令对结果进行调整,或者反过来,先对数据进行调整,再用二进制数指令进行运算。(以上 7 题由陈军解答)
3.15 用普通运算指令执行 BCD 码运算时,为什么要进行十进制调整?具体讲 , 在进行 BCD 码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?
[ 解答 ] 在 BCD 码中,只允许 0?/FONT>9 这 10 个数字出现,但有时候的运算结果会超过此范围,因此要进行十进制调整。进行加、件或乘法运算时,调整指令必须紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之前。
3.18 用串操作指令设计实现以下功能的程序段:首先将 100H 个数从 2170H 处搬到 1000H 处,然后,从中检索相等于 AL 中字符的单元,并将此单元值换成空格符。 [ 解答 ] BUFF1 EQU , 1000H BUFF2 EQU , 2170H START : MOV SI , OFFSET BUFF2 LEA DI , BUFF1 MOV CX , 100H CYCLE : MOV AL , [SI]
MOV [DI] , AL INC SI INC DI LOOP CYCLE
ANOTHER : MOV DI , OFFSET BUFF1 MOV CX , 100 CLD AGE : SCASB DEC CX JZ FIN JNZ AGE JMP OVER
FIN : MOV [DI] , 20H CMP CX , 0 JNZ AGE OVER : RET
3.20 带参数的返回指令用在什么场合?设栈顶地址为 3000H ,当执行 RET 0006 后, SP 的值为多少? [ 解答 ] 带参数的返回指令可用在这样的情况:主程序为某个子程序提供一定的参数或者参数地址先送到堆栈中,通过堆栈传递给子程序。当栈顶指针 SP=3000H ,执行 RET 0006 时,弹出 3000H 和 3001H 处的返回地址,腾出 3002H?/FONT>3007H 的空间,所以 SP=3008H 。(以上 6 题由张丽解答) .22 中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?
[ 答案 ] 中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且 SP 减 2 ,然后 CPU 将主程序的下一条指令地址即断点地址的段值和偏移量推入堆栈,且 SP 减 4 。
某中断处理子程序的入口地址即中断向量,由该中断类型号的 4 倍为内存地址,在该地址处的 4 个字节内容即该中断向量。
3.23 中断返回指令 IRET 和普通子程序返回指令 RET 在执行时,具体操作内容什么不同?
[ 答案 ] IRET 须弹出堆栈中标志寄存器的值,而 RET 则不需要。
3.29 下面的程序段将 ASCII 码的空格字符填满 100 个字节的字符表。阅读这一程序,画出流程,并说明使用 CLD 指令和 REP STOSB 指令的作用,再指出 REP STOSB 指令执行时和那几个寄存器的设置有关?
MOV CX, SEG TABLE ; TABLE 为字节表表头 MOV ES, CX
MOV DI, OFFSET TABLE ; DI 指向字节表 MOV AL, ' '
MOV CX, 64H ; 字节数 CALL FILLM ; 调用数子程序 ... ...
FILLM: JCXZ EXIT ; CX 为 0 则退出 PUSH DI ; 保存寄存器 PUSH CX CLD
REP STOSB ; 方向标志清零 POP CX ; 重复填数 POP DI EXIT: RET
[ 答案 ] CLD 指令作用:方向标志清 0 ; REP STOSB 指令作用:重复 CX 次将 AL 中的字节填入 [ES:DI] 为起始的表内, DI 增量、减量根据 DF 确定: DF=0 , DI 每次增量; DF=1 , DI 每次减量。 STOSB 指令执时,与 AX 、 ES 、 DI 寄存器和 Flag 的 DF 位设置有关。流程图如右:
3.30 下程序将一个存储块的内容复制到另一个存储快,进入存储段时, SI 中为源区起始地址的偏移量, DI 中为目的区起始地址的偏移量, CX 中为复制的字节数。阅读程序并说明具体的 REP MOCSB 指令使用与那些寄存器有关? PUSH DI ; 保存寄存器
PUSH SI PUSH CX
CMP DI, SI ; 看源区和目的区的地址哪个高 JBE LOWER ; 如目的区地址底,则转移
STD ; 如目的区地址高,则设方向标志为 1 ADD SI, CX ; 从最后一个字节开始复制 DEC SI ; 调整源区地址 ADD DI, CX
DEC DI ; 调整目的区地址 JMP MOVEM
LOWER: CLD ; 从第一个字节开始复制 MOVEM: REP MOVSB POP CX POP SI POP DI RET
[ 答案 ] REP MOVSB 的作用是重复 CX 次将 [DS:SI] 中字节传送到 [ES:DI] 中。 SI 、 DI 加或减 1 由 DF 确定, DF=0 ,加。 REP 使 CX 减 1 ,到 0 后结束传送。所以 REP MOVSB 指令与 CX 、 SI 、 DI 、 ES 、 DS 寄存器和 Flag 的 DF 位设置有关。
3.32 下面的程序实现在 TABLE 为起始地址的 100 个字符长度的表中检索 “$\分析程序,然后说明 REPNE SCASB 指令的具体执行过程。
START: MOV CX, SEG TABLE ; 表段地址送 ES MOV ES, CX
MOV DI, OFFSET TABLE ; 表偏移量送 DI MOV AL, '$' ; 检索的关键字 MOV CX, 64H ; 检索的字节数 PUSH DI ; 保存起始地址 CLD ; 清除方向标志 REPNE SCASB ; 检索
JNZ NFOUN ; 如未找到,则转移 SUB DI, 1 ; 找到,则指向次字符 JMP EXIT
NFOUN: POP DI ; 恢复起始地址
EXIT: RET ;( 以上由 1007 孙成长输入 )
[ 答案 ]REPNE SCASB 指令的作用将 AL 中的字节与 [ES:DI] 中的字节比较,不相等则 DI 加或减 1 后继续比较。这样可以在 [ES:DI] 起始的内存中检索到字节 AL ,一旦找到则操作结束,一直未找到则重复 CX 次。 ( 以上 6 题由张娅琴解答
3.35 下面的一个实现 16 位非组合 BCD 码相加的程序段,阅读这一程序段后再设计一个实现 16 位非组合 BCD 码减法的程序。
ANBCD: MOV CH, AH ; 进入程序段时, AX 中为第二个操作数 ADD AL, BL ; BX 中为被加数,实现低 8 位相乘
AAA XCHG AL, CH
ADC AL, BH ; 实现高 8 位相加 AAA
MOV AH, AL ; 和保存在 AX 中 MOV AL, CH RET
[ 答案 ] SUBCD: MOV CH, AH ; AX-BX->AX ,为非组合 BCD 码 SUB AL, BL AAS XCHG AL,CH SBB AL,BH AAS MOV AH,AL MOV AL,CH RET
3.38 以下程序将一个 8 位二进转换为 2 位 BCD 数字,进入程序时, AL 中为二进制数,退出程序时,如 CF 为 0 ,则 AL 中为 BCD 数字,如 CF 为 1 ,则表示由于输入值超出范围故结果无效。阅读下面程序后,画出流程图,然后设计一个将组合的 BCD 码 (2 位 ) 转换为 8 位二进制数的程序。 [ 答案 ] 流程图如右:
START: CMP AL, 99 ; 是否超出范围? JBE STRAT
STC ; 是,则转 EXIT ,并给 CF 置 1 JC EXIT
STRAT: MOV CL, 10 ; 10 作为除数 XOR AH, AH
CBW ; 将 AL 中数扩展到 AH
DIV CL ; 除法结果 AL 中为高位, AH 中为低位 MOV CL, 4
SHL AL, CL ; 左移 4 位
OR AL, AH ; 合成 BCD 码在 AL 中
EXIT: RET ; (以上 6 题由张琼仙解答)
START: CMP AL, 99 ; 是否超出范围? JBE STRAT
STC ; 是,则转 EXIT ,并给 CF 置 1 JC EXIT
STRAT: MOV CL, 10 ; 10 作为除数 XOR AH, AH
CBW ; 将 AL 中数扩展到 AH
DIV CL ; 除法结果 AL 中为高位, AH 中为低位 MOV CL, 4
SHL AL, CL ; 左移 4 位
OR AL, AH ; 合成 BCD 码在 AL 中
EXIT: RET ; (以上 6 题由张琼仙解答)
正在阅读:
微机(第四版)戴梅萼 第三章 习题答案01-03
中学体育教学反思02-07
商务谈判试卷及答案 1-505-07
部队班长骨干2021年述职报告范文08-03
大学语文01-16
贪玩的我作文400字07-01
社群营销新思路教学文案05-06
《中国税制》习题集无答案04-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 微机
- 习题
- 答案
- 第三章
- 戴梅萼
- 江西职业院校技能大赛 - 图文
- 《思想政治学科知识与教学能力》(高级中学)
- 工艺流程
- 关于员工流失问题的文献综述
- 实验五排序算法设计和比较
- (网络课)20世纪西方音乐课后练习题
- 土方开挖方案 - 图文
- 配套K12河北省蠡县中学2018-2019学年高二地理10月月考试题
- 电气装置行业分析调研及投资前景分析报告2019年目录
- 浙江省七彩联盟2018届高三上学期期中考试地理试题 含解析
- 灵石二中课堂改革的具体做法和成功经验
- 国际3班班规
- 道教系统诸神仙位宝诰全谱 - 图文
- 《铁道工程》期末考试复习题及答案解析
- 企业员工培训效果评估及影响因素分析
- 昆明理工大学单片机实验报告
- 研究生英语学位课统考真题(GET2011—2012)听力
- 2009年公务员考试行测模拟题二十二(中公VIP)
- 政府公关案例分析 - 图文
- 配置磁盘配额服务