西南交通大学2007-2008年第二学期微机原理与接口技术考试试卷

一、填空题

1、若A=+63,Y=-107,按8位二进制表示,则[A+B]补=()B,[A-B]补=()B。

A+B=-44,其中44=101100B,则-44的原码为10101100B,反码为11010011B,补码为11010100B

A-B=170=10101010B,因为是正数,所以原码=反码=补码=10101010B

答案:11010100;10101010

2、已知某数据块由100个字节组成且在内存中连续存放。首字节逻辑地址为2000H:2537H,则该数据块首字节的物理地址PA=()H,末字节段基地址为()H,末字节偏移地址为()H。

PA=2000H*10H+2537H=22537H

段基地址是不变的,因为都在一个段

首地址在0号,末地址在99号,中间差99个十进制。99=63H,所以末字节偏移地址=2537H+63H=259AH

答案:22537;2000;259A 

3、设SS=3000H,SP=1200H,执行指令PUSHF后,堆栈栈顶物理地址为()。

PUSHF是将FLAGS(16位)寄存器内容压入SS堆栈寄存器中,SS指向栈底,SP指向栈顶,PUSH操作会把高字节存入SP-1单元,会把低字节存入SP-2单元。故,栈顶在SP-2的位置,也就是1200H-2H=11FEH,物理地址为SS*19H+SP=311FEH。

答案:311FEH

4、8086CPU执行指令INT 21H时,其中断向量取自中断向量表的()单元。

中断类型号为21H,那么在中断向量表中的起始位置为21H*4=84H,结束位置为21H*4+3=87H。

答案:84H~87H

5、某半导体存储芯片的容量为4K*8,则寻址该芯片内任意存储单元的地址编码需要()位二进制数。

容量4K*8代表有4K个内存单元,有4K个内存地址编码,而4K=2^2*2^10=2^12,也就是需要12位二进制数。

答案:12

6、8086CPU的复位信号是一个符号为RESET的控制信号,高电平有效。复位后,8086CPU处于初始化状态。这时,CS:IP的物理地址为()H,其所有的寄存器全部(),指令队列()。

RESET以后,除了CS=FFFFH,其他都为0000H。故CS:IP的物理地址为FFFFH*10H+0000H=FFFF0H。

答案:FFFF0H;清零;清零

7、设8253的计数器1工作于方式0,以二进制方式计数,初值16位。则初始化8253芯片时,其控制字位()。

答案:01110000B

8、写出四条可以使AX清零的指令()。

答案:MOV AX,0        AND AX,0       SUB AX,AX       XOR AX,AX

9、PUSH AX入栈指令为()寻址方式,MOV AX,ES:[BX]传输指令的源操作数为()寻址方式,目的操作数为()寻址方式。

答案:固定(我不是很懂);寄存器间接;寄存器

10、执行下列程序段:

MOV AX,08701H
MOV BX,3589H
XOR AX,BX
OR BX,AX

后:AX=(),BX=()。

AX  =1000 0111 0000 0001

BX  =0011 0101 1000 1001   进行异或运算后

AX  =1011 0010 1000 1000=B288H   此时BX不变

BX  =0011 0101 1000 1001  进行或运算后

BX  =1011 0111 1000 1001=B789H

答案:B288H;B789H

二、简答题

1、什么是时序?描述总线操作微处理器时序有三级:指令周期、总线周期、时钟周期,请描述它们各自的定义,及其在构成CPU时序上,它们之间的具体关系。

答案:时序是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。

指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期。

总线周期是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程。

时钟周期是CPU的时间基准,由计算机的主频决定。如8086的主频为5MHz,则时钟周期为200ns,8088的基本总线周期需要4个时钟周期。

2、若数据段定义如下:

DATA SEGMENT AT 1000H
ORG 0100H
DATA1 DB 10H,52H,3 DUP(02H)
DATA2 DW 1122H,2 DUP(?)
DATA3 DD 5*20H,0FFEEH
DATA4 DB 'HELLO'
DATA ENDS

“A”字符的ASCII为41H,试画出DATA数据段的存储示意图。

答案:DATA1 (字节类型)    DATA2(字类型)               DATA3(双字类型)         DATA4(字类型)

1000H:0100H 10H
1000H:0101H 52H
1000H:0102H 02H
1000H:0103H 02H
1000H:0104H 02H
   
1000H:0105H 22H
1000H:0106H 11H
1000H:0107H ?
1000H:0108H ?
1000H:0109H ?
1000H:010AH ?
1000H:010BH A0H
1000H:010CH 00H
1000H:010DH 00H
1000H:010EH 00H
1000H:010FH EEH
1000H:0110H FFH
1000H:0111H 00H
1000H:0112H 00H
1000H:0113H 48H
1000H:0114H 45H
1000H:0115H 4CH
1000H:0116H 4CH
1000H:0117H 4FH

3、程序在数据段中的定义的数据如下:

DATA SEGMENT
VAR DB 'STRING'
    DB 10
    DB 'CODE'
    DB 50
DATA ENDS

请指出下列指令是否正确?为什么?

(1)MOV AX,VAR+5

(2)MOV BX,4*3

         MOV SI,4

         MOV AX,VAR[BX][SI]

(3)MOV BX,6

         MOV SI,3+2

         MOV AX,OFFSET VAR[BX][SI]

         INC [BX]

答案:var的结构是这样的

S
T
R
I
N
G
AH
C
O
D
E
32H

(1)错误。VAR为字节类型,AX为字类型,故类型不匹配

(2)错误。前两条指令对,BX=CH,SI=4H,VAR为字节类型,与AX类型不匹配

(3)错误。前两条指令对,BX=6H,SI=5H,后两条不对(我也不知道原因) 

猜你喜欢

转载自blog.csdn.net/qq_33514421/article/details/105968924