微机计算机基本原理与接口技术 陈红卫参考答案.docx

上传人:b****5 文档编号:7672405 上传时间:2023-01-25 格式:DOCX 页数:56 大小:243.18KB
下载 相关 举报
微机计算机基本原理与接口技术 陈红卫参考答案.docx_第1页
第1页 / 共56页
微机计算机基本原理与接口技术 陈红卫参考答案.docx_第2页
第2页 / 共56页
微机计算机基本原理与接口技术 陈红卫参考答案.docx_第3页
第3页 / 共56页
微机计算机基本原理与接口技术 陈红卫参考答案.docx_第4页
第4页 / 共56页
微机计算机基本原理与接口技术 陈红卫参考答案.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

微机计算机基本原理与接口技术 陈红卫参考答案.docx

《微机计算机基本原理与接口技术 陈红卫参考答案.docx》由会员分享,可在线阅读,更多相关《微机计算机基本原理与接口技术 陈红卫参考答案.docx(56页珍藏版)》请在冰豆网上搜索。

微机计算机基本原理与接口技术 陈红卫参考答案.docx

微机计算机基本原理与接口技术陈红卫参考答案

第一章参考答案

1.将下列十进制数转换成二进制数:

(1)49

(2)49.75(3)100(4)100.8125

解:

(1)(49)10=(110001)2

(2)(49.75)10=(110001.11)2

(3)(100)10=(1100100)2

(4)(100.8125)10=(1100100.1101)2

2.将下列十六进制数转换成二进制数和十进制数:

(1)FAH

(2)78A2H(3)FFFFH(4)3CH

解:

(1)(FA)16=(11111010)2=(250)10

(2)(78A2)16=(111100010100010)2=(30882)10

(3)(FFFF)16=(1111111111111111)2=(65535)10

(4)(3C)16=(111100)2=(60)10

3.将下列二进制数转换成十六进制数和八进制数:

(1)101101.11

(2)1111111(3)1101001011.01(4)10111101

解:

(1)(101101.11)2=(2D.C)16=(55.6)8

(2)(1111111)2=(7F)16=(177)8

(3)(1101001011.01)2=(34B.4)16=(1513.2)8

(4)(10111101)2=(BB)16=(275)8

4.设机器字长为8位,写出下列各二进制数的原码、反码和补码:

(1)+1010101

(2)-1000000(3)+1111111(4)-1111111

解:

(1)原码:

01010101

反码:

01010101

补码:

01010101

(2)原码:

11000000

反码:

10111111

补码:

11000000

(3)原码:

01111111

反码:

01111111

补码:

01111111

(4)原码:

11111111

反码:

10000000

补码:

10000001

5.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:

(1)a=0F6H,b=0D5H

(2)a=0B7H,b=0C7H

(3)a=37H,b=67H(4)a=73H,b=7BH

解:

(1)a+b=CBH没有发生溢出

a-b=21H没有发生溢出

(2)a+b=7EH发生溢出

a-b=F0H没有发生溢出

(3)a+b=9EH没有发生溢出

a-b=D0H没有发生溢出

(4)a+b=EEH发生溢出

a-b=F8H没有发生溢出

6.已知a=00111000B,b=11110011B,计算下列逻辑运算:

(1)aANDb

(2)aORb(3)aXORb(4)NOTa

解:

(1)aANDb=00110000

(2)aORb=11111011

(3)aXORb=11001011

(4)NOTa=11000111

7.将下列算式中的十进制数表示成组合BCD码进行运算,并根据需要进行调整。

(1)38+42

(2)56+77(3)99+77(4)34+7

解:

(1)00111000

+01000010

01111010

+0110

10000000

(2)01010110

+01110111

11001101

+0110

11010011

+0110

000100110011

(3)10011001

+01110111

100010000

+01100110

000101110110

(4)00110111

+00000111

00111011

+0110

01000001

8.将下列字符串表示成相应的ASCII码(用十六进制数表示):

(1)102

(2)ABC(3)ASCII(4)abc

