微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx

上传人:b****5 文档编号:18582422 上传时间:2022-12-28 格式:DOCX 页数:76 大小:39.46KB
下载 相关 举报
微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx_第1页
第1页 / 共76页
微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx_第2页
第2页 / 共76页
微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx_第3页
第3页 / 共76页
微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx_第4页
第4页 / 共76页
微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx

《微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx(76页珍藏版)》请在冰豆网上搜索。

微机原理及应用陈继红徐晨课后习题答案图文稿Word下载.docx

291D;

000100100011B。

(4)FFFF十进制数:

65535D;

1111111111111111B。

3.6分别用

8位二进制数和

16位二进制数写出下列十进制数的原码和补码。

(1)16

(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9

(1)168位二进制数原码

:

00010000补码:

00010000;

16位二进制数原码

00000000

0000000000010000。

(2)-168位二进制数原码

10010000补码

11110000;

10000000

1111111111110000。

(3)+08位二进制数原码

00000000补码:

00000000;

0000000000000000。

(4)-08位二进制数原码

10000000补码:

0000000000000000。

(5)1278位二进制数原码

01111111补码:

01111111;

0000000001111111。

(6)-1288位二进制数原码:

无补码:

10000000;

16位二进制数原码:

1111111110000000。

(7)1218位二进制数原码

01111001补码

01111001;

01111001补码:

0000000001111001。

(8)-98位二进制数原码

10001001补码:

11110111;

1111111111110111。

3.7试实现下列转换。

1

(1)11000010

(2)00001101(3)11000010(4)10111101

3.8假设两个二进制数

(1)A、B两数均为带符号的补码数

(2)A、B两数均为无符号数

(1)A、B两数均为带符号的补码数:

A>B

(2)A、B两数均为无符号数

A<B

3.9下列各数均为十进制数,请用

8位二进制数补码计算下列各题,用十六进制数表示

其运算结果,并判断是否溢出,验证教材中所给的判断依据。

(1)90+71

(2)90-71(3)-90-71(4)-90+71(5)-90-(-71)

(1)90+71=161>127溢出

[90]补+[71]补=01011010+01000111=10100001=0A1H=[-91]补

(2)90-71=19<127无溢出

[90]补+[-71]补=01011010+10111001=00010011=13H=[19]补

(3)-90-71=-161<-128溢出

[-90]补+[-71]补=10100110+10111001=01011111=5FH=[95]补

(4)-90+71=-19>-128无溢出

[-90]补+[71]补=10100110+01000111=11101101=0EDH=[-19]补

(5)-90-(-71)=-19>-128无溢出

3.10完成下列

8位二进制数的逻辑运算。

∧∨

⊕∧

⊕∨

3.11以下均为

2位十六进制数,试说明当把它们分别看作无符号数或字符的

ASCII码

值,它们所表示的十进制数和字符是什么

(1)30H

(2)39H(3)42H(4)62H(5)20H(6)7H

(1)30H所表示的十进制数是:

48D;

字符是:

0。

(2)39H所表示的十进制数是:

57D;

9。

(3)42H所表示的十进制数是:

66D;

B。

(4)62H所表示的十进制数是:

98D;

b。

(5)20H所表示的十进制数是:

32D;

sp空格。

(6)7H所表示的十进制数是:

7D;

BEL报警。

3.12把以下十进制数分别以压缩

BCD码、非压缩

BCD码、ASCII码串表示。

(1)2

(2)78

(1)2压缩

BCD码:

0010、非压缩

00000010、ASCII码:

0110010

(2)78压缩

01111000、非压缩

0000011100001000、ASCII码:

0110111

011100

3.13设浮点数格式如下图所示:

阶码、尾数均以补码表示,基数为

2,求:

+25.6和-361.25的规格化浮点数。

×

25

+5=0101B,补码

规格化浮点数:

2

规格化浮点数

3.14设某计算机用

12位表示一个浮点数,该浮点数从高位到低位依次为:

阶符

1位、

阶码

3位(原码表示)、数符

1位、尾数

7位(补码表示

),则

010010110011的真值是多少

-9.625

3.158086汇编语言指令的寻址方式有哪几类

哪种寻址方式的指令执行速度最快

?

解:

寻址方式分为

立即数寻址方式、寄存器操作数寻址方式和存储器操作数寻址方式。

其中,寄存器操作数寻址方式的指令执行速度最快。

3.16在直接寻址方式中

一般只指出操作数的偏移地址

那么,段地址如何确定?

如果要用

某个段寄存器指出段地址

指令中应该如何表示

默认的数据访问

操作数在

DS段;

堆栈操作在

SS段;

串操作源操作数

(SI)在

DS

段,目的操作数

(DI)在

ES段;

BP作为指针在

SS段。

如果要显式地指定段地址,则在操作

数中规定段寄存器。

例如:

MOVAX,

ES:

(BX+10H)

3.178086系统中,设

DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,

BP=0100H,VAR的偏移量为

0600H,请指出下列指令的目标操作数的寻址方式,若目

标操作数为存储器操作数,计算它们的物理地址。

(1)MOVBX,12;

目标操作数为寄存器寻址

(2)MOV[BX],12;

目标操作数为寄存器间址

PA=10300H

(3)MOVES:

[SI],AX;

PA=20200H

(4)MOVVAR,8;

目标操作数为存储器直接寻址

PA=10600H

(5)MOV[BX][SI],AX;

目标操作数为基址加变址寻址

PA=10500H

(6)MOV6[BP][SI],AL;

目标操作数为相对的基址加变址寻址

PA=12306H

(7)MOV[1000H],DX;

PA=11000H

(8)MOV6[BX],CX;

目标操作数为寄存器相对寻址

PA=10306H

(9)MOVVAR+5,AX;

PA=10605H

3.18下面这些指令中哪些是正确的那些是错误的如果是错误的,请说明原因。

(1)XCHGCS,AX;

错,CS不能参与交换

(2)MOV[BX],[1000];

错,存储器之不能交换

(3)XCHGBX,IP;

错,

IP不能参与交换

(4)PUSHCS;

CS不能为

PUSH的操作数

(5)POPCS;

错,不能将数据弹到

CS中

(6)INBX,DX;

输入

/输出只能通过

AL/AX

(7)MOVBYTE[BX],1000;

1000大于

255,不能装入字节单元

(8)MOVCS,[1000];

CS不能作为目标寄存器

(9)MOVBX,OFFSETVAR[SI];

OFFSET只能取变量的偏移地址

(10)MOVAX,[SI][DI];

SI、DI不能成为基址加变址

(11)MOVCOUNT[BX][SI],ES:

AX;

AX是寄存器,不能加段前缀

3.19试述以下指令的区别:

⑴MOVAX,3000H与

MOVAX,[3000H]

⑴MOVAX,3000H指令源操作数的寻址方式为立即寻址方式,指令执行结果为:

(AX)=3000H。

MOVAX,[3000H]指令源操作数的寻址方式为直接寻址方式

指令执行结

果为:

DS:

3000H)AX。

