1、1.用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。 解:(1)512*4位RAM构成16KB的存储系统; 需要16KB/512*4=64片;片外地址译码需11位地址线。 (2)1024 * 1位 RAM构成 128KB的存储系统; 需要128KB/1K*8=1024片;片外地址译码需10位地址线; (3)2K * 4位 RAM构成 64KB的存储系统; 需要 64KB/2K * 2=64片;片外地址译码需 9位地址线; (4)64K * 1位 RAM构成 256KB的存储系统 ; 需要 256KB/64K
2、 8位= 32片;片外地址码需 4位地址线。 2.现有一种储存芯片容量为512*4b,若要用它组成4KB的存储容量,需要多少这样的存储芯片?每块芯片需要多少寻址线?而4KB存储系统最少需要多少根寻址线? 4K=4*1024*8位,4*1024*8/512*4=16,所以用512*4的要16块, 512=29所以要寻址线为9 4K=4*1024=22*210所以寻址线为2+10=12 3. 已知(DS)=091DH, (SS)=1E4AH, (AX)=1234H, (BX)=0024H, (CX)=5678H, (BP)=0024H, (SI)=0012H, (DI)=0032H
3、 (09226)=00F6H, (09228)=1E40H, (1E4F6H)=091DH.则下列各指令或程序段分别执行后的结果如何? 1.MOV CL,[BX+20H][SI] 2.MOV [BP][DI],CX 3.LEA BX,[BX+20H][SI] MOV AX,[BX+2] 4.LDS SI,[BX][DI] MOV [SI],BX 5.XCHG CX, [BX+32H] XCHG [BX+20H][SI],AX 解:1.MOV CL,20H[BX][SI];结果(CL)=(DS:[BX+SI+20H])=(091DH:0056H)=(09226
4、H)=0F6H 2.MOV [BP][DI],CX];结果是将CX的值5678H存入内存(SS:[BP+DI])=(1E4AH:0056H)=(1E4F6H)中,即结果是(1E4F6H)=5678H 3.LEA BX,20H[BX][SI]);结果是将内存偏移地址[BX+SI+20H]=0056H送给BX,即结果(BX)=0056H MOV AX,2[BX];结果是(AX)=(DS:[BX+2])=(091DH:0058H)=(09228H)=1E40H 4.LDS SI,[BX][DI];结果是将内存双字单元(DS:[BX+DI])=(091DH:0056H)=(09226
5、H)中的内容分别送给SI和DS,即结果为(SI)=00F6H,(DS)=1E40H MOV [SI],BX;结果是将BX值0024H送给内存单元(DS:[SI])=(1E40H:00F6H)=(1E4F6H)中即最终结果为(1E4F6H)=0024H 5.XCHG CX,32H[BX];结果是将CX的值5678H和内存单元(DS:[BX+32H])=(091DH:0056)=(09226H)中的内容00F6H互换,互换后结果为(CX)=00F6H,(09226H)=5678H XCHG 20H[BX][SI],AX;结果是将AX的值1234H与内存单元(DS:[BX+SI+20H])=
6、091DH:0056H)=(09226H)中的内容5678H互换,互换后结果为(AX)=5678H,(09226H)=1234H 4. 设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H,求以下各指令执行后的值。 1)MOV
7、AX,1352H AX=?1352H 答:AX=1352H 2)MOV AX,[1352H] AX=?26FFH 答:EA=1352H,DS=1000H,内存单元地址=DS×10H+EA=11352H 所以,AX=26FFH 3) MOV 0150H[BX],CH (11350H)=?33H.(11351H)=?3CH 答:因为 EA=BX+0150H=1350H,CH=33H,内存单元地址=DS×10H+1350H=11350H, 所以,(11350H)=33H,(11351H)=3CH (4)MOV AX,0150H[BP]
8、 AX=?5188H 答:因为 EA=BP+0150H=1350H,内存单元的地址=SS×10H+1350H=21350H 所以,AX=5188H 5)POP AX AX=?5188H ,SP=?1354H 答:出栈指令先传送字数据,因为SP=1352H,SS=2000H, 字地址=SS×10H+SP=21352H, 所以,AX=5188H,再修改SP=SP+2=1354H 6)ADD [SI],CX (11354H)=?0ECH ,(11355H)=? 1AH ,SF=?0, ZF=?0, CF=?1, OF=?0 答:EA=
9、SI=1354H;DS=1000H,内存单元的字地址=1000×10H+1354H=11354H 该内存单元的字=0E752H ,CX=339AH;该内存单元的字=E752H E752H +339AH CF=1 1AECH 所以执行指令后,(11355H)=1AH,(11354H)=0ECH, 同时,因为执行加法指令后最高位=0,所以,SF=0,ZF=0,又因为这是两个不同符号的数相加, 故OF=0 7)SUB BH,0150H [BX] [SI] BH=?75H ,SF=?0, ZF=?0, PF=?0 ,CF=?1 ,OF=?0. 5. CPM AX,
10、BX JEG NEXT XCHG AX,BX NEXT: CMP AX,CX JEG DONE XCHG AX,CX DONE : : 试回答:1.程序执行后AX,BX,CX中最大数存放在哪个寄存器中? 2.这三个是带符号数还是无符号数? 答:1、AX 2、JGE是带符号数的比较,所以这三个数是带符号数。 6.阅读程序回答问题 1) MOV AX,BX NOT AX ADD AX,BX INC AX AX=?0000H CF=?无影响 2) MOV BX,0FFFFH MOV
11、 CL,2 SAR BX,CL BX=?FFFFH CF=?1 3)AND AL,AL JZ BRCH1 试回答: RCR AL,1 当AL=0 时,程序转向BRCH1 JZ BRCH2 当AL=01 时,程序转向BRCH2 RCL AL,1 当AL=FFH 时,程序转向BRCH3 INC AL JZ BRCH3 : 7.有-2732EPROM芯片的译码电路如图所示,请计算该芯片的地址范围及存储容量。 解:
12、6 : A19A18A17A16 A15A14A13A12 A11 A10A9A8 A7A6A5A4 A3A2A1A0 最小 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 F F 0 0 0 最大 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
13、 1 1 1 F F 7 F F 7 A19A18A17A16 A15A14A13A12 A11 A10A9A8 A7A6A5A4 A3A2A1A0 最小 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 F F 8 0
14、 0 最大 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F F F F F 所以该芯片的地址范围是6:FF7FFH~FF000H或7:FFFFFH~FF800H 存储容量:有11根片内地址线,所以容量为211=2KB。 8.某一存储器系统如图习5-2所示,回答它们的存储容量各是多少?RAM和EPROM存储器地址分配范围各是多少? 解:RAM
15、的容量:有11根片内地址线,所以211=2KB EPROM的容量:有12根片内地址线,所以212=4KB RAM地址范围: 1 : A19A18A17A16 A15A14A13A12 A11 A10A9A8 A7A6A5A4 A3A2A1A0 最小 1 1 1 1 1 0 0 1 -- 0 0 0 0 0 0 0 0 0 0 0 最大 1 1 1 1 1 0 0 1 -- 1 1 1 1 1 1 1 1 1 1
16、 1 因为A11不确定,所以可能有两种情况:A11为0 或A11为1。 RAM地址范围,F9000~F97FF或F9800~F9FFF EPROM地址范围: 5 : A19A18A17A16 A15A14A13A12 A11 A10A9A8 A7A6A5A4 A3A2A1A0 最小 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 最大 1 1 1 1 1 1 0 1 1 1 1 1 1 1
17、 1 1 1 1 1 1 EPROM地址范围,FD000~FEFFF 9.画出下面语句中的数据在存储器中的储存状况。 1) ARRAYB DB 63, 63H, ‘ABCD’, 3DUP(?), 2DUP(1,3) 2) ARRAYW DW 1234H, ‘AB’, ‘CD’,?, 2DUP(1,3) 解:1)63划为16进制3FH 3FH 63H 41H 42H 43H 44H ** ** ** 01 03 01 03 34H 12H 05H 00H 42H 41H 44
18、H 43H ** ** 01H 00H 03H 00H 01H 00H 03H 00H 2)16位按照先填低8位再填高8位。 10.程序中数据段定义如下: DATA1 DW ? DATA2 DB 32DUP(?) DATA3 DD ? DLENGTH EQU $-DATA1 此时DLENGTH的值是多少? $-DATA1表示从开始的DATA1到操作的当前行的存储单元个数。 DLENGTH =2+32+4=38 EQU(等于) DW(字,16位) DB(字节,8位) DD(32位) 11.1)以DA1为首字节的连续存储单元中存放20H个重复的素具序列:2、3、10个4、1个7。 DA1 DB 20HDUP(2,3, 10DUP(4),7) 2)用等值语句给符号COUNT赋以DA1为首地址的数据区共占有的字节数此等之语句必须放在最后一语句。 COUNT EQU $-DA1 直接寻址:直接给出地址,关键字[****H]等 寄存器间接寻址:[BX][SI][DI],单独出现。 基址寻址:看到BX/BP+偏移量,就是。 变址寻址:看到SI/DI+偏移量,就是。 基址变址寻址: 看到BX/B+PSI/DI就是。