解:

(1)31H30H32H

(2)41H42H43H

(3)41H53H43H49H49H

(4)61H62H63H

9.已知[X]原=10101100B,计算[(1/2)X]补及[(-1/2)X]补的值。

解:

∵[X]原=10101100B∴[(1/2)X]原=10010110B[(-1/2)X]原=00010110B

∴[(1/2)X]补=11101010B

[(-1/2)X]补=00010110B

10.若X=-63,Y=+127,则在[X-Y]补运算后,进位标志CF、符号标志SF及溢出标志OF应分别是什么?

(设机器字长为8)

解:

[X]补=11000001

[-Y]补=10000001

[X-Y]补=[X]补+[-Y]补=101000010

∴CF=1SF=0OF=0

11.若对下列二进制位串进行偶校验,写出校验位的值。

(1)1000001

(2)1111111(3)1010110(4)1010100

解:

(1)0

(2)1

(3)0

(4)1

第二章参考答案

1.说明8086/8088CPU中,EU和BIU的功能。

答:

EU的功能是负责指令的执行;BIU的功能是根据EU的请求,完成CPU与存储器或I/O接口间的数据传送。

2.说明8086/8088CPU中,标志寄存器中各标志位的功能。

答:

CF:

进位标志;当最高位有进位或借位时,CF=1;否则CF=0;

PF:

奇偶标志;当运算结果中低8位中“1”的个数为偶数时,PF=1;否则PF=0;

AF:

辅助进行标志;当D3向D4有进位或借位时,AF=1;否则AF=0;

ZF:

零标志;运算结果每位都为0时,ZF=1;否则ZF=0;

SF:

符号标志;运算结果的最高位为1时,SF=1;否则SF=0;

OF:

溢出标志;两个符号数进行运算产生溢出时,OF=1;否则OF=0;

TF:

陷阱标志;当TF=1时,CPU将进入单步执行工作方式;

IF:

中断标志;当IF=1时允许CPU响应可屏蔽中断;当IF=0时禁止CPU响应可屏蔽中断;

DF:

方向标志;当DF=0时,串操作指令时地址朝增加方向;当DF=1时,串操作指令时地址朝减少方向。

3.8086/8088CPU的最小模式和最大模式工作主要区别是什么?

答:

最小模式与最大模式的主切区别在于控制总线的产生方式不同。

最小工作模式的控制总线由CPU的引脚直接给出;

最大工作模式的控制总线由总线控制器给出。

4.8086CPU与8088CPU的引出线有什么差别?

答:

1)外部数据总线不同:

8086CPU标注AD0~AD15,而8088CPU标注AD0~AD7,A8~A15

2)8086中设有BHE引脚;而8088中设有SSO引脚。

3)8086中设有M/IO引脚;而8088中设有IO/M。

5.若8086/8088CPU对符号数8070H和FF85H进行加法运算,试问运算后SF、OF、AF、CF、ZF、PF标志的值各是多少?

解:

8070H1000000001110000

+FF85H1111111110000101

17FF5H+10111111111110101

从运算结果可以看出:

SF=0;OF=1;AF=0;CF=1;ZF=0;PF=1。

6.8086/8088微处理器内部有哪些寄存器?

其主要作用是什么?

答:

8086/8088微处理器内部有14个16位寄存器,它们的名称及作用如下:

AX:

累加器。

BX:

基址寄存器。

CX:

计数器。

DX:

数据寄存器。

SP:

堆栈指针寄存器。

BP:

地址指针寄存器。

SI:

源地址寄存器。

DI:

目的地址寄存器。

CS:

代码段寄存器。

DS:

数据段寄存器。

SS:

堆栈段寄存器。

ES:

附加段寄存器。

IP:

指令指针寄存器。

FLAG:

标志寄存器。

7.什么是逻辑地址?

什么是物理地址?

它们之间的关系如何?

答:

逻辑地址:

由段基址与段内偏移地址组成的表示存储单元地址。

物理地址:

