80X86汇编语言程序设计教程(杨季文)课后习题答案
80X86汇编语言程序设计教程(杨季文)课后习题答案
第二章 答案
题2.1 8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器?
答:8086/8088通用寄存器的通用性表现在:
这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果;
8个通用寄存器的专门用途如下:
AX 字乘法,字除法,字I/O
BX 存储器指针
CX 串操作或循环控制中的计数器
DX 字乘法,字除法,间接I/O
SI 存储器指针(串操作中的源指针)
DI 存储器指针(串操作中的目的指针)
BP 存储器指针(存取堆栈的指针)
SP 堆栈指针
其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器
题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位 寄存器?
答: 从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器;
题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器
AX的内容:
MOV AX,1234H
MOV AL,98H
MOV AH,76H
ADD AL,81H
SUB AL,35H
ADD AL,AH
ADC AH,AL
ADD AX,0D2H
SUB AX,0FFH
80X86汇编语言程序设计教程(杨季文)课后习题答案
答: MOV AX,1234H AX=1234H
MOV AL,98H AX=1298H
MOV AH,76H AX=7698H
ADD AL,81H AX=7619H
SUB AL,35H AX=76E4H
ADD AL,AH AX=765AH
ADC AH,AL AX=D15AH
ADD AX,0D2H AX=D22CH
SUB AX,0FFH AX=D12DH
题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?
答: 8086/8088标志寄存器中定义了9个标志,如下:
CF: Carry Flag
ZF: Zero Flag
SF: Sign Flag
OF: Overflow Flag
PF: Parity Flag
AF: Auxiliary Carry Flag
DF: Direction Flag
IF: Interrupt-enable Flag
TF: Trap Flag
这些标志可分为两类,分别为:
1、运算结果标志;
2、状态控制标志;
采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF; 采用CLC可清除CF,置CF到0
采用STC可置CF到1
采用CLD可置DF到0
采用sTD可置DF到1
采用CLI可置IF到0
采用STI可置IF到1
另外,在某些指令执行过程中会改变部分标志的状态;
题2.5 请说说标志CF和标志OF的差异。
80X86汇编语言程序设计教程(杨季文)课后习题答案
答: 如果把指令中处理的数据按照无符号数看待,则处理结果达到进位是,置CF为1; 如果把该处理中的数据按照有符号数看待,则处理结果超过有符号数表达范围的,置OF为1;两个标志同步进行,CPU并不知道该数的类型;
题2.6 8086/8088如何寻址1M字节的存储器物理地址空间?在划分段时必须满足的两个条件是什么?最多可把1M字节空间划分成几个段?最少可把1M字节地址空间划分成几个段? 答: 8086/8088通过对存储器分段和使用段寄存器的方式寻址1M字节的存储器物理地址空间;
在划分段时必须满足的两个条件是:
1、逻辑段的开始地址必须是16的倍数;
2、逻辑段的嘴道长度是64K;
1M的字节空间划分为64K个逻辑段;最少可把1M字节地址划分成16个逻辑段; 题2.7 在8086/8088上运行的程序某一时刻最多可访问几个段?程序最多可具有多少个段?程序至少几个段?
答: 在8086/8088上运行的程序某一时刻最多可访问4个当前段:代码段,数据段,堆栈段和附加段;程序最多可具有4种类型的段,最少要有一个代码段;
题2.8 存储单元的逻辑地址如何表示?存储单元的20位物理地址如何构成?
答: 存储单元的逻辑地址由段值和偏移两部分组成:段值:偏移;
存储单元的20位物理地址可以表示为:
物理地址=段值×16+偏移;
题2.9 当段重叠时,一个存储单元的地址可表示成多个逻辑地址。请问物理地址12345H可表示多少个不同的逻辑地址?偏移最大的逻辑地址是什么?偏移最小的逻辑地址是什么?
答: 12345H可表示1000H(4096)个不同的逻辑地址,偏移最大的逻辑地址是235:0FFF5H 偏移最小的逻辑地址是1234:0005H
题2.10 为什么称CS为代码段寄存器?为什么称SS为堆栈寄存器?
答: 因为在取指令的时候,规定的段寄存器就是CS,所以CS为代码段寄存器; 而堆栈操作时规定的寄存器是SS,所以SS为堆栈寄存器;
题2.11 请举例说明何为段前缀超越。什么场合下要使用段前缀超越?
80X86汇编语言程序设计教程(杨季文)课后习题答案
答: 在存取一般存储器操作数时,段寄存器可以不是DS;当偏移设计BP寄存器时,段寄存器也可以不必是SS;如Mov AX,[si] 默认段地址在DS中,也可以改变:Mov AX, ES:[si] 当数据并不在默认的DS指定段时,可以采用段前缀超越;
题2.12 8086/8088的基本寻址方式可分为哪三类?他们说明了什么?
答: 8086/8088的基本寻址方式可分为以下三类:
1、存储器寻址;
2、立即寻址;
3、寄存器寻址;
他们说明了cpu有三类合计七种方式进行基本寻址;
题2.13 存储器寻址方式分为哪几种?何为存储器的有效地址?
答: 存储器寻址方式分为以下几种:
1、立即寻址;
2、直接寻址;
3、寄存器寻址;
4、寄存器间接寻址;
5、寄存器相对寻址;
6、基址加变址寻址;
7、相对基址加变址寻址;
存储器的有效地址是一个16bit的无符号数;
题2.14 什么场合下缺省的段寄存器是SS?为什么这样安排?
答: 当使用堆栈时,缺省的段寄存器是SS;
因为SS定义为堆栈段寄存器,配合SP堆栈指针,用来指向堆栈的栈顶; 题2.15 请说明如下指令中源操作数的寻址方式,并作相互比较:
MOV BX,[1234H]
MOV BX,1234H
MOV DX,BX
MOV DX,[BX]
MOV DX,[BX+1234H]
MOV DX,[BX+DI]
MOV DX,[BX+DI+1234H]
80X86汇编语言程序设计教程(杨季文)课后习题答案
答: MOV BX,[1234H] ;直接寻址
MOV BX,1234H :立即寻址
MOV DX,BX :寄存器寻址
MOV DX,[BX] :寄存器间接寻址
MOV DX,[BX+1234H] :寄存器相对寻址
MOV DX,[BX+DI] :基址加变址寻址
MOV DX,[BX+DI+1234H] :相对基址加变址寻址
题2.16 8086/8088提供了灵活多样的寻址方式,如何适当的选择寻址方式?
答: 每种寻址方式都有其特点,首先应该掌握不同寻址方式之间的区别,以及 适用的范围,结合程序中的需要进行灵活选择。
题2.17 设想一下这些寻址方式如何支持高级语言的多种数据结构?
答: 自己设想!< …… 此处隐藏:2732字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分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)