⑵MOVAX,MEM与

MOVAX,OFFSETMEM

⑵MOVAX,MEM指令源操作数的寻址方式为直接寻址方式,指令执行结果为:

MEM)AX。

MOVAX,OFFSETMEM指令的执行结果是把

MEM的偏移量送

AX。

⑶MOVAX,MEM与

LEAAX,MEM

⑶MOVAX,MEM指令的执行结果是

LDS:

LEAAX,MEM

的执行结果是把

(4)JMPSHORTL1与

JMPNEARPTRL1

3

JMPSHORTL1为段内无条件短程转移,跳转的范围不得超过带符号的

8位二进

制数表示的字节范围;

JMPNEARPTRL1为段内无条件近程转移,跳转的范围不得超过带

符号的

16位二进制数表示的字节范围。

(5)CMPDX,CX与

SUBDX,CX

CMPDX,CX是比较,也是利用减法比较,但是

dx中的值不变,标志寄存器改

变。

SUBDX,CX是做减法运算,

dx中为减后的值,标志寄存器改变

(6)MOV[BP][SI],CL与

MOVDS:

[BP][SI],CL

BP默认的段基址是

SS,物理地址

PA=SS+BP+SI;

第二个重定义为

DS段基址,

物理地址

PA=DS+BP+SI

3.20设

DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的

具体操作:

MOVBYTEPTR[BP],20H

MOVWORDPTR[BX],20H

解:

前一条指令是把立即数

20H,传送至堆栈段

(BP的默认段

)偏移量由

BP规定的字节单

元,地址为:

52000H+6200H=58200H

第二条指令是把立即数

20H,传送至数据段

