资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
本文格式为Word版,下载可任意编辑80X86汇编语言程序设计教程课后习题答案(清华大学版) 其次章 答案 Tarzan 版 题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 答: 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的差异。 答: 假设把指令中处理的数据按照无符号数对付,那么处理结果达成进位是,置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 请举例说明何为段前缀超越。什么场合下要使用段前缀超越? 答: 在存取一般存储器操作数时,段寄放器可以不是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 答: 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 设想一下这些寻址方式如何支持高级语言的多种数据布局? 答: 自己设想! 题2.18 为什么目标操作数不能采用立刻寻址方式? 答: 立刻寻址表示是一个操作数,并非一个存储空间,作为目标操作数是不适合的; 题2.19 处理器的通用寄放器是否越多越好?通用寄放器不够用怎么办? 答: 处理器的通用寄放器并非越多越好,由于假设处理器的通用寄放器数量太多,势必 造成处理器的本金增加,同时也增加了处理器设计的繁杂度; 假设通用寄放器不够用,理应采用内存中的存储单元代替,不过速度上要有所牺牲; 题2.20 哪些存储器寻址方式可能导致有效地址超出64K的范围?8086/8088如何处理这种 处境? 7
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号