用20位二进制编号表示存储单元地址。

物理地址=段基址×16+段内偏移地址。

8.8088CPU的RESET信号、READY信号的作用?

答:

RESET:

CPU复位输入信号,当此输入线有效并维持4个时钟周期时完成CPU内部复位。

READY:

准备就绪输入信号,用于协调CPU与存储器或I/O之间的数据传送。

9.试画出一个基本的存贮器写总线周期时序图。

答:

 

10.8088CPU工作在最小模式下,

(1)当CPU访问存储器时,要利用哪些信号?

(2)当CPU访问外设接口时,要利用哪些信号?

(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻状态?

答:

(1)利用AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。

(2)利用AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。

(3)当HOLD有效并得到响应时,CPU中呈高阻状态的信号有:

AD0~AD7,A8~A15,ALE,WR,RD,DT/R,DEN,M/IO。

11.8086/8088CPU在存储器写周期中,有效数据开始的时刻是总线周期的哪个T?

在存储器读周期中,有效数据开始的时刻是总线周期的哪个T?

答:

写存储器操作时,有效数据开始于T2;

读存储器操作时,有效数据开始于T3。

12.8086/8088CPU与存储器(或外设)同步以及与协处理器同步的引脚信号依次是什么?

答:

同步的引脚信号是:

READY,HOLD。

13.以Pentium微处理器为CPU的奔腾机采用的系统总线和局部总线分别是什么?

答:

系统总线:

局部总线:

 

第三章参考答案

1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令:

⑴将一个立即数送入寄存器BX;

⑵将一个立即数送入段寄存器DS;

⑶将变址寄存器DI的内容送入一个存储单元中;

⑷从存储单元中取一个数送到段寄存器ES中;

⑸将立即数0ABH与AL相加,结果送回AL中;

⑹把BX与CX寄存器内容相加,结果送入BX;

⑺用寄存器间接寻址方式,实现一个立即数与存储单元内容相加,结果放回存储器。

解:

(1)MOVBX,1234H

(2)MOVAX,1234H

MOVDS,AX

(3)MOV[BX],DI

(4)MOVES,[BX]

(5)ADDAL,0ABH

(6)ADDBX,CX

(7)MOVAX,[BX]

ADDAX,1234H

MOV[BX],AX

2.执行下面程序,完成指令后的填空:

MOVAX,2000H;AH=20H

MOVDS,AX;AL=00HDS=2000H

MOVSS,AX;SS=2000HAX=2000H

MOVBX,2030H;BH=20HBL=30H

MOVSI,BX;SI=2030H

MOVDI,3040H;DI=3040H

MOVSI,DI;SI=3040H

MOVSP,50FFH;SP=50FFH

MOVDX,SP;DH=50HDL=FFH

MOVCL,25;CL=19H

MOVBL,CL;CL=19HBL=19H

MOVAH,0F0H;AH=F0H

MOVCH,AH;CH=F0H

MOVBYTEPTR[DI],64;(DI)=40H

MOVWORDPTR[SI],256;(SI)=00H(SI+1)=01H

MOVDL,[SI+1];DL=01H

MOVDH,1+[SI];DH=00H

MOVAL,1[SI];AL=01H

MOVWORDPTR[BX][SI],34;(BX+SI)=22H(BX+SI+1)=00H

MOV[BX+SI+4],BL;(BX+SI+4)=19H

MOVBP,2[BX+DI];BP=00H

MOV[BP],AL;(BP)=01H

MOVAX,[BP][DI];AX=0100H

MOVBL,AL;BL=00H

MOVES,BX;ES=2000H

PUSHBX;SP=50FDH(SP,SP+1)=2000H

PUSHDI;SP=50FBH(SP,SP+1)=F019H

POPCX;SP=50FDHCX=3040H

POPDX;SP=50FFHDX=2000H

XCHGAX,BP;AX=0000HBP=0100H

XCHGDH,BL;DH=00HBL=20H

LAHF;FLAG=0002HAH=02H

SAHF;FLAG=0002HAH=02H

PUSHF;SP=50FDH(SP,SP+1)=0002H

POPF;SP=50FFHFLAG=0002H

3.设DS=2000H,ES=2100H,SS=1500H,SI=00A0H。

BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值是0050H,指出下列源操作数字段的寻址方式是什么?

其物理地址值是多少?

⑴MOV AX,0ABH

⑵MOV AX,BX

⑶MOV AX,[100H]

⑷MOV AX,VAL

⑸MOV AX,[BX]

⑹MOV AX,ES:

[BX]

⑺MOV AX,[BP]

⑻MOV AX,[SI]

⑼MOVAX,[BX+10]

⑽MOV AX,VAL[BX]

⑾MOV AX,[BX][SI]

⑿MOV AX,VAL[BX][SI]

解:

(1)立即寻址方式

(2)寄存器寻址方式

(3)直接寻址方式;其物理地址为:

20100H

(4)直接寻址方式;其物理地址为:

20050H

(5)寄存器间接寻址方式;其物理地址为:

20100H

(6)寄存器间接寻址方式;其物理地址为:

21100H

(7)寄存器间接寻址方式;其物理地址为:

15010H

(8)寄存器间接寻址方式;其物理地址为:

200A0H

(9)寄存器相对寻址方式;其物理地址为:

20110H

(10)寄存器相对寻址方式;其物理地址为:

20150H

(11)基址变址寻址方式;其物理地址为:

201A0H

(12)相对基址变址寻址方式;其物理地址为:

201F0H

4.如果TABEL为数据段中0032H单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?

指令执行后,AX寄存器的内容各是什么?

MOV AX,TABEL

LEA AX,TABEL

解:

指令MOVAX,TABEL是取出地址为TABEL的内存单元内容,执行结束后AX=1234H

指令LEAAX,TABEL是取出符号地址的数值,执行结束后AX=0032H.

5.已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。

试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。

解:

 

6.求出以下各十六进制数与十六进制数62A0H之和,并根据结果设置标志位SF、ZF、CF和OF的值。

⑴1234H⑵4321H⑶CFA0H⑷9D60H

解:

(1)结果74DEH:

SF=0;ZF=0;CF=0;OF=0。

(2)结果A5C1EH:

SF=1;ZF=0;CF=1;OF=1。

(3)结果3240H:

SF=0;ZF=0;CF=1;OF=0。

(4)结果0000H:

SF=0;ZF=1;CF=1;OF=0。

7.求出以下各十六进制数与十六进制数4AE0H的差值,并根据结果设置标志位SF、ZF、CF和OF的值。

⑴1234H⑵5D90H⑶9090H⑷EA04H

解:

(1)结果:

C754H;SF=1;ZF=0;CF=1;OF=0。

(2)结果:

12B0H;SF=0;ZF=0;CF=0;OF=0。

(3)结果:

45B0H;SF=0;ZF=0;CF=0;OF=0。

(4)结果:

9F24H;SF=1;ZF=0;CF=0;OF=0。

8.假设BX=0E3H,变量VALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。

⑴XOR BX,VALUE⑵AND BX,VALUE⑶OR BX,VALUE

⑷XOR BX,0FFH⑸AND BX,0⑹TEST BX,01H

解:

(1)BX=9AH

(2)BX=61H

(3)BX=FBH

(4)BX=1CH

(5)BX=00H

(6)BX=E3H

9.试写出执行下列指令序列后BX寄存器的内容。

执行前BX=6D16H。

MOVCL,7

SHRBX,CL

解:

执行后BX=00DAH

10.试分析以下程序段所完成的功能。

MOV CL,04

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

解:

程序段完成由DX和AX共同组成的32位数向左移动4位。

11.写一程序段:

比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS;否则顺序执行程序。

解:

参考程序:

MOVAX,DS

MOVES,AX

MOVCX,0005H

LEASI,OLDS

LEADI,NEAS

CLD

REPZSCASB

JNZNEW_LESS

12.假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断:

⑴若DX的内容超过CX的内容,则转去执行EXCEED;

⑵若BX的内容大于AX的内容,则转去执行EXCEED;

⑶若CX的内容等于0,则转去执行ZERO;

⑷若BX与AX的内容相比较是否产生溢出?

若溢出则转OVERFLOW;

⑸若BX的内容小于等于AX的内容,则转EQ_SMA;

⑹若DX的内容低于等于CX的内容,则转EQ_SMA。

解:

(1)CMPDX,CX

JAEXCEED

(2)CMPBX,AX

JGEXCEED

(3)CMPCX,0

JZZERO

(4)CMPBX,AX

JOOVERFLOW

(5)CMPBX,AX

JLEEQ_SMA

(6)CMPDX,CX

JBEEQ_SMA

13.假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q(X和Y为低位字),试说明下列程序段做什么工作?

  MOV DX,X+2

  MOV AX,X

  ADD AX,X

  ADC DX,X+2

  CMP DX,Y+2

  JL L2

  JG L1

  CMP AX,Y

  JBE L2

L1:

  MOV AX,1

JMP SHORTEXIT

L2:

MOV AX,2

EXIT:

INT 20H

解:

当2p>q时,AX的内容置成1;当2p<=q时,AX的内容置成2。

14.要求测试STATUS中的一个字节,如果第1、3、5位均为1则转移到ROUTINE_1;如果此三位中有两位为1则转移到ROUTINE_2;如果此三位只有一位为1则转移到ROUTINE_3;如果此3位全为0则转移到ROUTINE_4。

试画出流程图,并编制相应程序段。

解:

流程图如下:

MOVAL,STATUS

ANDAL,2AH

JZROUTINE_4

CMPAL,2AH

JZROUTINE_1

JPROUTINE_2

ROUTINE_3:

 

第四章参考答案

1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?

错误的原因?

⑴MOVBP,AL

⑵MOVWORD_OP1,WORD_OP2

⑶MOVSAVE_WODR,DS

⑷MOVSP,SS:

DATA_WORD[BX][SI]

⑸MOV[BX][SI],2

解:

(1)非法。

源操作数与目的操作数类型不符。

00H

00H

00H

01H

00H

02H

00H

00H

00H

01H

00H

02H

00H

00H

00H

01H

00H

02H

00H

00H

00H

01H

00H

02H

00H

00H

00H

01H

00H

02H

FBH

FFH

59H

42H

45H

54H

56H

02H

(2)合法。

(3)合法。

(4)合法。

(5)非法。

需说明操作数类型。

2.设VAR1和VAR2为字变量,LAB为标号,

试指出下列指令的错误之处:

⑴ADDVAR1,VAR2

⑵SUBAL,VAR1

⑶JMPLAB[SI]

⑷JNZVAR1

⑸JMPNEARLAB

解:

(1)两个操作数均为符号地址。

(2)两个操作数的类型不同。

(3)

(4)

(5)

3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_VARDB‘BYTE’,12,-12H,3DUP(0,?

2DUP(1,2),?

41H

59H

54H

45H

0CH

F4H

00H

01H

02H

01H

02H

00H

01H

02H

01H

02H

⑵WORD_VARDW5DUP(0,1,2),?

-5‘BY’,’TE’,256H

解:

(1)

(2)

 

4.设程序中的数据定义如下:

PARTNODW?

PNAMEDB16DUP(?

COUNTDD?

PLENTHEQU$-PARTNO

问PLENTH的值为多少?

它表示什么意义?

解:

PLENTH的值为22(16H)。

表示当前位置与PARTNO之间有22个字节空间。

5.设程序中的数据定义如下:

LNAMEDB30DUP(?

ADDRESSDB30DUP(?

CITYDB15DUP(?

CODE_LISTDB1,7,8,,3,2

⑴用一条MOV指令将LNAME的偏移地址放入AX;

⑵用一条指令将CODE_LIST的头两个字节的内容放入SI:

⑶写一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1