10.请写出时钟周期、总线周期与指令周期的含义。
答:时钟周期是CPU的基本时间计量单位,即计算机主频的倒数。
总线周期是指CPU通过总线对存储器或I/O端口进行一次访问(读/写操作)所需
的时间;一个总线周期至少包含4个时钟周期,即T1、T2、T3、T4。
指令周期是指计算机完成一条指令的执行所需要的时间。
11.在总线周期的T1、T2、T3和T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态TW?TW插入的位置?
答:在T1状态,BIU把要访问的存储器单元或I/O端口的地址输出到总线。
在T2状态,地址/数据复用总线停止输出地址信号。若是读周期,T2中地址/数据复用总线处于高阻状态,CPU有足够的时间使其从输出方式变为输入方式;若为写周期,CPU不必转变输出方式。
在T3~T4状态,CPU与存储器或I/O接口进行数据传送。CPU若与慢速的存储器或I/O端口之间的数据传送,READY信号在T3状态时仍为低电平,则在T3之后插入等待状态TW,加入TW的个数由外设的速度与CPU速度匹配决定。
12.8088 CPU 工作在最小模式下,请回答以下问题: (1)CPU访问存储器时,需要哪些信号? (2)CPU访问I/O接口时,需要哪些信号?
(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻状态?
答:(1)利用A15~ A8,AD7~AD0,ALE,WR,RD,DT/R,DEN,IO/M。 (2)利用A15~ A8,AD7~AD0,ALE,WR,RD,DT/R,DEN,IO/M。 (3)当HOLD有效并得到响应时,CPU中呈高阻状态的信号有:A15~ A8,AD7~AD0,
ALE,WR,RD,DT/R,DEN,IO/M。
第三章
1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令。 (1) 将立即数1234H送入寄存器BX; (2) 将立即数1234H送入段寄存器DS;
(3) 将变址寄存器DI的内容送入数据段中2000H的存储单元; (4) 把数据段中2000H存储单元的内容送段寄存器ES; (5) 将立即数0ABH与AL相加,结果送回AL; (6) 把BX与CX寄存器内容相加,结果送入BX;
(7) 寄存器BX中的低4位内容保持不变,其它位按位取反,结果仍在BX中; (8) 实现AX与8位数-128的乘积运算; (9) 实现CX中高、低8位内容的交换;
(10) 将DX中D0、D5、D8位置1,其余位保持不变。 解: (1) MOV BX, 1234H
(2) MOV AX, 1234H
MOV DS, AX (3) MOV [2000H], DI (4) MOV ES,[2000H] (5) ADD AL,0ABH (6) ADD BX,CX (7) XOR BX,0FFF0H (8) MOV BL,80H IMUL BL
(9) XCHG CH,CL (10) OR DX,0121H
2.顺序执行下列指令,填写指令后的空格。
MOV AX,2000H ;AH= 20H MOV DS,AX ;AL= 00H ;DS= 2000H MOV BX,2030H ;BH= 20H ;BL= 30H MOV SI,BX ;SI= 2030H PUSH BX
POP CX ;BX= 2030H ;CX= 2030H XCHG AX,SI ;AX= 2030H ;SI= 2000H ADD AX,0F43H ;AX= 2F73H ;CF= 0 CWD ;AX= 2F73H ;DX= 0000H SHL AL,CL ;AL= 00H ;CL= 30H OR AX,5555H ;AX= 7F55H AND AX,0AA55H ;AX= 2A55H MOV BL,0FFH
MUL BL ;AX= 54ABH IMUL BL ;AX= 0055H 3.指出下列各条指令中源操作数字段的寻址方式。 (1) MOV AX,0ABH ;立即寻址方式 (2) MOV AX,BX ;寄存器寻址方式
(3) MOV AX,[1234H] ;直接寻址方式 (4) MOV AX,[BX] ;寄存器间接寻址方式 (5) MOV AX,[BX+10] ;寄存器相对寻址方式 (6) MOV AX,[BX][SI] ;基址变址寻址方式 (7) MOV AX,03H[BX][SI] ;相对基址变址寻址方式 (8) ADD BX,[SI] ;寄存器间接寻址方式 (9) AND AX,1234H ;立即寻址方式 (10)XOR CX,AX ;寄存器寻址方式
4.如果TABEL为数据段中0032H单元的符号名,其中存放的内容为1234H,填写下列指令执行后空格中的内容。
MOV AX,TABEL ;AX= 1234H LEA AX,TABEL ;AX= 0032H
5.画出执行下列指令过程中堆栈区和SP的内容变化过程示意图,并标出存储单元的物理地址。
MOV AX,1000H MOV SS,AX
MOV SP,0100H;① MOV BX,SP
PUSH AX ;② PUSH BX ;③ POP CX ;④ HLT 解:
③ 00H
01H
最后指令位置 00H ② ④
10H ①
6.标出下列指令的执行顺序。 (1) MOV AX,1234H (2) CMP AX,8234H (3) JC NEXT1 (4) CBW
(5)NEXT1:MOV BX,9876H (6) CMP BX,AX (7) JB NEXT2 (8) SHR AX,1 (9)NEXT2:AND BX,1010H
100FCH
100FEH
10100H
(10) HLT
解:指令的执行顺序:
(1)→(2)→(3)→(5)→(6)→(7)→(8)→(9)→(10)。
7.指令REP MOVSB,REP LODSB,REP STOSB及REPE SCASB中,哪一条能替代以下程序段。
ABC:MOV AL,[SI]
MOV ES:[DI],AL INC SI INC DI
LOOP ABC 解:指令REP MOVSB能替代上述程序段。 8.顺序执行下列各条指令,填写空格。
MOV BX,6534H ;BX= 6534H XOR BX,0FFFFH ;BX= 9ACBH AND BX,15A0H ;BX= 1080H OR BX,2379H ;BX= 33F9H TEST BX,0002H ;BX= 33F9H 9.试写出执行下列3条指令后BX寄存器的内容。
MOV CL,21H MOV BX,6D16H SHR BX,CL
解:BX=0000H
10.试分析以下程序段所完成的功能。
MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
解:程序段完成由DX和AX共同组成的32位数向左移动4位。
11.假定AX和BX中内容为有符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断:
(1)若DX的内容超过CX的内容,则转去执行EXCEED; (2)若BX的内容大于AX的内容,则转去执行EXCEED; (3)BX的内容大于等于AX的内容,则转去执行EXCEED; (4)若CX的内容等于0,则转去执行ZERO; (5)若BX与AX的内容相等,则转去执行EQ;
(6)若BX的内容小于等于AX的内容,则转去执行EQSMA; (7)若CX的内容等于5678H,则转去执行EQ;
(8)若DX的内容低于CX的内容,则转去执行EQSM; (9)若AX的内容为正,则转去执行ABC; (10)若AX的内容为负,则转去执行ABC1。 解:(1) CMP DX,CX
JA EXCEED