微机原理及应用习题答案.docx

上传人:b****5 文档编号:29081583 上传时间:2023-07-20 格式:DOCX 页数:34 大小:60.21KB
下载 相关 举报
微机原理及应用习题答案.docx_第1页
第1页 / 共34页
微机原理及应用习题答案.docx_第2页
第2页 / 共34页
微机原理及应用习题答案.docx_第3页
第3页 / 共34页
微机原理及应用习题答案.docx_第4页
第4页 / 共34页
微机原理及应用习题答案.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

微机原理及应用习题答案.docx

《微机原理及应用习题答案.docx》由会员分享,可在线阅读,更多相关《微机原理及应用习题答案.docx(34页珍藏版)》请在冰豆网上搜索。

微机原理及应用习题答案.docx

微机原理及应用习题答案

《微机原理及应用》习题答案

教材:

《80X86/Pentium微型计算机原理及应用》答案第一章计算机基础

1-3

(1)

01101110

真值=110

(2)

10001101

真值=-13

1-4

(1)

+010111

[+010111]原=[+010111]反=[+010111]补=00010111

(2)+101011

[+101011]原=[+101011]反=[+101011]补=00101011

(3)-101000

[-101000]原=10101000[-101000]反=

11010111

[-101000]补=11011000

(4)-111111

[-111111]原=10111111[-111111]反=

11000000

[-111111]补=11000001

1-6

(1)[x1+y1]补=[x1]补+[y1]补

=00010100+00100001=00110101

(2)[x2-y2]补=[x2]补+[-y2]补

=11101100+00100001=00001101

1-7

(1)85+60

解:

[-85]补=10101011[60]补=00111100

[-85]补+[60]补=10101011+00111100=11100111

(11100111)补=10011001真值=—25

CS=0,CP=0,CS®CP=0无溢出

(4)-85-60

[-85]补=10101011[-60]补=11000100

[-85]补+[-60]补=10101011+11000100=101101111

CS=1,CP=0CS®CP=1有溢出

1-8

(1)[x]补+[y]补=01001010+01100001=10101011

CS=0,CP=1CS®CP=1有溢出

⑵[X]补-[y]补=[x]补+[-y]补

=01001010-01100001=01001010+10101010

=100010110

CS=1,CP=1CS®CP=0无溢出

1-9

(1)(127)10=(000100100111)BCD

(2)(74)H=(116)10=(000100010110)BCD

(1)41H

代表A

(2)72H

代表r

(3)65H

代表e

(4)20H

代表SP

1-14

(1)69.57

(69.57)10=(1000101.100)B=0.1000101100X27

=0.1000101100X2+111

浮点规格数为011101000101

(2)-38.405

(-38.405)10=(-100110.011)B

-100110.011=-0.100110011x26=-0.100110011x

2110

浮点规格数为011011001100

(3)-0.3125

(-0.3125)10=(-0.0101)2=(-0.101)2x2-001

浮点规格数为111111010000

1.+0.00834

2.(+0.00834)10=(0.000000100010001)2=(0.100010

001)2x2-110

3.浮点规格数为101001000100

4.1-15

5.

(1)(69.57)10=(1000101.10010001111010111)2

6.=(1.00010110010001111010111)2x2110

7.p=6+127=133=(10000101)2

8.单精度浮点数为

010*********

9.

(2)

(-38.405)10=(-100110.011001111010111000)2

10.=-(1.00110011001111010111000)2x2101

11.p=5+127=132=(10000100)2

12.单精度浮点数为

11000010000110011001111010111000

13.(3)(-0.3125)10=(-0.0101)2=(-1.01)2x2-10

14.p=-2+127=125=(1111101)2

15.单精度浮点数为

10111110101000000000000000000000

第二章80X86/Pentium微处理器

2-3

IO/M

DT/R

DENRD

WR

读存储器

0

0

0

0

1

写存储器

0

1

0

1

0

2-17

PA=CSx16+IPIP的范围为OOOOH〜FFFFH而CS为

A000H

因此PA的范围即现行代码段可寻址的存储空间范围为

AOOOOH〜AFFFFH

2-2O

1234ABCDH=OOO1OO1OOO11O1OO1O1O1O1111OO11O1B

PA=SSx16+SP=AOOOOH+O1OOH=AO1OOH

栈顶SP=0100H-4=00FCH

11OO11O1AOOFCH

10101011

00110100

00010010A0100F

2-21

(1)1278H+3469H=0001001001111000+001101000110

1001

=0100011011100001

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

(2)54E3H-27A0H=0101010011100011+110110000110

0000

=10010110101000011

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

当进行16位或8位加或减运算时,若最高位产生进位或借位时,将CF置1,否则为0,当进行带符号数补码运算时,运算结果超出了机器所能表示的数值范围,就产生溢出,将

