微机原理与接口技术周荷琴课后习题答案

发布时间 : 星期日 文章微机原理与接口技术周荷琴课后习题答案更新完毕开始阅读

示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。

①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;

②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。

14、参考答案: 段 DS ES SS CS 段起始地址 10E40H 10F40H 21F00H 31FF0H 段结束地址 20E3FH 20F3FH 31EFFH 41FEFH 可见,①DS和ES有部分的重叠,重叠区域大小为:20E3FH-10F40H+1=FF00H字节;②ES和SS之间有空隙,空隙的大小为:21F00H-20F3FH+1=0FC2H字节;③SS和CS之间有空隙,空隙的大小为:31FF0H-31EFFH+1=00F2H字节 ④OF SF ZF CF 均为0

17、参考答案:IF标志位控制INTR引脚

20、答案略,见p49 21、答案略

第三章(p121~p124) 1、参考答案: 题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 源操作数寻址方式 立即寻址 立即寻址 寄存器间接寻址 寄存器寻址 寄存器寻址 立即寻址 基址变址寻址 寄存器寻址 直接寻址* 寄存器寻址 目的操作数寻址方式 寄存器寻址 寄存器寻址 寄存器寻址 寄存器相对寻址 寄存器相对寻址 基址变址寻址 寄存器寻址 相对基址变址寻址 寄存器寻址 寄存器寻址 5

*对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;如果是短格式,即端口地址存放在DX寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:IN AX,DX

对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT 20H,AL;如果是短格式,即端口地址存放在DX寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:OUT DX,AX 2、参考答案: 题号 (1) (2) (3) (4) (5) (6) 源操作数寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 源操作数有效地址 ------- 0200H ------- 0203H 0202H 0204H 源操作数物理地址 ------ 10200H ------ 10203H 10202H 10204H 指令执行后AX中的内容 0200H 2A10H 0200H 5946H 463CH 6B59H 注:10200H~10205H单元存储状况如左图所示

3、参考答案: 题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 源操作数寻址方式 直接寻址 直接寻址 寄存器间接寻址 寄存器间接寻址 寄存器间接寻址 寄存器相对寻址 寄存器间接寻址 相对基址变址寻址 相对基址变址寻址 基址变址寻址 源操作数有效地址 0100H 0030H 0100H 0100H 00A0H 0110H 0200H 02D0H 0154H 0224H 源操作数物理地址 (DS)×16+EA=10100H (DS)×16+EA=10030H (DS)×16+EA=10100H (ES)×16+EA=20100H (DS)×16+EA=100A0H (DS)×16+EA=10110H (SS)×16+EA=35200H (SS)×16+EA=352D0H (DS)×16+EA=10154H (SS)×16+EA=35224H 4、答案略 5、参考答案:

(1)该数据段的存储状况如下表所示: A B C D E 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 24 10 43 4F 4D 50 55 54 45 52 34 12 FF 00 00 00 00 00 00 9A 45 00 12 6

注:①表格的第一行为变量名称;②第三行的每个小格子代表一个存储单元;③第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;④第三行为存储单元的具体内容,以十六进制表示。 (2)写出各条指令执行后的结果 指令 MOV AL,A MOV DX,C XCHG DL,A MOV BX,OFFSET B MOV CX,3[BX] LEA BX,D LEA SI,E LEA DI,E 6、参考答案: 题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) 错误原因 两操作数的类型不一致 立即数不能做目的操作数 立即数不能直接传送给段寄存器 两操作数不能同时为存储器操作数 IP寄存器的内容不能由用户更改,而由系统自动修改 正确 两基址寄存器不能放在一起使用 正确 两变址寄存器不能放在一起使用 不能取立即数的偏移地址,OFFSET操作符使用不当 存储单元的偏移地址应为字类型,不能放到字节寄存器中 XCHG指令的操作数不能为立即数 IN指令从端口读取的数据只能放在累加器AL或AX中 OUT指令的源操作数应为累加器,目的操作数应为端口地址,且如果端口地址超过0FFH(255),端口地址应放在DX寄存器中 执行后的结果 AL=24H DX=1234H DL=24H,A变量的第一个单元的内容变为34H BX=0002H CX=5550H BX=000EH SI=0013H DI=0013H 7、程序片段如下:

LEA BX,TABLE MOV AL,57 MOV AH,0 MOV DL,10 DIV DL PUSH AX XLAT

MOV CH,AL POP AX

MOV AL,AH XLAT

MOV CL,AL

7

MOV BX,CX 8、解答: PUSH AX PUSH BX POP BX POP AX SP的变化情况 SP?SP-2 SP?SP-2 SP?SP+2 SP?SP+2 指令执行后SP内容 00FEH 00FCH 00FEH 0100H 9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么? 题号 (1) (2) (3) (4) (5) (6) (7) (8) 指令执行后相关寄存器内容 AL=0ACH BX=8ACFH AX=EB24H BX=3455H CX=0A988H BL=57H 乘积为双字存放在DX:AX中:DX=03B8H AX=0AD78H 商存放在AL中,余数存放在AH中:AL=26H AH=64H 10、参考程序片段如下: ;定义数据段 DATA SEGMENT

ARRAY DB 60,65,72,76,77,66,79 NEW DB 7 DUP(0) SUM DB 0

AVERAGE DB 0 DATA ENDS ;程序代码如下 ……

MOV CX,7 MOV SUM,0 MOV SI,0 NEXT:

MOV AL,ARRAY[SI] ADD SUM,AL ;总分存入SUM中 ADD AL,5

MOV NEW[SI],AL INC SI

LOOP NEXT MOV AL,SUM MOV AH,0 MOV CL,7 DIV CL

MOV AVERAGE,AL ;平均分存入AVERAGE中 11、参考答案:

8

联系合同范文客服:xxxxx#qq.com(#替换为@)