微机原理习题 下载本文

内容发布更新时间 : 2024/10/1 12:50:29星期一 下面是文章的全部内容请认真阅读。

微机原理习题

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 * 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, (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)=(09226H)=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)=(09226H)中的内容分别送给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])=(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 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] 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=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,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 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芯片的译码电路如图所示,请计算该芯片的地址范围及存储容量。

解:

Y6 : 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 1 1 1 F F 7 F F

Y7 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 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 所以该芯片的地址范围是Y6:FF7FFH~FF000H或Y7:FFFFFH~FF800H 存储容量:有11根片内地址线,所以容量为211=2KB。

8.某一存储器系统如图习5-2所示,回答它们的存储容量各是多少?RAM和EPROM存

储器地址分配范围各是多少?

解:RAM的容量:有11根片内地址线,所以211=2KB

EPROM的容量:有12根片内地址线,所以212=4KB RAM地址范围:

Y1 : 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 1 因为A11不确定,所以可能有两种情况:A11为0 或A11为1。 RAM地址范围,F9000~F97FF或F9800~F9FFF EPROM地址范围:

Y5 : 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 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 2)16位按照先填低8位再填高8位。 63H

34H 41H 12H 42H 05H 43H 00H 44H 42H ** 41H ** 44H ** 43H 01 ** 03 ** 01 01H 03 00H 03H 00H 01H 00H 03H 00H 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就是。