OF置1,否则OF置0,即OF用来表示有符号数运算的溢出,

而CF则用来表示无符号数运算的溢出。

2-29

答:

存储慢速设备(存储器或I/O设备)的数据时,必须插入等待周期TW来延长总线周期,插入TW侈少取决于CPU完成独立操作所需时间。

第三章80X86/Pentium指令系统

3-5

(1)源操作数为立即寻址方式;目标操作数为寄存器寻址方式

(2)源操作数为基址寻址方式;目标操作数为寄存器寻址方式

EA=BX+DISPPA=DS:

16+BX+DISP

(3)源操作数为寄存器寻址方式;目标操作数为寄存器间接寻址方式

EA=SIPA=DSX16+SI

(4)源操作数为基址加变址寻址方式;目标操作数为寄存器寻址方式

EA=BX+SIPA=DS<16+BX+SI

(5)源操作数、目标操作数都为寄存器寻址方式

(6)源操作数为基址寻址方式;目标操作数为寄存器寻址方式

EA=BX+10HPA=D

(7)源操作数为寄存器间接寻址方式;目标操作数为寄存器寻址方式

EA=BXPA=ES<16+BX

(8)源操作数为带位移量基址加变址寻址方式;目标操作数为寄存器寻址方式

EA=BX+SI+20HPA=D

(9)源操作数为寄存器寻址方式;目标操作数为寄存器间接寻址方法

A=BPPA=SS<16+BP

(10)源操作数为寄存器寻址方式

3-6

(1)源操作数为寄存器间接寻址方式

(2)源操作数为基址加变址寻址方式

(3)源操作数为基址加比例变址寻址方式

(4)源操作数为比例变址寻址方式

3-7

(1)有错。

没有两个基址寄存器相加的寻址方式

(2)有错。

两个操作数不能同时为存储器

(3)有错。

立即数不能直接送到段寄存器

(4)有错。

段寄存器CS不能作为目标操作数

(5)有错。

目标操作数不能为立即数

(6)正确。

(7)有错。

两段寄存器间不能传送数据

(8)有错。

不能直接用“3”表示移3位

(9)有错。

NOT指令中只有一个目标操作数

(10)正确。

(11)有错。

源操作数不能为立即数

(12)有错。

格式为INAL,I/O端口地址,且

100H>255,应放在DX中,DX在指令中出现

(13)有错。

源操作数应为存储器操作数

(14)有错。

对16位寻址时,存储器操作数应为SI、DI、

BP、BX,不能为CX

3-8

(1)AX=3355HSP=1FFEH

(2)AX=3355HDX=4466HSP=1FFEH

3-9

PA=SS<16+BP+SI=2F000H+0200H+0046H=2F246H执行XCHGBX,[BP+SI]后

BX=4154H[2F246H]=6F30H

3-12

(1)PA=DS<16+BX+SI+20H=09226H

/•CL=F6H

⑵PA=SSX16+BP+DI=1E4F6H

[1E4F6H]=5678H

(3)BX=BX+SI+20H=0056H

PA=DSX16+BX+2=09228H

/•AX=1E40H

(4)PA=DSX16+BX+DI=09226H

SI=00F6H

[SI]=0024H

(5)PA=DSX16+BX+32H=09226H