(BX的默认段

BX规定的字单元

址为:

21000H+1400H=22400H。

3.21设当前

SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少当执

PUSHBX指令后,栈顶地址和栈顶

2个字节的内容分别是什么

当前栈顶的地址

=2FF00H

当执行

PUSHBX指令后,栈顶地址

=2FEFEH

(2FEFEH)=57H

(2FEFFH)=34H

3.22设

DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,

DX和

CF中的值。

(1)

SHRDX,1;

DX=3C62HCF=1

(2)

SARDX,CL;

DX=03C6HCF=0

(3)

SHLDX,CL;

DX=18A0HCF=1

(4)

RORDX,CL;

DX=2BC6HCF=0

(5)

RCLDX,CL;

DX=18B7HCF=1

(6)

RCRDH,1;

DX=BCC5HCF=0

3.23设

AX=0A69H,VALUE字变量中存放的内容为

1927H,写出下列各条指令执行

后寄存器和

CF、ZF、OF、SF、PF的值。

AXCFZFOFSFPF

(1)XORAX,VALUE;

134EH00001

(2)ANDAX,VALUE;

0821H00001

(3)SUBAX,VALUE;

F142H10011

(4)CMPAX,VALUE;

0A69H10011

(5)NOTAX;

F596HXXXXX

(6)TESTAX,VALUE;

0A69H00001

3.24设

AX和

BX中是符号数,

CX和

DX是无符号数,请分别为下列各项确定

CMP

和条件转移指令。

CX值超过

DX转移。

AX未超过

BX转移。

DX为

0转移。

CX值等于小于

CMPCX,DX

JANEXT

CMPAX,BX

JLENEXT

CMPDX,0

JZNEXT

4

JBENEXT

3.25阅读分析下列指令序列:

ADDAX,BX

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPL5

BX的初值分别为以下

5种情况,则执行该指令序列后,程序将分别转向何处

(L1~L5中的一个)。

AX=13C6H,

BX=80DCH

AX=0B568H,BX=54B7H

AX=42C8H,

BX=608DH

AX=0D023H,BX=9FD0H

AX=9FD0H,

BX=0D023H

(1)转

L1:

不溢出,转移到

L1处;

(2)转

(3)转

L2:

溢出,不转移到

L1处,进位

CF=0,转移到

L2处;

(4)转

L3:

CF=1,不转移到

L2处,减法借位

CF=0,转移

L3处;

(5)转

L5:

CF=1,不转

移到

L3处,不溢出

OF=0,转移到

L4处;

3.26用普通运算指令执行

BCD码运算时

为什么要进行十进制调整

具体地讲,在进行

BCD码的加、减、乘、除运算时

程序段的什么位置必须加上十进制调整指令

因为

8086指令把操作数作为二进制数进行二进制运算

要得到正确的

BCD结果,需

要进行调整。

在加、减、乘法指令之后加上

BCD调整指令

而在除法指令之前先用

BCD调

整指令再用除法指令。

3.27在编写乘除法程序时,为什么常用移位指令来代替乘除法指令编写一段程序,实

现将

BX中的数除以

10,结果仍然放在

BX中。

用移位指令时,左移

l位相当于将操作数乘

2,右移

1位相当于将操作数除

2。

移位指令实现一些简单的乘除法程序,比用乘法指令和除法指令进行乘、除运算要快得多。

用除法指令实现:

MOVCL0AH

MOVAX,BX

IDIVCL

MOVBX,AX

3.28串操作指令使用时特别要注意和

SI,DI这两个寄存器及方向标志

DF密切相关。

具体就指令

MOVSB/MOVSW、CMPSB/CMPSW、SCASB/SCASW、LODSB/LODSW、

STOSB/STOSW列表说明和

SI、DI及

DF的关系。

解答:

SIDIDF

MOVSB/MOVSW指出源地

指出目的地

不带

REP重复前缀时,

DF=0,每传送一次,

SI、

DI加

1或加

2,DF=1,SI、DI则减

1或减

CMPSB/CMPSW

存放源字

符串首地

存放目的字

符串首地址

DF=0,每次比较后,

SI、DI加

2,CX减

1,DF=1,SI、DI减

SCASB/SCASW无指出字符串

首址偏移量

LODSB/LODSW作为地址

指针

存放处理结

DF=1时,地址作增量修改,

DF=0时,地址作减

量修改

5

STOSB/STOSW无存放目的地

3.29用串操作指令设计实现以下功能的程序段:

首先将

100H个数从

2170H处搬到

1000H处,然后,从中检索相等于

VAL中字符的单元,并将此单元值换成空格符。

START:

MOVAX,DS

MOVES,AX

MOVSI,2170H

MOVDI,1000H

MOVCX,100H

CLD

REPMOVSB

ANOTHER:

MOVAL,VAL

AGE:

SCASB

JZFIN

DECCX

JNZAGE

JMPOVER

FIN:

MOVBYTEPTR[DI-1],20H

CMPCX,0

OVER:

RET

3.30求双字长数

DX∶AX的相反数。

答:

NEGDX

NEGAX

SBBDX,0

3.31试对数据段偏移地址为

101H单元中的单字节数求补后存入

102H,最高位不变,

7位取反存入

103H,高

4位置

1,低

4位不变,存入

104H。

MOVAX,[0101H]

MOVCX,AX

NOTAX

MOV[0102H],AX

XORBX,7FH

MOV[0103H],BX

ANDCX,0F0H

MOV[0104H]

3.32试编写一个程序,比较两个同长字符串

STRING1和

STRING2所含字符是否相同,

若相同

MATCH单元赋值

1,若不相同

6

程序段为:

;

数据定义

STRING1DB‘ABCDEFGHIJK

STRING2DB‘ABCDFGKJMATCHDB

功能代码

MOVAX,SEGSTRING1

MOVDS,AX

MOVAX,SEGSTRING2

MOVES,AX

LEASI,STRING1

LEADI,STRING2

MOVCX,STRING1-STRING2

REPECMPSB

JZEQUAL

MOVMATCH,0

EQUAL:

MOVMATCH,1

HLT

1,作为源串

2,作为目标串

定义

MATCH单元

源串段地址送

DS

目标串段地址送

ES

源串偏移地址送

SI

目标串偏移地址送

DI

重复次数送

CX

地址增

相等继续比较,不相等退出

退出时,若

ZF=1,表示两串相等

不相同,

M

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

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

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

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