微机原理及接口技术习题解答与实验指导 下载本文

NOT AX

ADD AX, BX

则有:AX=(7) CF =(8) 4) Mov AL,88H MOV BL,5AH XOR AL,BL XOR AL,BL

则有:AL=(9),CF =(10)

【解】 (1)OCCH (2)OC3H (3)0 (4)O9H (5)1 (6) 0 (7) OFFFFH (8) 0 (9) 88H (10) 0

3.5 简答题、

1. 简述一条指令中一般包含哪些信息。

【解】一般一条指令中包含操作码和操作数两部分信息。 2. 简述计算机中操作数可能存放的位置。

【解】计算机申操作数可能存放在指令中、寄存器中、存储单元中和I/0接口中。 3. 名词解释:操作码、操作数、立即数、寄存器操作数、存储器操作数。 【解】

1)操作码:给出指令要完成的操作。 2)操作数:给出参与操作的对象。

3)立即数:要参与操作的数据在指令中。

4)寄存器操作数:要参与操作的数据,存放在指定的寄存器中。 5)存储器操作数:要参与操作的数据,存放在指定的存储单元中。 4. 什么是寻址方式?

【解】指令中用以描述操作数所在位置的方法称为寻址方式。

5. 内存操作数的逻辑地址表达式为——段基值:偏移量,试写出偏移量的有效地址EA的计算通式。 【解】偏移量的有效地址EA的计算通式为:EA=基址值 +变址值 +位移量。

其中:基址值为 BX或BP的内容,变址值为 SI或DI的内容,位移量为8 位disp8或16位displ6数据。 6. 指出下列各指令目的操作数所在的位置,并写出相应的地址。 1) ADD [ SI] , Ax 2) MOV CL, BUF 3) DEC [ BP + 50H] 4) OUT 20H, AL

5) JMP 2000H: 0100H 6) JMP [BX] 7) JMP BX 【解】

1)目的操作数在内存单元中,其逻辑地址为 DS:[SI],其物理地址 = DS * 16 + S1。 2)目的操作数在寄存器CL中。

3)目的操作数在内存单元中,其逻辑地址为 SS:[BP +50H],其物理地址 = SS * 16 +BP + 50HO 4)目的操作数在端口中,端口地址为:20H。 5)目的操作数在指令中。

6)目的操作数在内存单元中,其逻辑地址为 DS:[BX],其物理地址 = DS * 16 +BXo 7)目的操作数在寄存器BX中。

7. 两个逻辑段地址分别为 2345H:OOOOH和2000H:3450H,它们对应的物理地址是多少? 说明了什么?

33

【解】这两个逻辑段对应的物理地址均为 23450H,说明对应同一个物理地址可以有不 同的逻辑地址。即物理地址是惟一的,逻辑地址不惟一。

8. 设DS = 3000H,BX = 2000H,[ SI]=IOOOH,MAX =l230H,则指令 MOV AX,MAX [BX][SI]的源操作数物理地址为多少?

【解} 源操作数物理地址为 = DS * 16 + BX + SI +MAX= 30000H+ (2000H + IOOOH + 1230H) = 34230H,

9. 设当前 BX =Ol58H,DI=lOA5H,位移量 =lB57H,DS = 2100H,SS =11OOH,BP = O1OOH,段寄存器默认,写出以下各寻址方式胸物理地址。 1)直接寻址。

2)寄存器间接寻址 (设采用BX)。 3)寄存器相对寻址 (设采用BP)。 4)基址变址寻址 (设采用BX和 DI)o

5)相对基址变址寻址 (设采用BP、DI和位移量)。 【解】

1)物理地址 = DS * 16 +位移量 = 21000H + lB57H =22857H。 2)物理地址 = DS * 16 + BX =21000H十 Ol58H =21158H。 3)物理地址 = SS * 16 + BP = 11OOOH +O1OOH = 111OOH。

4)物理地址 = DS * 16 + BX + DI=21000 + Ol58H +lOA5H = 221FDH。

5)物理地址 = SS*16 +BP+ DI = 11OOOH +O1OOH + lOA5H +lB57H = l3CFCH。

10. 在转移类指令中,对转移的目标地址的寻址方式有几种?段内转移的范围是多大?段间 转移的范围是多大?条件转移的范围是多大7

【解】在转移类指令中,对转移的目标地址的寻址方式有段内直接转移、段内间接转 移、段间直接转移和段间间接转移。段内直接转移的范围为 - 32768~+ 32767,段内短转移 是在当前 IP 偏移值的 - 128 ~ + 127字节的范围内 (又称为相对寻址)。段间转移的范围可 以在1MB范围内。条件转移指令,均为段内短转移,其转移的范围为 IP 当前值的- 128 ~ + 127字节的偏移量范围内。

11. 条件转移指令均为相对近转移指令,请解释“相对近转移”的含义。若须往较远处进行 条件转移,应怎么做? 【解】“相对”是指相对于指令指针寄存器IP的当前值进行的转移。相对近转移范围 为- 128 ~ + l27. 若转移的目标地址较远,超出指令要求的范围,则可在相对转移的目标地 址处,放置一条无条件转移指令,从而实现较远距离的转移。

