由于地址空间为128K,需要的地址线总数为17根(217=128K)。其中,片内地址线16根(216 =64K),片选地址线1根(17-16=1,)。每8个2164芯片构成一组,进行位扩展,得到64KB存储器。两个这样的“组”进行地址扩展,构成128KB的存储器。
16. 某8088系统用2764 ROM芯片和6264 SRAM芯片构成16KB的内存。其中,RAM
的地址范围为FC000H-FDFFFH,ROM的地址范围为FE000H-FFFFFH。试利用74LS138译码,画出存储器与CPU的连接图,并标出总线信号名称。
2764和6264均为8KB的存储芯片,需要13根地址线(A0~A12)用于片内寻址。8088系统的其他地址线(A13~A19)用于产生片选信号。
FC000H的地址线状态为:1111 110 0 0000 0000 0000 FE000H的地址线状态为:1111 111 0 0000 0000 0000
将A13~A15用作译码输入,其他地址(A16~A19=1111)用作译码控制,可以得到如下译码控制电路,连接如下图所示。
17. 存储周期指的是( A )。
A.存储器进行连续读或写操作所允许的最短时间间隔 B.存储器的读出周期 C.存储器进行连续写操作所允许的最短时间间隔 D.存储器的写入周期 存储周期是指连续两次访问存储器之间所需的最小时间。存取时间是CPU访问一次存储器(写入和读出)所需的时间。存储周期等于存取时间加上存储器的恢复时间。
所以应选择A。
18. 某一EPROM芯片,其容量为32K×8,除电源和地线外,最小的输入引脚和输出引
脚分别为( C )。
A. 15和8; B.32和8; C.17和8; D.18和10;
容量为32K×8的EPROM芯片,其数据线为8根,地址线为15根,片选线1根,读写控制线1根。其中地址线、片选线、读写控制线均为EPROM的输入信号,共17根。数据线在正常工作状态下用于EPROM输出,计8根。
所以应选择C。
习 题 三
1. 如果用24b储存一个无符号数,这个数的范围是什么?如果储存的是一个补码表示
的有符号数,那么这个数的范围又是什么?
答:如果用24b储存一个无符号数,这个数的范围应为:0~224-1 如果用24b储存一个补码表示的有符号数,这个数的范围应为:-223~+223-1 2. 用符号“〉”把下面的数按从大到小的顺序“连接”起来
[X1]补=10110111 [X2]原=10110111 [X3]反=10110111 [X4]补=10110110 [X5]无符号数
=10110111
解:X1=-0100 1001B, X2=-011 0111B, X3=-0100 1000B, X4=-0100 1010B, X5=+1011 0111B
因此:X5>X2>X3>X1>X4
3. 用8位补码完成下列运算,用二进制“真值”的格式给出运算结果,并指出运算后
CF、OF、ZF、SF、PF标志位的状态。 (1)127+126 (2)126-127 (3)-100-120 (4)-100-(-120) 解: (1)127+126 [127]补=0111 1111,[126]补=0111 1110,
[127+126]补=1111 1101,[127+126]=-0000 0011(溢出) COZSP=01010 (2)126-127 [126]补=0111 1110,[-127]补=1000 0001,
[126-127]补=1111 1111,[126-127]=-000 0001 COZSP=10011 (3)-100-120 [-100]补=1001 1100,[-120]补=1000 1000,
[-100-120]补=0010 0100,[-100-120]=+0010 0100(溢出) COZSP=01001 (4)-100-(-120) [-100]补=1001 1100,[-120]补=1000 1000,[ [-120]补]求补=0111 1000,
[-100-(-120)]补=0001 0100,[-100-(-120)]=+0001 0100 COZSP=00001 4. 把二进制代码1001011101011000分别“看作”是: (1)二进制无符号数 (2)二进制补码 (3)压缩BCD码 (4)非压缩BCD码 哪一种情况下它代表的“值”最大?
答:看作二进制无符号数时,它代表的“值”最大。
分析:看作二进制补码时,它代表一个负数,而其它的情况下,它均为正数。因此,看作二进制补码时,它代表的值最小。
把这组代码用十六进制数字形式写出:9758
对于无符号数,它的值等于十六进制的9758H; 对于压缩BCD码,它的值等于十进制的9758,显然小于9758H; 对于非压缩BCD码,它的值等于十进制的78,显然更小于9758H; 因此,看作二进制无符号数时,它代表的“值”最大。 5. 某数据段内有如下数据定义: X db 30, 30H, ‘ABC’, 2-3, ?, 11001010B
dw 0FFH,-2, “CD”
Y dd 20 dup(15, 3 dup(?), 0) Z db 3 dup(?)
W dw Z-X
假设变量X的偏移地址为20H。
(1) 写出变量X各数据在内存中的具体位置和相关内存单元的值。 (2) 写出变量Y,Z的偏移地址。
0020H(3) 写出变量W的值 X1EH30H答:(1)变量X各数据在内存中的具体位置和相关内存单元
41H的值如右图。
42H变量Y的偏移地址为002EH; 43H0FFH变量Z的偏移地址为002EH+4×5×20=01BEH
00H变量W的值等于变量Z和X偏移地址之差 0CAH01BEH-0020H=019EH
0FFH它等于变量X、Y所占用内存单元的字节数。
00H6. 0FEH0FFH7.
44H8. 现有(DS)=2000H ,(BX)=0100H,(SI)=0002H,(20100H)
43H=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,
002EHY
(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,说明下列指令执行后AX寄存器的内容。 (1)MOV AX, 1200H (2)MOV AX, BX
(3)MOV AX, [1200H] (4)MOV AX, [BX]
(5)MOV AX, 1100H[BX] (6)MOV AX, [BX][SI]
(7)MOV AX, 1100H[BX][SI] 答 :(1)指令MOV AX, 1200H执行后,(AX)=1200H (立即数操作数)。 (2)指令MOV AX, BX执行后,(AX)=0100H (寄存器操作数)。 (3)指令MOV AX, [1200H] 执行后,(AX)=4C2AH(直接地址,EA=1200H) (4)指令MOV AX, [BX] 执行后,(AX)=3412H(寄存器间接寻址,EA=0100H) (5)指令MOV AX, 1100H[BX] 执行后,(AX)= 4C2AH(相对地址,EA=1200H) (6)指令MOV AX, [BX][SI] 执行后,(AX)=7856H(基址变址寻址,EA=0102H)
(7)指令MOV AX, 1100H[BX][SI] 执行后,(AX)=65B7H (相对基址变址寻址,EA=1202H)
9. 下面两条指令的功能有什么区别? MOV AX, BX MOV AX, [BX]
答:指令“MOV AX, BX”把BX寄存器的内容装入到AX中。 指令“MOV AX, [BX]”把内存储器一个字的内容装入AX寄存器。该字的段基址在DS中,偏移地址在BX中。 10. 11. 12.
13. 编写循环结构程序,进行下列计算,结果存入RESULT内存单元
(1) 1+2+3+4+5+6+ ?? +100
(2) 1+3+5+7+9+11+ ?? +99 (3) 2+4+6+8+10+ ?? +100 (4) 1+4+7+10+13+ ?? +100 (5) 11+22+33+44+ ?? +99 解: (1) CODE SEGMENT ASSUME CS: CODE RESULT DW ? START: XOR AX, AX MOV CX, 100 AGAIN: ADD AX, CX LOOP AGAIN MOV RESULT, AX MOV AX, 4C00H INT 21H CODE ENDS END START (2)CODE SEGMENT ASSUME CS: CODE RESULT DW ? START: XOR AX, AX MOV CX, 50 MOV BX, 1 AGAIN: ADD AX, BX ADD BX, 2 LOOP AGAIN MOV RESULT, AX MOV AX, 4C00H INT 21H CODE ENDS END START (3) CODE SEGMENT ASSUME CS: CODE RESULT DW ? START: XOR AX, AX MOV CX, 50 MOV BX, 2 AGAIN: ADD AX, BX ADD BX, 2 LOOP AGAIN MOV RESULT, AX