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

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

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

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

微机计算机基本原理与接口技术陈红卫参.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。

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

解:

流程图如下:

 

第四章参考答案

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

错误的原因?

⑴MOVBP,AL

⑵MOVWORD_OP1,WORD_OP2

⑶MOVSAVE_WODR,DS

⑷MOVSP,SS:

DATA_WORD[BX][SI]

⑸MOV[BX][SI],2

解:

(1)非法。

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

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域的实际长度。

解:

(1)MOVAX,OFFSETLNAME

(2)MOVSI,WORDCODE_LIST

(3)CODE_LENGTHEQU$-CODE_LIST

6.对于下面数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDBDB?

TABLEADW20DUP(?

TABLEBDB‘ABCD’

⑴MOVAX,TYPEFLDB

⑵MOVAX,TYPETABLEA

⑶MOVCX,LENG

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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