80X86汇编语言知识程序设计教育教案课后习题集标准答案(清华大学版)

发布时间:

^`
第二章答案Tarzan
2.18086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪
寄存器可作为存储器寻址方式的指针寄存器?答:8086/8088通用寄存器的通用性表现在:
这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保
算术逻辑运算中的操作数和运算结果;8个通用寄存器的专门用途如下:AX字乘法,字除法,字I/OBX存储器指针
CX串操作或循环控制中的计数器DX字乘法,字除法,间接I/OSI存储器指针(串操作中的源指针)DI存储器指针(串操作中的目的指针)BP存储器指针(存取堆栈的指针)SP堆栈指针
其中BXSIDIBP可作为存储器寻址方式的指针寄存器
2.2从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问8
寄存器?
答:从程序员的角度看,8086/808814个可访问的16位寄存器;8个可访问的8位寄存器;
2.3寄存器AX与寄存器AHAL的关系如何?请写出如下程序片段中每条指令执行后寄存器
AX的内容:MOVAX,1234HMOVAL,98HMOVAH,76HADDAL,81HSUBAL,35H

^`
ADDAL,AHADCAH,ALADDAX,0D2HSUBAX,0FFH
答:MOVAX,1234HAX=1234HMOVAL,98HAX=1298HMOVAH,76HAX=7698HADDAL,81HAX=7619HSUBAL,35HAX=76E4HADDAL,AHAX=765AHADCAH,ALAX=D15AHADDAX,0D2HAX=D22CHSUBAX,0FFHAX=D12DH
2.48086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志
的状态?
答:8086/8088标志寄存器中定义了9个标志,如下:CF:CarryFlagZF:ZeroFlagSF:SignFlagOF:OverflowFlagPF:ParityFlag
AF:AuxiliaryCarryFlagDF:DirectionFlagIF:Interrupt-enableFlagTF:TrapFlag
这些标志可分为两类,分别为:1、运算结果标志;2、状态控制标志;
采用指令SAHF可把AH中的指定位送至标志寄存器低8SFZFAFPFCF采用CLC可清除CF,置CF0采用STC可置CF1采用CLD可置DF0采用sTD可置DF1

^`
采用CLI可置IF0采用STI可置IF1
另外,在某些指令执行过程中会改变部分标志的状态;2.5请说说标志CF和标志OF的差异。
答:如果把指令中处理的数据按照无符号数看待,则处理结果达到进位是,CF1如果把该处理中的数据按照有符号数看待,则处理结果超过有符号数表达范围的,
OF1;两个标志同步进行,CPU并不知道该数的类型;
2.68086/8088如何寻址1M字节的存储器物理地址空间?在划分段时必须满足的两个条件
是什么?最多可把1M字节空间划分成几个段?最少可把1M字节地址空间划分成几个段?
答:8086/8088通过对存储器分段和使用段寄存器的方式寻址1M字节的存储器物理地址空间;
在划分段时必须满足的两个条件是:1、逻辑段的开始地址必须是16的倍数;2、逻辑段的嘴道长度是64K
1M的字节空间划分为64K个逻辑段;最少可把1M字节地址划分成16个逻辑段;
2.78086/8088上运行的程序某一时刻最多可访问几个段?程序最多可具有多少个段?
程序至少几个段?
答:8086/8088上运行的程序某一时刻最多可访问4个当前段:代码段,数据段,堆栈段
和附加段;程序最多可具有4种类型的段,最少要有一个代码段;2.8存储单元的逻辑地址如何表示?存储单元的20位物理地址如何构成?答:存储单元的逻辑地址由段值和偏移两部分组成:段值:偏移;存储单元的20位物理地址可以表示为:物理地址=段值×16+偏移;
2.9当段重叠时,一个存储单元的地址可表示成多个逻辑地址。请问物理地址12345H

80X86汇编语言知识程序设计教育教案课后习题集标准答案(清华大学版)

相关推荐