80X86汇编语言程序设计教程(杨季文)课后习题答案(2)
1、现场和返回地址的保护;
MOV AX, OFFSET ADDRESS
PUSH AX
JMP XXX
...
RET
2、寄存器内容的保护;
PUSH AX
PUSH BX
...
POP BX
POP AX
3、传递参数;
PUSH [BX]
CALL XXX
...
XXX:
POP AX
...
4、存储局部变量;
PUSH DS
PUSH CS
POP DS
...
POP DS
题2.29 在本章介绍的8086/8088指令中,哪些指令把寄存器SP作为指针使用?8086/8088指令集中,哪些指令把寄存器SP作为指针使用?
答: 以下指令把寄存器SP作为指针使用:
1、PUSH
2、POP
80X86汇编语言程序设计教程(杨季文)课后习题答案
3、PUSHF
4、POPF
5、PUSHA
6、POPA
7、RET
8、CALL
9、RETF
题2.30 请说说标志CF的用途。请至少给出使标志CF清0的三种方法。
答: CF的用途主要有:
1、配合条件转移语句进行条件转移;
2、配合移位指令实现操作数之间的位转移;
3、常作为子程序的出口参数;如DOS磁盘文件管理功能调用等;
CF清0的方法:
法一:
CLC
法二:
ADD AX,0FFFFH
法三:
CMP AX,0
题2.31 请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态。
MOV AL,89H
ADD AL,AL
ADD AL,9DH
CMP AL,0BCH
SUB AL,AL
DEC AL
INC AL
答:
INSTRUCTION CF ZF SF OF PF AF
MOV AL,89H 0 0 0 0 0 0
ADD AL,AL 1 0 0 1 1 1
80X86汇编语言程序设计教程(杨季文)课后习题答案
ADD AL,9DH 0 0 1 0 1 0
CMP AL,0BCH 1 0 1 0 1 0
SUB AL,AL 0 1 0 0 1 0
DEC AL 0 0 1 0 1 1
INC AL 0 1 0 0 1 1
题2.32 什么是除法溢出?如何解决16位被除数8位除数可能产生的溢出?
答: 除法溢出是指除数如果是0,或者在8位除数时商超过8位,或者在16位除时商超过16位,则认为是除法溢出,引起0中断;
首先要确定8位除数不能为0,其次要确定商的最大值不能超过8位,如果超过8位,则可 采用16位的除法;
题2.33 请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、PF的状态: MOV AL,45H
AND AL,0FH
OR AL,0C3H
XOR AL,AL
答: INSTRUCTION ZF SF PF
MOV AL,45H 0 0 0
AND AL,0FH 0 0 1
OR AL,0C3H 0 1 0
XOR AL,AL 1 0 1
题2.34 “MOV AX,0”可寄存器AX清0。另外再写出三条可使寄存器AX清0的指令。 答: 法一:
XOR AX,AX
法二:
AND AX,0
法三:
SUB AX,AX
题2.35 请写出如下程序片段中每条移位指令执行后标志CF、ZF、SF和PF的状态。 MOV AL,84H
SAR AL,1
SHR AL,1
80X86汇编语言程序设计教程(杨季文)课后习题答案
RCL AL,1
SHL AL,1
ROL AL,1
答:
INSTRUCTION CF ZF SF PF
MOV AL,84H 0 0 0 0
SAR AL,1 0 0 1 0
SHR AL,1 0 0 0 0
ROR AL,1 1 0 0 0 (该命令不影响SF位)
RCL AL,1 1 0 0 0
SHL AL,1 0 0 1 0
ROL AL,1 1 0 1 0
题2.36 8086/8088中,哪些指令把寄存器CX作为计数器使用?哪些指令把寄存器BX作为基指针寄存器使用?
答: 8086/8088中,以下指令把寄存器CX作为计数器使用:
1、LOOP
2、LOOPE
3、LOOPZ
4、LOOPNZ
5、LOOPNE
6、JCXZ
以下指令把寄存器BX作为基指针寄存器使用:
1、MOV
2、XCHG
3、LEA
4、LDS
5、LES
6、ADD
...
题2.37 请不用条件转移指令JG、JGE、JL和JLE等指令实现如下程序片段的功能: CMP AL,BL
JGE OK
80X86汇编语言程序设计教程(杨季文)课后习题答案
OK: ......
答: 如下命令可实现同样功能:
PUSH CX ;Reserve CX
XOR CX,CX ;CX=0
MOV CH,02H ;CH=02H
MOV CL,AL ;CL=AL
MOV BH,0H ;BH=0
SUB CX,BX ;If CH=2, AL>=BL; If CH=1, AL<BL
SHR CX,8 ;CX=2 or 1
LOOP OK ;If CX=2 jmp to OK; If CX=1 Exchange AL,BL
XCHG AL,BL
OK:
POP CX ;Revert CX
......
题2.38 段间转移和段内转移的本质区别是什么?8086/8088哪些指令可实现段间转移? 答: 段间转移和段内转移的本质区别是有没有对CS进行设置,如果设置了新的CS代码寄存器,程序将转移到另一个段中,即实现了段间转移;否则CS和原来一致,则在同一代码段中继续进行,只是IP指针进行了调整,即为段内转移;
8086/8088中如下指令可以实现段间转移:
1.JMP FAR PTR LEAEL
2.JMP OPRD
3.CALL
4.RET/RETF
题2.39 8086/8088的条件转移指令的转移范围有多大?如何实现超出范围的条件转移? 答: 8086/8088的条件转移指令的转移范围只能从-126到+129之间,如果出现超出 范围的条件转移,要借助无条件转移命令JMP;
题2.40 相对转移和绝对转移的区别是什么?相对转移的有何优点?
答: 相对转移和绝对转移的区别是相对转移记录了目标地址与当前地址的差值,而绝对转移在转移命令中直接包含了目标地址;
相对转移有利于程序的浮动,比如说增加了命令语句等;
80X86汇编语言程序设计教程(杨季文)课后习题答案
题2.41 请指出下列指令的错误所在:
MOV CX,DL
XCHG [SI],3
POP CS
MOV IP,AX
SUB [SI],[DI]
PUSH DH
OR BL,DX
AND AX,DS
MUL 16
AND 7FFFH,AX
DIV 256
ROL CX,BL
MOV ES,1234H
MOV CS,AX
SUB DL,CF
ADC AX,AL
MOV AL,300
JDXZ NEXT
答: MOV CX,DL
XCHG [SI],3
POP CS
MOV IP,AX
SUB [SI],[DI]
PUSH DH
OR BL,DX
AND AX,DS
MUL 16
AND 7FFFH,AX
DIV 256
ROL CX,BL
MOV ES,1234H
转
MOV CS,AX
SUB DL,CF
ADC AX,AL
MOV AL,300 POP指令的对象不能是CS,PUSH可以 IP不能是源也不能是目的 PUSH和POP只能处理16位的操作 …… 此处隐藏:2646字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




