第一章习题解答

更新时间:2024-06-24 09:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章习题解答(P37)

2、设机器字长为6 位,写出下列各数的原码、补码、反码和移码。 10101 11111 10000 -10101 -11111 -10000

解: ① [10101]原=[10101]补=[10101]反=010101B [10101]移=2n-1-1+010101=11111+10101=110100B ② [-10101]原=110101B [-10101]反=101010B [-10101]补=101011B

[-10101]移=11111-10101=001010B

③ [11111]原=[11111]补= [11111]反=011111B [11111]移=11111+11111=111110B ④ [-11111]原=111111B [-11111]反=100000B [-11111]补=100001B

[-11111]移=11111-11111=000000B

⑤ [10000]原=[10000]补=[10000]反=010000B [10000]移=11111+10000=101111B ⑥ [-10000]原=110000B [-10000]反=101111B

[-10000]补=110000B

[-10000]移=11111-10000=001111B

3、利用补码进行加减法运算比用原码进行运算有何优越性? 答: 利用补码进行加减法运算比用原码进行运算的优越性主要表现在只用一套加法器电路就可以

进行加减法运算,简化了电路,降低了运算器的成本。

5、设机器字长为8 位,最高位为符号位,试对下列各算式进行二进制补码运算。 (1) 16+6=? 解: ∵ [16]补=10H [6]补=06H

∴ [16+6]补=[16]补+[6]补=10H+06H=16H (2) 8+18=? 解: ∵ [8]补=08H [18]补=12H

∴ [8+18]补=[8]补+[18]补=08H+12H=1AH (3) 9+(-7)=? 解: ∵ [9]补=09H [-7]补=F9H

∴ [9+(-7)]补=[9]补+[-7]补=09H+F9H=02H

(4)-25+6=? 解: ∵ [-25]补=E7H [6]补=06H

∴ [-25+6]补=[-25]补+[6]补=E7H+06H=EDH (5) 8-18=? 解: ∵ [8]补=08H [-18]补=EEH

∴ [8-18]补=[8]补+[-18]补=08H+EEH=F6H (6) 9-(-7)=? 解: ∵ [9]补=09H [-(-7)]补=07H

∴ [9-(-7)]补=[9]补+[-(-7)]补=09H+07H=10H (7) 16-6=? 解: ∵ [16]补=10H [-6]补=FAH

∴ [16-6]补=[16]补+[-6]补=10H+FAH=0AH (8) -25-6=? 解: ∵ [-25]补=E7H [-6]补=FAH

∴ [-25-6]补=[-25]补+[-6]补=E7H+FAH=E1H

6、设机器字长为8 位,最高位为符号位,试用“双高位”法判别下述二进制运算有没有溢出产生。 若有,是正溢出还是负溢出? (1)43+8=51 解:[43]补=2BH [8]补=08H 0010 1011 + 0000 1000 0011 0011B

因为D7CY○+ D6CY=0○+ 0=0,所以运算结果没有溢出。(2)-52+7=-45 解:[-52]补=CCH [7]补=07H 1100 1100 + 0000 0111 1101 0011B

因为D7CY○+ D6CY=0○+ 0=0,所以运算结果没有溢出。(3)50+84= 解:[50]补=32H [84]补=54H

0011 0010 + 0101 0100 1000 0110B

因为D7CY○+ D6CY=0○+ 1=1,所以运算结果产生了正溢出。 (4)72-8=64 解:[72]补=48H [-8]补=F8H 0100 1000 + 1111 1000 0100 0000B

因为D7CY○+ D6CY=1○+ 1=0,所以运算结果没有溢出。(5)-33+(-37)=-70 解:[-33]补=DFH [-37]补=DBH 1101 1111 + 1101 1011 1011 1010B

因为D7CY○+ D6CY=1○+ 1=0,所以运算结果没有溢出。(6)-90+(-70)= 解:[-90]补=A6H

[-70]补=BAH 1010 0110 + 1011 1010 0110 0000B

因为D7CY○+ D6CY=1○+ 0=1,所以运算结果产生负溢出。 7、何谓字符串及位串?它们之间有何不同? 答:“字符串”是以字节/字/双字的相邻序列;