CX=00F6H[09226]=5678H(执行XCHGCX,32H[BX后)

E再执行XCHG20[BX][SI]AX后

PA=DSX16+BX+SI+20H=09226

/•AX=5678H[09226H]=1234H

3-14

(2)MOVCL,4

ROLBL,CL

(4)ANDBX,0F7AFH

(6)TESTDX,0201H

3-16

(2)端口,(580H)=60H(581H)=80H

(4)寄存器,AL=4FHAH=(41H)

(5)端口,(45H)=60H

3-17参考程序如下:

(1)

MOVAX,NUM2

ADDNUM1,AX

(2)

MOVAL,NUM1

ADDAL,NUM1+1

ADDAL,NUM1+2

ADDAL,NUM1+3

MOVRES,AL

(3)

MOVAL,NUM1

MOVAH,0

MOVCX,7

LEADI,NUM1

MOVDX,0

NEXT:

INCDI

MOVDL,[DI]

ADDAX,DX

DECCX

JNZNEXT

MOVRES,AX

(4)

MOVAX,NUM1

ADDAX,NUM2

MOVNUM2,AX

MOVAX,NUM1+2

ADCAX,NUM2+2

MOVNUM2+2,AX

3-18参考程序如下:

(1)

MOVAL,NUM1

MOVAH,0

MOVCX,7

LEADI,NUM1

NEXT:

INCDI

MOVDL,[DI]

ADDAL,DL

DAA

MOVDH,AL;DAA只能对AL中数加以调整,DH为暂存用

MOVAL,AH

ADCAL,0

DAA;题目中只有8个数相加,所以这里也可以不作调整

MOVAH,AL

MOVAL,DH

DECCX

JNZNEXT

MOVRES,AX

3-21

(1)

009AH

(2)

0061H

(3)

8071H

(4)

10F7H

(5)

FF1CH

3-22

(1)

DX=0006H

BX=0004H

(2)

SP=1FFEH

[SP]=FEH

(3)

CX=0004H

BX=0004H

(4)

AX=8094H

CF=0

(5)

AL=87H

(6)

AL=CCH

CF=0AL=32H

(7)

SI=0009H

(8)

DI=0009H

(9)

[DI]=94H

(10)

AX=17C6H

DX=8094H

(11)

AH=84H

BL=04H

(12)

IP=17C6H

3-23

(1)将FIRST为首地址的内存单元中的10个字节传送到

VAR4

DB86H,27H,23H,00H,24H,

DW0B430H,1062H

SECONDS首地址的内存单元。

(2)将0404H到0503H的内存单元清0。

3-25

OFSFZFPFCF

(1)00001

(2)0000无影响

(3)00001

(4)01001

(5)00001

(6)1不定不定不定1

(7)00010

(8)0不定不定不定0

(9)01010

(10)00010

(11)00110

(12)01011

(13)10001

3-27

(1)IP=1256H

(2)IP=3208H

(3)IP=2450H

3-28

IP=009AH,CS=2000H,SP=0F178H,[SP]=8FH,

[SP+1]=3DH

[SP+2]=50H,[SP+3]=40H

3-29

CMPAL,01H

JZLAB1

CMPAL,02H

JZLAB2

CMPAL,04H

JZLAB3

TESTAL,07H

JNZLAB4

LAB1:

……

LAB2:

……

LAB3:

……

LAB4:

……

1.汇编语言程序设计

4-2

12VAR1

-12H

0

FFH

0

FFH

0

FFH

0

VAR2

1

2

1

2

0

3

重复上面"0"到"3"部分内容99次‘W'

VAR3

‘E'

‘L'

‘C'

‘O'

‘M'

‘E'

CC

‘T'

‘O'VAR3+6的

偏移地址

VAR3的偏移地址

VAR3的段基地址

4-3

(1)DATA1

1AH

(2)DATA2

或者

(1)DATA1LABELBYTE

ARRAYDW2786H,23H,1A24H

(2)DATA2LABELWORD

ARRAYDB30H,0B4H,62H,10H

4-5

⑴VAR1的偏移量是30H,VAR2的偏移量是3AH

(2)CNT=10H

(3)VAR2+2单元的内容为02H

4-6

AAAMACRO

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

ENDM

4-7

TRANMACROX,Y,Z;X,Y为源、目标数据块的首

地址,Z为数据块的长度

MOVCX,Z

MOVSI,OFFSETX

MOVDI,OFFSETY

CLD;设置方向标志为0

REPMOVSB

ENDM

4-8

(1)错源操作数和目标操作数长度不匹配

(2)对

(3)错两个存储器操作数之间不可直接传送

⑷错CS不可作为MOV旨令的目标操作数

(3)对

(4)错没有[SI][DI]的寻址方式

(5)错[BX-SI]不是正确的寻址方式

(6)错操作数没指明类型

(7)错立即数不可作为MOV旨令的目标操作数

(8)错[8-BX]不是正确的寻址方式

4-9

MOVBX,OFFSETARRAY将ARRAY勺偏移地址传给BX

MOVCX,LENGTHARRAY将ARRAY用DUP重复定义的数据项

总数传给CX

MOVSI,0;将0传给SI

ADDSI,TYPEARRAY将SI的内容与ARRAY勺类型值相加,返回给SI

指令执行后

BX:

数组ARRAY勺首地址

CX=100

Y

X+2

SI=2

4-10

MOVAX,WORDPTRX

ADDAX,WORDPTR

MOVWORDPTRZ,AX

MOVAX,WORDPTR

ADCAX,WORDPTRY+2

MOVWORDPTRZ+2,AX

4-12

(1)

DATASEGMENT

DATAENDS

CODESEGMENT

MOVAH,01H

码值在AL中INT21H

CMPAL,41H

JZP0

CMPAL,42H

JZP1

CMPAL,4AH

JZP9

JMPEXIT

P1:

RET

P2:

RET

P9:

RET

EXIT:

MOVAH,4CH

INT21H

(2)

DATASEGMENT

BASEDWP0,P1,……,P9

DATAENDS

CODESEGMENT

MOVAH,01H;从键盘输入一个字符,其ASC

码值在AL中INT21H

CMPAL,'A';判别字符是否位

于‘A'到’J'之间

JBEXIT

从键盘输入一个字符,其ASC

CMPAL,'J'

JA

EXIT

JMPLOOP

SUBAL,'A';在正确范围之内,根据表内地址分支MOVBL,AL

MOVBH,0

SHLBX,1

JMPBASE[BX]

P1:

RET

P2:

RET

P9:

RET

EXIT:

MOVAH,4CH

INT21H

4-14

LEABX,x

LEASI,y

LEADI,sum

ADDBX,7

ADDSI,7

ADDDI,8;和可能要9个字节

MOVCX,8

LOP:

MOVAL,[BX]

ADCAL,[SI]

DAA

MOV[DI],AL

DECBX

DECSI

DECDI

DECCX

JNZLOP

MOVAL,0

ADCAL,0

MOV[DI],AL

4-15

MOVSI,OFFSETFIRST

MOVCX,0;CX中存放A的个数

LOOP:

MOVAL,[SI]

CMPAL,‘$'

JZNEXT

CMPAL,‘A'

JNELP

INCCX

LP:

INCSI

NEXT:

……

4-16

MOVBX,0

MOVCX,16

NEXT:

RCLAX,1

JCP1

INCBH

JMPOK

P1:

INCBL

OK:

LOOPNEXT

MOVCX,BX

4-17

DATASEGMENT

DATA_WDW;若干个数

COUTEQU($-DATA_W)/2

COUT1DB0

COUT2DB0

COUT3DB0

DATAENDS

STACKSEGMENTPARASTAC‘KSTACK'

DB100DUP(0)

STACKENDS

CODESEGMENT

ASSAUMCS:

CODE,DS:

DATA

STARTPROCFAR

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVDX,0;正数、负数、0暂时分别存在BL、BHDL中

MOVBX,0

LEASI,DATA_W

MOVCX,COUT

NEXT:

MOVAX,[SI]

CMPAX,0

JGLP1

JLLP2

INCDL

JMPOK

LP1:

INCBL

JMPOK

LP2:

INCBH

OK:

ADDSI,2

LOOPNEXT

RET

STARTENDPCODEENDSENDSTART

4-18DATASEGMENT

ARRAYDW;若干个数

COUTEQU$-ARRAYMAXDBMINDB

DATAENDS

STACKSEGMENTPARASTAC‘KSTACK'DB100DUP(0)

STACKENDSCODESEGMENT

ASSAUMCS:

CODE,DS:

DATA

STARTPROCFAR

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATAMOVDS,AX

LEABX,ARRAY

MOVCX,COUT

MOVAH,[BX]

MOVAL,[BX]DECCXINCBX

LOP:

CMPAH,[BX]

JANEXT1MOVAH,[BX]

JMPNEXT2

NEXT1:

CMPAL,[BX]

JBNEXT2MOVAL,[BX]

NEXT2:

INCBX

LOOPLOP

MOVMAXAH

MOVMINAL

RET

STARTENDPCODEENDSENDSTART

4-22

LEABX,STRINGMOVCX,80

NEXT:

CMP[BX],20H

JZOK

INCBX

LOOPNEXT

MOVCL,-1

JMPFIN

OK:

NEGCX

ADDCX,80

FIN:

4-24

(1)LEASI,STRING1

LEADI,STRING2

MOVCX,20

CLD

REPMOVSB

(2)

LEASI,STRING1

LEADI,STRING2

ADDSI,19

ADDDI,19

MOVCX,20

STD

REPMOVSB

(3)

MOVAL,20H

LEADI,STRING1

MOVCX,20

CLD

REPNZSCASB

JZFOUND

MOVDL,0;未找到

JMPEXIT

FOUND:

DECDI

MOVBX,DI

MOVDL,01H

找到

EXIT:

(4)LEASI,STRING1

LEADI,STRING2

MOVCX,20

CLD

REPCMPSB

JNZNEQ

MOVBL,0;相同

JMPEXIT

NEQ:

MOVBL,01H;不相同

4-27

EXIT:

DS

DISPLAY:

FAR;

4-25

;MODULE_1

EXTRNVAR3:

DWORD

PUBLICVAR1,LABEL_1

;MODULE_2

EXTRNVAR1:

WORD,LABEL_1:

FAR,LABEL_3:

FAR

PUBLICVAR3,LABEL_2

;MODULE_3

EXTRNVAR1:

WORD,LABEL_1:

FAR,LABEL_2:

FAR

PUBLICLABEL_3

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

当前位置:首页 > 经管营销 > 经济市场

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

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