资源描述:
《80X86汇编语言程序设计教程(杨季文)课后习题答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.第二章答案题2.18086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器?答:8086/8088通用寄存器的通用性表现在: 这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果; 8个通用寄存器的专门用途如下: AX字乘法,字除法,字I/O BX存储器指针 CX串操作或循环控制中的计数器 DX字乘法,字除法,间接I/O SI存储器指针(串操作中的源指针) DI存储器指针(串操作中的目的指针) BP存
2、储器指针(存取堆栈的指针) SP堆栈指针 其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器?答: 从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器;题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器 AX的内容: MOVAX,1234H MOVAL,98H MOVAH,76H ADDAL,81H SUB
3、AL,35H ADDAL,AH ADCAH,AL ADDAX,0D2H SUBAX,0FFH..答: MOVAX,1234H AX=1234H MOVAL,98H AX=1298H MOVAH,76H AX=7698H ADDAL,81H AX=7619H SUBAL,35H AX=76E4H ADDAL,AH AX=765AH ADCAH,AL AX=D15AH
4、 ADDAX,0D2H AX=D22CH SUBAX,0FFH AX=D12DH题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?答: 8086/8088标志寄存器中定义了9个标志,如下: CF:CarryFlag ZF:ZeroFlag SF:SignFlag OF:OverflowFlag PF:ParityFlag AF:AuxiliaryCarryFlag DF:DirectionFlag IF
5、:Interrupt-enableFlag TF:TrapFlag 这些标志可分为两类,分别为: 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和标志
6、OF的差异。..答: 如果把指令中处理的数据按照无符号数看待,则处理结果达到进位是,置CF为1; 如果把该处理中的数据按照有符号数看待,则处理结果超过有符号数表达范围的,置OF为1;两个标志同步进行,CPU并不知道该数的类型;题2.6 8086/8088如何寻址1M字节的存储器物理地址空间?在划分段时必须满足的两个条件是什么?最多可把1M字节空间划分成几个段?最少可把1M字节地址空间划分成几个段?答: 8086/8088通过对存储器分段和使用段寄存器的方式寻址1M字节的存储器物理地址空间; 在划分段时必须满足的两个条件是: 1
7、、逻辑段的开始地址必须是16的倍数; 2、逻辑段的嘴道长度是64K; 1M的字节空间划分为64K个逻辑段;最少可把1M字节地址划分成16个逻辑段;题2.7 在8086/8088上运行的程序某一时刻最多可访问几个段?程序最多可具有多少个段?程序至少几个段?答: 在8086/8088上运行的程序某一时刻最多可访问4个当前段:代码段,数据段,堆栈段和附加段;程序最多可具有4种类型的段,最少要有一个代码段;题2.8 存储单元的逻辑地址如何表示?存储单元的20位物理地址如何构成?答: 存储单元的逻辑地址由段值和偏移两部分组成:段值:偏移;
8、 存储单元的20位物理地址可以表示为: 物理地址=