8、已知位bi 及bj 在位串中的地址(位偏移量)分别为92 和-88,试求它们各自在位串中的字节地址及其在所在字节中的位置。 解:bi 的字节索引为92÷8 取整数商:11; bi 的位余数为92 mod 8:4 答:bi 位在m+11 字节的D4 位。 解:bj 的字节索引为-88÷8 取整:11; 5

bj 的位余数为-88 mod 8:0 答:bj 位在m-11 字节的D0 位。 9、将下列十进制数变为8421BCD 码: (1)8069

答:8069 对应的8421BCD 码为:1000 0000 0110 1001 (2)5324

答:5324 对应的8421BCD 码为:0101 0011 0010 0100 10、将下列8421BCD 码表示成十进制数和二进制数: (1)01111001B

答:(01111001)8421BCD=79=1001111B (2)10000011B

答:(10000011)8421BCD=83=1010011B 11、写出下列各数的ASCII 代码: (1)51

答:51 的ASCII 代码为:35H31H (2)7F

答:7F 的ASCII 代码为:37H46H (3)AB

答:AB 的ASCII 代码为:41H42H (4)C6

答:C6 的ASCII 代码为:43H36H 第二章习题解答(P69)

1、8086/8088 CPU 中BIU 部件和EU 部件各由哪些部分组成?各自的功能是什么?追踪指令地址的寄存器是什么?

答:8086/8088 CPU 中BIU 部件由4 个段寄存器(CS,DS,ES 和SS)、1 个指令指针寄存器(IP)、

1 个20 位地址加法器、1 个指令队列缓冲器(8086 为6 字节,8088 为4 字节)和总线控制电路等组成。主要功能一是从内存中取指令代码送入指令队列缓冲器中;二是响应EU 的总线请求,负责与内存或输入/输出接口之间的数据传送;三是在执行转移指令时,BIU 使指令队列缓冲器复位,从指定的新地址取指令,并立即传给EU 单元执行。EU 部件由1 个16 位ALU、寄存器组(4 个通用寄存器AX、BX、CX 和DX,2 个指针寄存器BP 和SP,2 个变址寄存器DI 和SI)、1 个标志寄存器FLAGS 和执行控制电路(指令译码和时序产生电路等)等组成。其功能一是从指令队列缓冲器中依次取出指令代码、译码并执行;二是执行含存储器或I/O 口的指令时,形成存储器操作数的段内偏移地址或I/O 口地址送BIU;三是执行转移、调用、中断指令时通知BIU 复位指令队列缓冲器,立即从新地址开始取指令代码。

在8086/8088 CPU 中,追踪指令地址的寄存器是IP(指令指针寄存器),由CS:IP 指出要执行指令的地址。 2、简述堆栈指示器SP 的功能及堆栈的操作过程。 答:8X86 系列微处理器的堆栈如下图所示:

①堆栈是由内存中按照“先进后出”原则组织起来的一片连续的存储器单元组成;

②SP 作为堆栈指针,始终指向“栈顶”; ③堆栈操作

进栈操作(PUSH)先把SP-2,再把源操作数存入SP 所指的字存储器单元;

出栈操作(POP)先把SP 所指字单元的内容取到目的操作数,再将SP+2。

3、8086/8088 CPU 有哪几个状态标志?哪几个控制标志?各标志的含义和功能是什么?

答:① 8086/8088 CPU 有6 个状态标志,各标志的含义是: CF:进位/借位标志,指示加/减法运算中最高位的进/借位状态,有进/借位时CF 为1,反之为0;

PF:奇偶标志,指示算术/逻辑运算结果低8 位中1 的个数是奇/偶数,结果中有偶数个1 时,PF 为1, 反之为0;

AF:半进位标志,指示加/减法运算中D3 位向D4 位的进/借位状态,有进/借位时AF 为1,反之为0;

ZF:0 标志,指示算术/逻辑运算结果使ALU 中是否为全0,ALU 中为全0 时ZF 为1,反之为0;

SF:符号标志,指示算术/逻辑运算结果最高位的状态,最高位为1 时SF 为1,反之为0;

OF:溢出标志,指示带符号算术运算结果是否超出其表示范围,用双高位法判断,有溢出时OF 为1,反之为0;

注意:CF,ZF,SF 和OF 与操作数的位数有关,80386 支持8 位,16 位和32 位运算。

PF 和AF 与操作数的位数无关。

② 8086/8088 CPU 有3 个控制标志,各标志的含义是:

TF:单步标志,用来控制CPU 执行指令的方式,当TF=1 时,每执行一条指令便产生一次单步中断,当 TF=0 时,连续执行指令;

DF:方向标志,用来控制串操作指令的步进方向,当DF=1 时,串操作指令从高地址向低地址方向进行,

当DF=0 时,串操作指令从低地址向高地址方向进行;

IF:可屏蔽中断允许标志,当IF=1 时,允许响应可屏蔽中断请求,反之则禁止响应。

4、8086/8088 CPU 的存储器组织为什么要采用分段结构?逻辑地址和物理地址的关系是什么?若已知逻辑地址为B100H:A300H,试求物理地址。

答:8086/8088 CPU 的存储器组织采用分段结构有以下优点:①能有效利用8086/8088 CPU 的

个16 位寄存器和1 个20 位地址加法方便的构成20 位地址,使8086/8088 CPU 的寻址能力达到1MB;②能方便实现不同信息的分类存储(程序代码、数据和堆栈等)和共享;③有利于模块化程序、多道程序和多用户程序的设计。

逻辑地址是编程者使用的地址,不是程序代码或数据在计算机中的实际地址,而物理地址是系统中每个存储器单元或I/O 端口所在的地址,由处理器的地址线状态确定。

逻辑地址必须转换成物理地址才能使用,在8086/8088 系统中,其转换方法是:

物理地址=段地址×10H+偏移地址

一个逻辑地址只对应一个物理地址。例如本题中: 物理地址=B100H×10H+A300H=BB300H

而一个物理地址可以对应多个逻辑地址,例如本题中物理地址BB300H,可以对应逻辑地址: B100H:A300H B000H:B300H BB00H:0300H BB30H:0000H ?

这种对应关系有利于存储器单元的共享,但要防止冲突。

7、试判断下列运算执行之后,OF、CF、ZF、SF、PF 和AF 的状态: ⑴ A400H+7100H

解: 1010 0100 0000 0000 + 0111 0001 0000 0000 0001 0101 0000 0000

运算后各标志的状态为:OF=0,CF=1,ZF=0,SF=0,PF=1,AF=0 ⑵ A323H-8196H

解: 1010 0011 0010 0011 - 1000 0001 1001 0110 0010 0001 1000 1101

运算后各标志的状态为:OF=0,CF=0,ZF=0,SF=0,PF=1,AF=1 ⑶ 46H-59H 解: 0100 0110 - 0101 1001 1110 1101

运算后各标志的状态为:OF=0,CF=1,ZF=0,⑷ 7896H-3528H

解: 0111 1000 1001 0110 - 0011 0101 0010 1000 0100 0011 0110 1110

运算后各标志的状态为:OF=0,CF=0,ZF=0,10

若把该题改为“+”运算,即:7896H+3528H,则运算结果解: 0111 1000 1001 0110 + 0011 0101 0010 1000 1010 1101 1011 1110

运算后各标志的状态为:OF=1,CF=0,ZF=0,SF=1,PF=1,AF=1 SF=0,PF=0,AF=1 OF=1 SF=1,PF=1,AF=0

10、80386 CPU 有哪几种工作方式?各有何特点? 答:80386 CPU 有3 种工作方式。各方式的主要特点是:

①在实地址方式,80386 只能寻址1MB 物理地址空间,相当于一个高速8086 CPU;

②在虚地址保护方式,80386 可寻址4GB 物理地址空间和64TB 虚地址空间,对内存采用分段和分页管理方式,更好地兼顾了程序设计的逻辑性和内存管理的高效灵活两者的矛盾。

③在虚拟8086 方式,8086 的程序可以在保护方式的基础上作为任务加以执行,实现多个用户程序同时运行。

11、80386 寄存器集由哪些寄存器组成?它们的功能和特点是什么? 答:80386 内部寄存器的组成和主要特点归纳如下: ①通用寄存器 1F??10 EAX EBX ECX EDX ESI EDI 寄存器位定义 0F??08 AH BH CH DH SI DI 07??00 AL BL CL DL

EBP ESP

BP SP ②其它寄存器 1F??10

13、何谓CISC 技术和RISC 技术?各有何特点?各自的代表产品是什么?

答:所谓CISC 技术,是指采用“复杂指令集计算机”技术设计的微处理器体系结构;其主要特点是:

采用变长指令编码,寻址方式多,指令功能丰富,采用微程序控制,各指令执行时间相差很大,目的在于提高编程效率和内存利用率,其主要代表产品如Intel 80X86 系列,Zilog Z80 和Motorola 68K 系列等。 所谓RISC 技术是指采用“精简指令集计算机”技术设计的微处理器体系结构;其主要特点是:采

用定长指令编码,寻址方式多,指令条数少且很规整,采用硬布线控制,目的在于更多地使用流水线技术,提高取指令和分析指令的效率,使各指令执行时间相差很小,多数为单周期指令,大大简化了微处理器的结构,降低了成本,提高了速度,其主要代表产品如

寄存器位定义 0F??08 07??00 APPLE、IBM 和Motorola 的PowerPC 微处理器 SGI/MIPS 的R2000,R3000 等 IBM 的Power 微处理器 SUN 的SPARC 微处理器

第三章习题解答(P118)

1、指出下列指令中源操作数和目的操作数的寻址方式: ;目的操作数源操数

⑴ MOV SI,1000 ;寄存器寻址立即数寻址 ⑵ MOV BL,AL ;寄存器寻址寄存器寻址

⑶ MOV [SI],1000 ;寄存器间接寻址立即数寻址 ⑷ MOV BP,[BX] ;寄存器寻址寄存器间接寻址

⑸ AND DL,[BX+SI+20H] ;寄存器寻址相对的基址加变址寻址 ⑹ PUSH DS ;SP 寄存器间接寻址寄存器寻址 ⑺ POP AX ;寄存器寻址SP 寄存器间接寻址

⑻ MOV EAX,COUNT[EDX] ;寄存器寻址相对的寄存器间接寻址(286 扩展指令)

⑼ IMUL AX,BX,34H ;寄存器寻址,寄存器寻址,立即数寻址(286 扩展指令)

⑽ JMP FAR PTR LABEL ;段间直接转移

2、指出下列指令语法是否正确,若不正确请说明原因。 ⑴ MOV DS,0100H ;× ,段寄存器不能直接赋立即数。 ⑵ MOV BP,AL ;×,操作数类型不匹配

⑶ XCHG AX,2000H ;×,立即数不能用于交换指令 ⑷ OUT 310H,AL ;×,端口直接寻址不能超出00-FFH ⑸ MOV BX,[BX] ;√ ⑹ MOV ES:[BX+DI],AX ;√

⑺ MOV AX,[SI+DI] ;×,不能同时用两个变址寄存器间接寻址 ⑻ MOV SS:[BX+SI+100H],BX ;√ ⑼ AND AX,BL ;×,操作数类型不匹配

⑽ MOV DX,DS:[BP] ;√

⑾ MOV [BX],[SI] ;×,不能用MOV 指令直接在存储器单元间传送数据

⑿ MOV CS,[1000] ;×,不能用MOV 指令向CS 寄存器写入数据 ⒀ IN AL,BX ;×,不能用BX 作为寻址I/O 的指针