12. 已知 DS =5000H,CS =6000H,BX =1278H,SI =345FH,(546D7H)=0,(546D8H)= 80H。在分别执行下面两条段内转移指令后,实际转移的目标物理地址是多少? ( 1 ) JMP BX (2) JMP [BX+SI] 【解】

1)段内转移的目标地址存放在寄存器BX中,故实际的转移地址是6000H:l278H,其 物理地址 = CS * 16 + BX = 60000H + l278H = 61278H.

2)段内转移的目标地址存放在内存单元中,该单元的物理地址 = DS * 16 + BX + SI = 50000H + l278H+345FH =546D7H,故实际的转移地址是6000H:8000H,其物理地址= CS * 16 + 8000H = 60000H + 8000H = 68000H.

13. 若一个堆栈段的起始地址为 3520H:OOOOH,栈区的长度为 O1OOH,当前SP 的内容为 OO20H,试问:

1)栈顶的物理地址是什么? 2)栈底的物理地址是什么? 3)栈区中已有字节数为多少?

4)存入数据l234H和5678H后SP的内容是多少?

【解】堆栈的最高地址叫栈底,堆栈指针SP总是指向栈顶。

34

1)栈顶的物理地址 = SS * 1OH + SP = 3520H * 1OH +OO80H = 35280H。 2)栈底的物理地址 = SS * IOH + OIOOH二35300H 3)栈区中已有字节数 = 1OOH - 20H=OEOH。

4)8086/8088 的堆栈操作为字操作。在压人两个字数据l234H和5678H后,SP减4, 所以SP的内容为:SP - (字数 * 2)= OO20H -2 *2 =OO1CH,SS的内容不变。 14. 简述RET指令与IRET指令的异同点。

【解】RET指令与IRET指令的异同如表3-1所示。 表3,1:RET指令与 IRET 指令的异同

15. 采用最少的指令,实现下述要求的功能。 1)AH的高4位清0。

2)将 AH 中的非压缩型BCD码转化成ASCII码。 3)AIL的高4位取反。

4)AL的高4位移到低4位,高4位清0。 【解】

1) AND AH, OFH 2) OR AH, 30H 3) XOR AL, OFOH 4) MOV CL, 4 SHR AL, CL

16. 试比较 SUB AL,O9H与 CMP AL,O9H这两条指令的异同,若AL = O8H,写出执行 两条指令后,对6个状态标志位的影响。

【解]SUB AL,O9H与 CMP AL,O9H指令功能的对比如表 3-2所示。 表3-2 SUB AL,O9H与 CMP AL,09指令功能的对比

17. 阅读下面8086程序段,指出该程序段的功能。 AGN1: MOV AL, [ DI] INC DI

TEST AL,04H

35

JE AGN1 ……. AGN2: ……

【解】 当 AL的 D2位为1时,程序转至AGN2。

18. 分析下面程序段,分析AL满足什么条件程序将转到LOP标号执行? CMP AL, OFFH JNL LOP …… LOP: ……

【解】指令 JNL NEXT为对两个带符号数比较后的状态进行判断,实现转移的条件转 移指令。因此,只有当AL中的带符号数不小于 (即大于等于)OFFH (即为-1)时,满足 条件才能转至标号NEXT处执行。故AL≥-1。

19. 把首地址为 BLOCK的字数组的第 6个字传送到CX寄存器中。试写出该指令序列,要求 使用两种寻址方式。

【解1 1)以BX的寄存器间接寻址: MOV BX, BLOCK+ 10

MOV CX,[BX];将 BLOCK开始的第 6个字的地址存入 CX 2)用BX、SI的基址变址寻址: LEA BX, BLOCK MOV SI, 10

MOV CX,[BX +SI];将 BLOCK开始的第 6个字的地址存入 CX

20. 已知 AX =789AH,BP = OF4A2H,CF =1,写出下列指令单独执行后的结果及 CF 状 态。

1) ADD AX, 0800H 2)ADD AX,5 3) DEC AX 4)SUB AX,5678H 5) AND AX, 00FFH 7) SAR AX, 1

9) 5BB [ BP], 0A034H 【解】

1 ) AX = 809AH, CF = 0 3 ) AX = 7899H , CF = 1 5 ) AX = 009AH , CF = 0 7 ) AX = 3C4DH , CF = 0 9) Bp = 546DH, CF = 0 2)ADC AX, 5

4) SUB AX, 5678H 6) OR Ax , 8888H 8) RCR AX, 1

2) AX = 78AOH, CF = 0 4) AX = 2222H, CF = 0 6) Ax = 0F89AH , CF = 0 8 ) AX =OBC4DH , CF = 0

21,写出满足下列各要求的指令:

1)将有效地址为1000H的内存单元内容送到BX寄存器中。

2)将偏移地址为1000H 的内存单元的有效地址送到BX寄存器中。 3)将源操作数为SI间接寻址方式中的数据送到SI寄存器中。

36