李伯成《微机原理》课后习题答案Word格式.docx

上传人:b****8 文档编号:22430806 上传时间:2023-02-04 格式:DOCX 页数:39 大小:290.58KB
下载 相关 举报
李伯成《微机原理》课后习题答案Word格式.docx_第1页
第1页 / 共39页
李伯成《微机原理》课后习题答案Word格式.docx_第2页
第2页 / 共39页
李伯成《微机原理》课后习题答案Word格式.docx_第3页
第3页 / 共39页
李伯成《微机原理》课后习题答案Word格式.docx_第4页
第4页 / 共39页
李伯成《微机原理》课后习题答案Word格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

李伯成《微机原理》课后习题答案Word格式.docx

《李伯成《微机原理》课后习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《李伯成《微机原理》课后习题答案Word格式.docx(39页珍藏版)》请在冰豆网上搜索。

李伯成《微机原理》课后习题答案Word格式.docx

1.8将下列八进制数转换成二进制数:

(1)X=760Q=111'

110'

000B

(2)X=32415Q=11'

010'

100'

001'

101B

1.9将下列二进制数转换成十六进制数:

X=101010111101101B=55EDH

X=1100110101'

1001B=11001101011001B=3359H

X=1000110001B=1000110001B=231H

1.10将下列十六进制数转换成二进制数:

X=ABCH=101010111100B

X=3A6F.FFH=0011101001101111.11111111B

X=F1C3.4B=1111000111000011.01001011B

1.11将下列二进制数转换成BCD码:

(1)X=1011011.101B=1'

011'

011.101B=91.625d=10010001.0110BCD

(2)X=1010110.001B=1’010’110.001=126.1BCD

1.12将下列十进制数转换成BCD码:

(1)X=1024D=0001000000100100BCD

(2)X=632=011000110010BCD

(3)X=103=000100000011BCD

1.13写出下列字符的ASCII码:

A41H65D01000001B

939H47D

*2AH42D

=3DH45D

21H33D

1.14若加上偶校验码,下列字符的ASCII码是什么?

字符原码加上偶校验码之后

B42H,01000010B42H,01000010B

434H,00110100BB4H,10110100B

737H,00110111BB7H,10110111B

=3DH,00111101BBDH,10111101B

21H,00100001B21H,00100001B

3FH00111111B3FH,00111111B

1.15加上奇校验,上面的结果如何?

字符原码加上奇校验码之后

B42H,01000010BC2H,11000010B

434H,00110100B34H,00110100B

737H,00110111B37H,00110111B

=3DH,00111101B3DH,00111101B

21H,00100001BA1H,10100001B

3FH00111111BBFH,10111111B

1.16计算下式:

(1)[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21BCD=

=F3H*0.21BCD=(-DH)*0.21BCD=-2.73D

(2)3CH–[(84D)/(16Q)+’8’/8D]=60D-[84D/14D+(56/8)]=60D-[13]D=

=47D

1.17对下列十进制数,用八位二进制数写出其原码、反码和补码:

(正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。

正数的补码与原码相同;

负数的补码除符号位以外,其余各位按位取反之后再加一。

数据原码反码补码

+99011000110110001101100011

-99111000111001110010011101

+127011111110111111101111111

-127111111111000000010000001

+0000000000000000000000000

-0100000001111111100000000

1.188位二进制数原码可表示数的范围是+127~-128;

8位二进制数补码可表示的数的范围是+127~-127;

8位二进制数反码可表示的数的范围是:

+127~-128;

1.1916位二进制数的原码、补码、反码可表示的数的范围是多少?

+32767~-32768、+32767~-32768、+32767~-32768;

1.20至少写出3种用二进制编码状态表示十进制数字的编码方式。

8421码、5421码2421码余3码十进制数

00000000000000110

00010001000101001

00100010100001012

00110011100101103

01000100101001114

01011000101110005

01101001110010016

01111010110110107

10001011111010118

10011100111111009

 

李伯成《微机原理》习题第二章

④洪志全等编《现代计算机接口技术》

电子工业出版社2002年4月

⑤仇玉章主编《32位微型计算机原理与接口技术》

清华大学出版社2000年9月

2.18086CPU的RESET引脚的功能是什么?

答:

RESET引脚称为复位引脚,输入、三态、高电平有效;

RESET引脚将使CPU立即结束当前操作,处理器要求RESET信号至少要保持4个时钟周期的高电平,才能结束它正在进行的操作。

CPU复位以后,除了代码段寄存器CS的值为FFFFH外,其余所有寄存器的值均为零,指令队列为空。

当RESET回到低电平时,CPU开始执行“热启动”程序,由于此时CS的值为FFFFH,IP的值为0000H,所以CPU复位以后执行的第一条指令的物理地址为FFFF0H,该单元通常放置一条段间直接转移指令JMPSS:

OO,SS:

OO即为系统程序的实际起始地址。

2.2在8086CPU工作在最小模式时,

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

当CPU访问存储器时,要利用AD0~AD15、WR*、RD*、IO/M*以及A16~A19;

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

当CPU访问外设接口时,同样要利用AD0---AD15、WR*、RD*以及IO/M*,但不使用高端地址线A16---A19;

(3)当HOLD有效并得到响应时,CPU哪些引脚置高阻?

当HOLD有效并得到响应时,CPU除HOLD、HOLDA引脚外其余所有的信号引脚均为高阻态。

2.3略

2.4说明8086CPUREADY信号的功能。

见P23

2.58086CPU的NMI和INTR引脚的不同有几点?

两点:

(1)INTR是可以由用户用指令禁止的,(通过中断允许标志IF的开---STI和关CLI进行);

而NMI不能由用户禁止;

(2)INTR是可以区分优先级别的,NMI是最高级的,没有中断优先级的排队。

2.6说明8086CPU内部标志寄存器各位的含义。

8086CPU的标志寄存器(PSW或FLAG)共有9个标志位,分别是:

CF(CarryFlag)---进位或借位标志;

PF(ParityFlag)---奇偶标志;

AF(auxiliaryFlag)----半进位标志;

ZF(ZeroFlag)-----结果为零标志;

SF(SignFlag)-----符号标志;

OF(OverflowFlag)-----溢出标志;

IF(InterruptEnableFlag)-----中断允许标志;

DF(DirectionFlag)----方向标志;

TF(TrapFlag)-----陷阱标志。

2.7说明8086CPU内部14个寄存器的作用。

8086内部的寄存器可以分为3类:

第一类:

通用寄存器:

AX、BX、CX、DX、SI、DI、SP、BP,共8个可以存储数据或者地址的低16位;

AX、BX、CX和DX可以分成8个8位的寄存器使用;

SI、DI又称变址寄存器,用于存储变址地址;

SP和BP存放指针变量值。

第二类:

段寄存器:

CS、DS、SS、ES,共4个寄存器,只能存放对应段的段地址;

第三类为IP和FLAG,IP在通常情况下不允许用户访问,而FLAG是用以向用户提供了解ALU工作状态或者控制CPU工作方式的标志寄存器。

2.8试画出8086CPU工作在最小模式时的总线形成示意图。

(注:

BHE*引脚为34脚---即SS0,参见P25状态编码表)

四点说明:

A、MN/MX端接+5V,决定了8086工作在最小模式。

B、有一片8234A,作为时钟发生器。

C、有三片8282或74LS373,用来作为地址锁存器。

D、当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,要用两片8286/8287(74LS244或74LS245)作为总线收发器。

2.98086/8088为什么采用地址/数据引线复用技术?

考虑到芯片成本,8086/8088采用40条引线的封装结构。

40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从时序逻辑的角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

2.10怎样确定8086的最大或最小工作模式?

最大、最小模式产生控制信号的方法有何不同?

引线MN/MX*的逻辑状态决定8086的工作模式,MN/MX*引线接高电平,8086被设定为最小模式;

MN/MX*引线接低电平,8086被设定为最大模式。

最小模式下所有的控制信号由CPU相关引线直接提供;

最大模式下控制信号由8288专用芯片译码后提供,8288的输入由8086的S2─S0三条状态信号引线提供。

李伯成《微机原理》习题第三章

1.周明德:

微型计算机IBM-PC系统原理与应用清华大学出版社1991

2.王永山等:

微型计算机原理与应用西安电子科大出版社1998

3.张怀莲:

IBMPC汇编语言程序设计电子工业出版社1990

注:

本习题解中的程序仅为代码片段,可在Emu8086version2.57环境下仿真运行,如果在MASM下进行汇编,需添加段设置以及相应的伪指令。

3.1

MOVAX,00H;

立即寻址

SUBAX,AX;

寄存器寻址

MOVAX,[BX];

寄存器间接寻址

MOVAX,TABLE;

直接寻址

MOVAL,ARAY1[SI];

寄存器相对寻址

MOVAX,[BX+6];

3.2若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。

程序片段如下:

ORG100h

MOVCX,03FFH;

数据个数

LEASI,TABLE;

源区首地址

LEADI,NEXT;

目的区首地址

AGAIN:

MOVAL,[SI];

MOV[DI],AL;

搬移

INCSI

INCDI;

移动地址指针

DECCX;

循环计数器递减

JNZAGAIN;

循环未结束转

HLT;

暂停

TABLEDB1024dup('

A'

);

源数据区

NEXTDB1024dup(0);

目的数据区

3.3编写10个字(16位二进制数)之和的程序

LEASI,ADD1;

LEADI,ADD2;

LEABX,SUM;

MOVCL,CONT;

MOVCH,0;

循环初始化

CLC;

进位清零

MADD1:

MOVAX,[SI];

读加数1

ADCAX,[DI]

ADDSI,2;

移动源区地址指针

ADDDI,2;

移动目的区地址指针

MOV[BX],AX;

回存计算结果

ADDBX,2;

移动“和”存储区地址指针

LOOPMADD1;

循环控制

ADD1DB0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;

加数1

ADD2DB56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;

加数2

SUMDB10DUP(0);

和存储单元

CONTDB5;

循环次数

3.4某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。

ORG100h

MOVBL,2;

除数初值

AGAIN:

MOVCX,NUM;

预计最大循环次数

MOVAL,BL;

0、1的平方根除外

MULBL;

得到2的平方

CMPAX,CX;

大于原始数据么?

JGEXIT;

若原始数据小于4转EXIT

MOVAX,CX;

读数

DIVBL;

试除

INCBL;

除数递增

JMPAGAIN;

继续除

EXIT:

DECBL;

去除除数自加

MOVANS,BL;

存商

恢复余数

SUBCX,AX;

MOVREMAIN,CL;

HLT

NUMDW7;

ANSDB?

;

REMAINDB?

3.5在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。

MOVCL,4;

移位次数

MOVCH,CL;

MOVSI,OFFSETASCBIN

CLD

XORAX,AX

XORDX,DX

ASCB1:

LODSB

ANDAL,7FH

CMPAL,'

0'

;

不大于‘0’结束转换

JLERR

9'

JGASCB2;

大于‘9’转ASCB2

SUBAL,30H;

数字形式二进制数减30H

JMPASCB3

ASCB2:

CMPAL,'

大于‘9’又小于‘A’结束转换

F'

JGERR;

大于‘F’为不合理数,结束转换

SUBAL,37H;

字符形式ASCII数减37H

ASCB3:

ORDL,AL

ROLDX,CL

DECCH

JNZASCB1

MOVBIN,DX;

存储转换结果

ERR:

NOP

ASCBINDB'

1'

'

B,'

4'

3'

BINDW?

3.7编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。

解:

第一种方法:

常规乘法运算

ORG100h

MOVAL,MOLT

MOVBL,20

MULBL

MOVANS,AX

HLT

MOLTDB2

ANSDW?

第二种方法,将MOLT连加20次

MOVCX,20

MOVBX,MOLT

XORAX,AX

CLC

ADD1:

ADCAX,BX

LOOPADD1

MOVANS,AX

HLT

MOLTDW5

第三种方法,将“20”连加MOLT次

MOVCX,MOLT

MOVBX,20

3.8在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。

XORDL,DL

LEADI,KVFF;

NEXT0:

LEASI,BUFFER;

MOVCL,99;

比较次数为N-1次

NEXT1:

MOVAL,[SI];

INCSI;

CMPDL,AL;

JNCNEXT2;

MOVDL,AL;

DL中始终存目前最大值

NEXT2:

DECCL;

JNZNEXT1;

MOV[DI],DL;

最大值存储

BUFFERDB;

自行定义100个数据

KVFFDB?

3.9若将数据按大小顺序排序,试编写程序..

解:

此处采用“冒泡法”予以处理:

ORG100h

LEADI,BUFFER;

数据区

MOVBL,99;

外循环次数

NEXT0:

MOVSI,DI;

MOVCL,BL;

内循环次数

NEXT3:

MOVAL,[SI];

读数

INCSI;

移动指针

CMPAL,[SI];

比较

JNCNEXT5;

大于转NEXT5

MOVDL,[SI];

MOV[SI-1],DL;

MOV[SI],AL;

不大于互换

NEXT5:

DECCL;

内循环次数减一

JNZNEXT3;

DECBL;

外循环次数减一

JNZNEXT0

BUFFERDB自行定义100个字节型数据

3.10在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.

A<

20,Y=3*A;

A<

60,Y=A-20;

A>

=60,Y=80.

ORG100h

MOVAL,BVFF

CMPAL,20

JLEX1

CMPAL,60

JLEX2

MOVAL,80

JMPSTOP

EX1:

MOVBL,3

MULBL

EX2:

SUBAL,20

STOP:

MOVDES,AL

BVFFDB8

DESDB?

3.11址为DATAB开始的80个单元中,存放某班80个学生的某课程成绩,要求:

统计>

=90分、80~89分、70~79分、60~69分、60分以下的人数,结果存放在BTRX开始的5个单元中

求平均成绩,结果存放在LEVEL中。

寄存器使用分配:

90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,总分、均分都在[DI]。

XORAH,AH

XORDX,DX;

统计结果清零

XORBX,BX;

LEASI,DATA

LEAD

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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