3、设(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A1H,[232F7H]=3280H,

[264E5H]=2450H。若独立执行下列指令后,请给出对应IP 寄存器的内容。 ⑴ JMP BX ;

答:执行该指令将(BX)送IP,所以,执行后(IP)= 1256H。 ⑵ JMP [BX][SI];

答:执行该指令将DS 段由(BX)+(SI)所指字单元的内容送IP。 因为2000H×10H+(1256H+528FH)=264E5H,所以,执行后(IP)=2450H。 补充:JMP [BX+20A1H]; 答:该指令执行后(IP)=3280H 6、有如下程序: MOV AL,45H ADD AL,71H DAA

MOV BL,AL MOV AL,19H ADC AL,12H DAA MOV BH,AL

执行后(BX)=?,标志位(PF)=?和(CF)=?

答:该程序执行时,各相关寄存器和标志位的变化过程如下: MOV AL,45H ;(AL)=45H

ADD AL,71H ;(AL)=B6H,(PF)=0,(CF)=0 DAA ;(AL)=16H,(PF)=0,(CF)=1 MOV BL,AL ;(BL)=16H MOV AL,19H ;(AL)=19H

ADC AL,12H ;(AL)=2CH,(PF)=0,(CF)=0 DAA ;(AL)=32H,(PF)=0,(CF)=0 MOV BH,AL ;(BH)=32H

执行后(BX)=3216H,标志位(PF)=0,(CF)=0 7、执行下列程序段,指出此程序段的功能。 ⑴ MOV CX,10 LEA SI,First LEA DI, Second

REP MOVSB

答:该程序段的功能是将存于DS:First 开始的10 个字节的内容传送到ES:Second 开始的10 个字节单元中。 ⑵ CLD

LEA DI,[0404H] MOV CX,0080H XOR AX,AX REP STOSW

答:该程序段的功能是在ES:0404H 单元开始,依次填入80H 个字的0。(即ES:0404H——ES:0503H 共256 个字节单元清0) 8、试用指令实现: ⑴ AL 寄存器低4 位清0; 答:AND AL,0F0H;

⑵ 测试DL 寄存器的低2 位是否为0,若是,则将0 送入AL 寄存器;否则将1 送入AL 寄存器。 答:TEST DL,03H JZ z MOV AL,1 JMP ABC

Z: MOV AL,0 ABC: ...

第四章习题解答(P195) 2、有下列数据段: DATA SEGMENT MAX EQU 03F9H VAL1 EQU MAX MOD 0AH VAL2 EQU VAL1*2 BUFF DB 4,5,‘1234’ BUF2 DB ? LEND EQU BUF2-BUFF DATA ENDS

请写出数据段中MAX,VAL1,VAL2,LEND 符号所对应的值。 答:上述程序的数据段中

MAX=03F9H,VAL1=03F9H MOD 0AH=7,VAL2=VAL1*2=7*2=0EH,LEND=BUF2-BUFF=0006-0000=0006H

段内偏移地标号 址 BUFF 0000 0001 04 05 数据 备注 BUF2

0002 0003 0004 0005 0006 ?? 31 32 33 34 00 ‘1’ ‘2’ ‘3’ ‘4’ 3、设下列指令语句中的标识符均为字变量,请指出哪些指令是非法的,并指出其错误之处。

⑴MOV WORD1 [BX+2][DI],AX ;√

⑵MOV AX,WORD1[DX] ;×,DX 不能作为寻址内存的指针。 ⑶MOV WORD1,WORD2 ;×,内存储器单元之间不能直接传送。 ⑷MOV SWORD,DS ;√

⑸MOV SP,DWORD[BX][SI] ;×,DWORD 是保留字 ⑹MOV [BX][SI],CX ;√

⑺MOV AX,WORD1+WORD2 ;×,两个变量不能直接相加 ⑻MOV AX,WORD2+0FH ;√ ⑼MOV BX,0FFSET WORD1 ;√

⑽MOV SI,OFFSET WORD2[BX] ;×,OFFSET 后应跟变量或标号

9、巳知X,Y,Z 被赋值如下: X EQU 60 Y EQU 70 Z EQU 8

试求下列表达式的值: ⑴X * Y-Z ⑵X/8+Y ⑶X MOD (Y/Z) ⑷X *(Y MOD 2) ⑸X GE Y ⑹Y AND Z

解: ⑴ X * Y-Z = 60*70-8=4192=1060H ⑵ X/8+Y =77.5=4DH ⑶ X MOD (Y/Z)=4 ⑷ X *(Y MOD 2)=0 ⑸ X GE Y =0 ⑹ Y AND Z =0

10、设有一个有符号数组,共M 个字,试编写一程序求其中最大的数,若需求绝对值最大的数,程序

应如何修改?又若数组元素为无符号数,求最大数的程序应如何修改?

解:⑴在有符号数组中找出最大数的程序 data segment m equ 10 dat dw m dup(?) max dw ? data ends code segment

assume cs:code,ds:data main proc far start:mov ax,data mov ds,ax mov ax,dat mov max,ax cld lea si,dat mov cx,m l1: lodsw cmp ax,max jng lab mov max,ax

lab: loop l1 mov ah,4ch int 21h main endp code ends end start

⑵在有符号数组中找出绝对值最大数的程序 在LODSW 指令后插入: And ax,ax Jns lab1 Neg ax

lab1: cmp ax,max

初始化时,(MAX)=0(最小的绝对值) ⑶在无符号数组中找出最大数的程序 把条件判断指令: Jng lab 改为:jbe lab

12、设有两个等字长、字节型字符串,试编写一汇编子程序,比较它们是否完全相同;若相同则将字

符Y 送入AL 中,否则将字符N 送入AL 中。

解:根据题意编写程序: data segment str1 db 'aSdas' str2 db 'asdas' data ends code segment

assume cs:code,ds:data start : mov ax,data mov ds,ax mov es,ax lea si,str1 lea di,str2 mov cx,5 repz cmpsb jnz labne mov al,'Y' jmp exit labne:mov al,'N' exit:mov ah,4ch int 21h

code ends end start

第五章习题解答(P233)

⒈ 已知8086 CPU 中当前段寄存器的基地址(DS)=021FH,(ES)=0A32H,(CS)=234EH,则上述各段在存储器空间中物理地址的首地址号及末地址号是什么?

解:根据题意,各段的首末地址分别是:

DS 段首地址:021FH*10H+0=021F0H,末地址:021FH*10H+0FFFFH=121EFH ES 段首地址:0A32H*10H+0=0A320H,末地址:0A32H*10H+0FFFFH=1A31FH CS 段首地址:234EH*10H+0=234E0H,末地址:234EH*10H+0FFFFH=334DFH ⒉ 假若8086 CPU 中,(CS)=234EH,已知物理地址为25432H,若(CS)的内容被指定成1A31H,则物理地址应为什么地址号? 解:先根据题意求段内偏移地址25432H-234E*10H=1F52H; 当(CS)的内容变为1A31H 时,则物理地址应为:1A31H*10H+1F52H=1C262H

⒌ 在8086 中,堆栈操作是字操作,还是字节操作?已知(SS)=1050H,(SP)=0006H,(AX)=1234H。

若执行对AX 的压栈操作(即执行PUSH AX),操作后则(AX)存放在何处?并指出执行此操作时8086输出的状态信息是何种编码,总线信号哪些应有效?

解:在8086 中,堆栈操作是字操作;

在题目所给条件下执行PUSH AX 后,(SP)=(SP)-2=0004H,(AX)的内容存在内存物理地址

1050H*10H+0004H=10504H 字单元中;

在PUSH AX 指令时,8086 输出的状态信息为:S0S1S2=110(写内存),S4S3=01(访问堆栈段),

S5=0,禁止可屏蔽中断,S6=0,8086 与总线相连;

总线信号中:WR#、BHE#/S7 为低电平,RD#、M/IO#、DT/R#为高电平。 ⒍ 试指出8086 和8088 CPU 有哪些区别。 解:8086 与8088 CPU 的主要区别有:

内部:指令队列长度8086 为6 字节,8088 为4 字节; 外部引脚:8086 的M/IO#引脚,在8088 中为IO/M#,

8086 的AD0-AD15 引脚为地址数据复用,而8088 只有AD0-AD7 为地址数据复用;

8086 的BHE#/S7 引脚高字节数据有效和状态S7,而8088 为SS0#。

第6章 习题解答(P271)

⒊ 依照编程方式的不同,ROM分为哪几类?各有何特点(重点说明E2PROM与FLASH存储器的区别)?

解:依照编程方式的不同,ROM分为三类:

⑴ 掩膜型ROM(ROM),其特点是:用户将要写入芯片的数据提供给芯片生产商,在生产该芯片的最后一道掩膜工艺时,将数据写入芯片,用户以后只能读出不能写入;

⑵现场可编程ROM(PROM),其特点是:由于内部器件的一次性编程,不可再生特性,所以用户只可在现场一次性对芯片编程,不能更改; ⑶可改写的ROM(EPROM),其特点是:用户可多次对其编程。其中用紫外线擦除再用电编程的EPROM,必须从用户板上拆下后用紫外线照射擦除,再用专用编程器对其进行改写,使用不方便,目前很少使用;可用电擦除的E2PROM,可在用户板上用电信号对其进行字节或全部擦除和改写,使用很方便;FLASH是一种新型的电擦除EPROM,它具有E2PROM的所有特性,还具有集成度高,速度快,成本低等特点,是目前使用最广泛的ROM存储器。

⒍ 对下列RAM芯片组排列,各需要多少个RAM芯片?多少个芯片组?多少根片内地址线?若和8088 CPU相连,则又有多少根片选地址线? (1) 1K×4位芯片组成16K×8位存储空间;

解:当用单片容量为1K×4的RAM组成总容量为16K×8的存储器时:

① 需要的总芯片数为(16×1024/1×1024)×(8/4)=32(片) ② 需要的芯片组数为16×1024/1×1024=16 (组)

③ 片内地址线数为log2(210)=10(根)

④ 芯片组选择地址线数为log2(16×210)-10=4 (根)

(2) 8K×8位芯片组成512K×8位存储空间。

解:当用单片容量为8K×8位的RAM组成总容量为512K×8的存储器时:

① 需要的总芯片数为(512×1024/8×1024)×(8/8)=64(片) ② 需要的芯片组数为512×1024/8×1024=64 (组) ③ 片内地址线数为 log2(8×210)=13(根)

④ 芯片组选择地址线数为log2(512×210)-13=6 (根)

⒎ 某微机系统的RAM存储器由4个模块组成,每个模块的容量为128KB,若4个模块的地址连续,起始地址为10000H,则每个模块的首末地址是什么?

解:根据题意,128KB模块的末地址为217-1=1FFFFH,所以各模块的首末地址分别为:

模块1首地址:10000H,末地址:10000H+1FFFFH=2FFFFH

模块2首地址:30000H,末地址:30000H+1FFFFH=4FFFFH 模块3首地址:50000H,末地址:50000H+1FFFFH=6FFFFH 模块4首地址:70000H,末地址:70000H+1FFFFH=8FFFFH ⒏ 设有4K×4位SRAM芯片及8K×8位EPROM芯片,欲与8088 CPU组成16K×8位的存储器空间,请问需要此SRAM及EPROM多少片?它们的片内地址线及片选地址线分别是多少根?假若该16K×8位存储器空间连续,且末地址为FFFFFH,请画出SRAM、EPROM与8088 CPU的连线,并写出各芯片组的地址域。

解:⑴根据8088 CPU的特点,可以用4K×4位SRAM芯片组成8K×8位SRAM,作为随机存取存储器, 则需要4K×4位SRAM

(8K/4K)*(8/4)=4片,

再用1片8K×8位EPROM芯片,作为只读存储器。 ⑵ 4K×4位SRAM 的片内地址线有lg2(4×210)=12 (根) 8K×4位EPROM 的片内地址线有lg2(8×210)=13 (根) ⑶ 假若该16K×8位存储器空间连续,且末地址为FFFFFH,则各芯片地址分配:

8KROM的末地址:FFFFFH,首地址为:FFFFFH-1FFFH=FE000H 4K×8位SRAM 2#末地址:FDFFFH,首地址为:FDFFFH-FFFH=FD000H

4K×8位SRAM 1#末地址:FCFFFH,首地址为:FCFFFH-FFFH=FC000H

⑷ 画出SRAM、EPROM与8088 CPU的连线图 ? 确定片选线

C B A 芯片内地址 芯片 A19 A18 A17 A16 A15 A14 A13 A12 ?A2 A1 A0

1 1 1 1 1 1 0 0 0 0 ?. 0 0 0 4KSRAM 2#

1 1 1 1 1 1 0 0 1 1 ?. 1 1 1 4KSRAM 2#

1 1 1 1 1 1 0 1 0 0 ?. 0 0 0 4KSRAM 2#

1 1 1 1 1 1 0 1 1 1 ?. 1 1 1 4KSRAM 2#

1 1 1 1 1 1 1 0 0 0 ?. 0 0 0 8KROM 1 1 1 1 1 1 1 1 1 1 ?. 1 1 1 8KROM ? 画出逻辑电路图

×8位×8位×8位×8位

但是,上述电路不能满足8088自启动,需将8K×8位SRAM移到地址00000H-01FFFH。(包含中断向量区)

第7章 习题解答(P310)

⒈ 80386、80486共有哪几种工作模式? 答:80386有实模式和保护模式两种工作模式;

80486有实模式、保护模式和虚拟8086模式三种工作模式。 ⒉ 实地址模式下,20位物理地址是如何形成的?若巳知逻辑地址为C018:FE7FH,试求物理地址。

答:在实地址模式下,20位物理地址的形成方法是:

物理地址=段地址×10H+段内位移量

若逻辑地址为C018:FE7FH,则物理地址为: 物理地址= C018H×10H+ FE7FH=CFFFFH ⒊ 何为虚拟存储器?

答:虚拟存储器是程序占有的空间。虚拟存储器地址是一种概念性的逻辑地址,并非实际物理地址。虚拟存储系统是在存储体系层次结构(辅存---内存---高速缓存)基础上,通过存储器管理部件MMU,进行虚拟地址和实地址自动变换而实现的,变换过程对每个编程者完全透明的。所以,虚拟存储器的大小由CPU的体系结构确定。

⒒ 若已知某数据段描述符的内容如下图所示,它所对应的段选择符为020DH,试回答下列问题:

15 8 7

0

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 +7 +6

+5 +4

+3 +2

+1 +0

⑴ 该数据段描述符在局部描述符表LDT中还是在全局描述符表GDT中?

⑵ 该描述符所描述的数据段的基地址和段界限是多少?

⑶ 指令序列: MOV AX,020DH MOV DS,AX

执行时,DS段寄存器高速缓冲存储器的内容是什么?试分别说明32位基地址值、20位界限值及12位存取权字段的具体内容。 解:⑴ 段选择符的值020DH展开:0000 0010 0000 1101,TI位为1,说明该数据段描述符在局部描述符表LDT中。

⑵ 该描述符所描述的数据段的基地址为:000A0000H (图中蓝色区域)

段界限为:003FFH (图中红色区域)

⑶ 执行时,DS段寄存器高速缓冲存储器的内容对应020DH所指向的段描述符;

32位基地址值:000A0000H 20位界限值:003FFH 12位存取权字段:4B2H

⒕ 设线性地址为25674890H,试通过页目录表和页表将其转换为物理地址。设(CR3)=28345×××;访问页目录前内存中已有5个页表(即页表基地址为00000000H-00004000H)被访问过并已定位;访问基址为00005000H的页表前,内存已有60页被定位。

解:⑴将线性地址25674890H分解为页目录项、页表项和位移量

0010 0101 01 10 0111 0100 1000 1001 0000 页目录项 页表项 位移量

⑵根据(CR3)的内容确定页目录基地址为28345000H,页目录寻址项的地址为:

页目录基地址+目录索引地址×4=28345000H+095H×4= 28345254H ⑶由于访问页目录前内存中已有5个页表,所以(28345254H)=00005H,则页表基地址为:00005000H

页表寻址项的地址为:

页表基地址+页表索引地址×4=00005000H+274H×4=000059D0H ⑷由于访问页表前内存中已有60页被定位,所以(000059D0H)=0003CH,则页帧基地址为:0003C000H

⑸要寻址的存储单元的物理地址为: 页帧基地址+线性地址低=0003C000H+890H=0003C890H

12

位(位移量)

第8章 习题解答(P345)

⒌ 何谓中断向量、向量地址和中断向量表? 答:中断向量:是指中断服务程序的首地址;

例如:在8259实验中,PC机键盘中断服务程序的首地址为3ED3:00C1H。

向量地址:是指“中断服务程序首地址”所存放处的第一字节的地址;

例如:在8259实验中,PC机键盘中断在主片8259的IRQ1上,向量地址为:

(08H+01H)*4=0024H,即0000:0024H。

中断向量表:是指处理器所有中断向量集中存放在一起所形成的一个表格。

例如:80X86系列微处理器共有256个中断向量,其中断向量表为: 0000:0000-0000:03FFH

⒕ 何谓初始化命令字?8259A有哪几个初始化命令字?各命令字的主要功能是什么?

答:初始化命令字是可编程芯片在正式工作前,进行工作方式设定的命令字,用来指定可编程芯片按照与硬件连线相匹配的一种工作方式;8259A有共4个初始化命令字,各命令字的主要功能是:

ICW1主要用来设置中断请求信号的有效形式、单片或级联使用、有/无ICW4;

ICW2用来设置中断类型码的基值;

ICW3只用于级联方式下表明主从片8259A之间的连接关系;

ICW4用来设置中断嵌套方式、缓冲方式、结束方式和工作在何种CPU系统。

⒖ 何谓操作命令字?8259A有哪几个操作命令字?各命令字的主要功能是什么?

答:⑴ 操作命令字是8259初始化后,在正常运行过程中为了达到某种运行要求而使用的操作命令;

⑵ 8259A有3个操作命令字,分别是OCW1,OCW2和OCW3; ⑶ 8259A各操作命令字的主要功能是:

OCW1用来设置中断源的屏蔽状态(中断屏蔽寄存器); OCW2用来控制中断结束方式和修改优先权管理方式;

本文来源:https://www.bwwdw.com/article/oxt3.html

Top