第一章习题解答Word格式文档下载.docx

上传人:b****6 文档编号:18993384 上传时间:2023-01-02 格式:DOCX 页数:28 大小:233.56KB
下载 相关 举报
第一章习题解答Word格式文档下载.docx_第1页
第1页 / 共28页
第一章习题解答Word格式文档下载.docx_第2页
第2页 / 共28页
第一章习题解答Word格式文档下载.docx_第3页
第3页 / 共28页
第一章习题解答Word格式文档下载.docx_第4页
第4页 / 共28页
第一章习题解答Word格式文档下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

第一章习题解答Word格式文档下载.docx

《第一章习题解答Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第一章习题解答Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。

第一章习题解答Word格式文档下载.docx

∴[16-6]补=[16]补+[-6]补=10H+FAH=0AH

(8)-25-6=?

∴[-25-6]补=[-25]补+[-6]补=E7H+FAH=E1H

6、设机器字长为8位,最高位为符号位,试用“双高位”法判别下述二进制运算有没有溢出产生。

若有,是正溢出还是负溢出?

(1)43+8=51

[43]补=2BH

[8]补=08H

00101011

+00001000

00110011B

因为D7CY○+D6CY=0○+0=0,所以运算结果没有溢出。

(2)-52+7=-45

[-52]补=CCH

[7]补=07H

11001100

+00000111

11010011B

(3)50+84=

[50]补=32H

[84]补=54H

00110010

+01010100

10000110B

因为D7CY○+D6CY=0○+1=1,所以运算结果产生了正溢出。

(4)72-8=64

[72]补=48H

[-8]补=F8H

01001000

+11111000

01000000B

因为D7CY○+D6CY=1○+1=0,所以运算结果没有溢出。

(5)-33+(-37)=-70

[-33]补=DFH

[-37]补=DBH

11011111

+11011011

10111010B

(6)-90+(-70)=

[-90]补=A6H

[-70]补=BAH

10100110

+10111010

01100000B

因为D7CY○+D6CY=1○+0=1,所以运算结果产生负溢出。

7、何谓字符串及位串?

它们之间有何不同?

答:

“字符串”是以字节/字/双字的相邻序列;

8、已知位bi及bj在位串中的地址(位偏移量)分别为92和-88,试求它们各自在位串中的字节地址及其在所在字节中的位置。

bi的字节索引为92÷

8取整数商:

11;

bi的位余数为92mod8:

4

bi位在m+11字节的D4位。

bj的字节索引为-88÷

8取整:

5

bj的位余数为-88mod8:

bj位在m-11字节的D0位。

9、将下列十进制数变为8421BCD码:

(1)8069

8069对应的8421BCD码为:

1000000001101001

(2)5324

5324对应的8421BCD码为:

0101001100100100

10、将下列8421BCD码表示成十进制数和二进制数:

(1)01111001B

(01111001)8421BCD=79=1001111B

(2)10000011B

(10000011)8421BCD=83=1010011B

11、写出下列各数的ASCII代码:

(1)51

51的ASCII代码为:

35H31H

(2)7F

7F的ASCII代码为:

37H46H

(3)AB

AB的ASCII代码为:

41H42H

(4)C6

C6的ASCII代码为:

43H36H

第二章习题解答(P69)

1、8086/8088CPU中BIU部件和EU部件各由哪些部分组成?

各自的功能是什么?

追踪指令地址的寄存器是什么?

8086/8088CPU中BIU部件由4个段寄存器(CS,DS,ES和SS)、1个指令指针寄存器(IP)、

1个20位地址加法器、1个指令队列缓冲器(8086为6字节,8088为4字节)和总线控制电路等组成。

主要功能一是从内存中取指令代码送入指令队列缓冲器中;

二是响应EU的总线请求,负责与内存或输入/输出接口之间的数据传送;

三是在执行转移指令时,BIU使指令队列缓冲器复位,从指定的新地址取指令,并立即传给EU单元执行。

EU部件由1个16位ALU、寄存器组(4个通用寄存器AX、BX、CX和DX,2个指针寄存器BP和SP,2个变址寄存器DI和SI)、1个标志寄存器FLAGS和执行控制电路(指令译码和时序产生电路等)等组成。

其功能一是从指令队列缓冲器中依次取出指令代码、译码并执行;

二是执行含存储器或I/O口的指令时,形成存储器操作数的段内偏移地址或I/O口地址送BIU;

三是执行转移、调用、中断指令时通知BIU复位指令队列缓冲器,立即从新地址开始取指令代码。

在8086/8088CPU中,追踪指令地址的寄存器是IP(指令指针寄存器),由CS:

IP指出要执行指令的地址。

2、简述堆栈指示器SP的功能及堆栈的操作过程。

8X86系列微处理器的堆栈如下图所示:

①堆栈是由内存中按照“先进后出”原则组织起来的一片连续的存储器单元组成;

②SP作为堆栈指针,始终指向“栈顶”;

③堆栈操作

进栈操作(PUSH)先把SP-2,再把源操作数存入SP所指的字存储器单元;

出栈操作(POP)先把SP所指字单元的内容取到目的操作数,再将SP+2。

3、8086/8088CPU有哪几个状态标志?

哪几个控制标志?

各标志的含义和功能是什么?

①8086/8088CPU有6个状态标志,各标志的含义是:

CF:

进位/借位标志,指示加/减法运算中最高位的进/借位状态,有进/借位时CF为1,反之为0;

PF:

奇偶标志,指示算术/逻辑运算结果低8位中1的个数是奇/偶数,结果中有偶数个1时,PF为1,

反之为0;

AF:

半进位标志,指示加/减法运算中D3位向D4位的进/借位状态,有进/借位时AF为1,反之为0;

ZF:

0标志,指示算术/逻辑运算结果使ALU中是否为全0,ALU中为全0时ZF为1,反之为0;

SF:

符号标志,指示算术/逻辑运算结果最高位的状态,最高位为1时SF为1,反之为0;

OF:

溢出标志,指示带符号算术运算结果是否超出其表示范围,用双高位法判断,有溢出时OF为1,反之为0;

注意:

CF,ZF,SF和OF与操作数的位数有关,80386支持8位,16位和32位运算。

PF和AF与操作数的位数无关。

②8086/8088CPU有3个控制标志,各标志的含义是:

TF:

单步标志,用来控制CPU执行指令的方式,当TF=1时,每执行一条指令便产生一次单步中断,当

TF=0时,连续执行指令;

DF:

方向标志,用来控制串操作指令的步进方向,当DF=1时,串操作指令从高地址向低地址方向进行,

当DF=0时,串操作指令从低地址向高地址方向进行;

IF:

可屏蔽中断允许标志,当IF=1时,允许响应可屏蔽中断请求,反之则禁止响应。

4、8086/8088CPU的存储器组织为什么要采用分段结构?

逻辑地址和物理地址的关系是什么?

若已知逻辑地址为B100H:

A300H,试求物理地址。

8086/8088CPU的存储器组织采用分段结构有以下优点:

①能有效利用8086/8088CPU的

个16位寄存器和1个20位地址加法方便的构成20位地址,使8086/8088CPU的寻址能力达到1MB;

②能方便实现不同信息的分类存储(程序代码、数据和堆栈等)和共享;

③有利于模块化程序、多道程序和多用户程序的设计。

逻辑地址是编程者使用的地址,不是程序代码或数据在计算机中的实际地址,而物理地址是系统中每个存储器单元或I/O端口所在的地址,由处理器的地址线状态确定。

逻辑地址必须转换成物理地址才能使用,在8086/8088系统中,其转换方法是:

物理地址=段地址×

10H+偏移地址

一个逻辑地址只对应一个物理地址。

例如本题中:

物理地址=B100H×

10H+A300H=BB300H

而一个物理地址可以对应多个逻辑地址,例如本题中物理地址BB300H,可以对应逻辑地址:

B100H:

A300H

B000H:

B300H

BB00H:

0300H

BB30H:

0000H

这种对应关系有利于存储器单元的共享,但要防止冲突。

7、试判断下列运算执行之后,OF、CF、ZF、SF、PF和AF的状态:

⑴A400H+7100H

1010010000000000

+0111000100000000

0001010100000000

运算后各标志的状态为:

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

⑵A323H-8196H

1010001100100011

-1000000110010110

0010000110001101

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

⑶46H-59H

01000110

-01011001

11101101

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

⑷7896H-3528H

0111100010010110

-0011010100101000

0100001101101110

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

10

若把该题改为“+”运算,即:

7896H+3528H,则运算结果OF=1

+0011010100101000

1010110110111110

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

10、80386CPU有哪几种工作方式?

各有何特点?

80386CPU有3种工作方式。

各方式的主要特点是:

①在实地址方式,80386只能寻址1MB物理地址空间,相当于一个高速8086CPU;

②在虚地址保护方式,80386可寻址4GB物理地址空间和64TB虚地址空间,对内存采用分段和分页管理方式,更好地兼顾了程序设计的逻辑性和内存管理的高效灵活两者的矛盾。

③在虚拟8086方式,8086的程序可以在保护方式的基础上作为任务加以执行,实现多个用户程序同时运行。

11、80386寄存器集由哪些寄存器组成?

它们的功能和特点是什么?

80386内部寄存器的组成和主要特点归纳如下:

①通用寄存器

寄存器位定义

1F……10

0F……08

07……00

EAX

AH

AL

EBX

BH

BL

ECX

CH

CL

EDX

DH

DL

ESI

SI

EDI

DI

EBP

BP

ESP

SP

②其它寄存器

13、何谓CISC技术和RISC技术?

各自的代表产品是什么?

所谓CISC技术,是指采用“复杂指令集计算机”技术设计的微处理器体系结构;

其主要特点是:

采用变长指令编码,寻址方式多,指令功能丰富,采用微程序控制,各指令执行时间相差很大,目的在于提高编程效率和内存利用率,其主要代表产品如Intel80X86系列,ZilogZ80和Motorola68K系列等。

所谓RISC技术是指采用“精简指令集计算机”技术设计的微处理器体系结构;

用定长指令编码,寻址方式多,指令条数少且很规整,采用硬布线控制,目的在于更多地使用流水线技术,提高取指令和分析指令的效率,使各指令执行时间相差很小,多数为单周期指令,大大简化了微处理器的结构,降低了成本,提高了速度,其主要代表产品如

APPLE、IBM和Motorola的PowerPC微处理器

SGI/MIPS的R2000,R3000等

IBM的Power微处理器

SUN的SPARC微处理器

 

第三章习题解答(P118)

1、指出下列指令中源操作数和目的操作数的寻址方式:

目的操作数源操数

⑴MOVSI,1000;

寄存器寻址立即数寻址

⑵MOVBL,AL;

寄存器寻址寄存器寻址

⑶MOV[SI],1000;

寄存器间接寻址立即数寻址

⑷MOVBP,[BX];

寄存器寻址寄存器间接寻址

⑸ANDDL,[BX+SI+20H];

寄存器寻址相对的基址加变址寻址

⑹PUSHDS;

SP寄存器间接寻址寄存器寻址

⑺POPAX;

寄存器寻址SP寄存器间接寻址

⑻MOVEAX,COUNT[EDX];

寄存器寻址相对的寄存器间接寻址(286扩展指令)

⑼IMULAX,BX,34H;

寄存器寻址,寄存器寻址,立即数寻址(286扩展指令)

⑽JMPFARPTRLABEL;

段间直接转移

2、指出下列指令语法是否正确,若不正确请说明原因。

⑴MOVDS,0100H;

×

,段寄存器不能直接赋立即数。

⑵MOVBP,AL;

,操作数类型不匹配

⑶XCHGAX,2000H;

,立即数不能用于交换指令

⑷OUT310H,AL;

,端口直接寻址不能超出00-FFH

⑸MOVBX,[BX];

⑹MOVES:

[BX+DI],AX;

⑺MOVAX,[SI+DI];

,不能同时用两个变址寄存器间接寻址

⑻MOVSS:

[BX+SI+100H],BX;

⑼ANDAX,BL;

⑽MOVDX,DS:

[BP];

⑾MOV[BX],[SI];

,不能用MOV指令直接在存储器单元间传送数据

⑿MOVCS,[1000];

,不能用MOV指令向CS寄存器写入数据

⒀INAL,BX;

,不能用BX作为寻址I/O的指针

3、设(DS)=2000H,(BX)=1256H,(SI)=528FH,偏移量=20A1H,[232F7H]=3280H,

[264E5H]=2450H。

若独立执行下列指令后,请给出对应IP寄存器的内容。

⑴JMPBX;

执行该指令将(BX)送IP,所以,执行后(IP)=1256H。

⑵JMP[BX][SI];

执行该指令将DS段由(BX)+(SI)所指字单元的内容送IP。

因为2000H×

10H+(1256H+528FH)=264E5H,所以,执行后(IP)=2450H。

补充:

JMP[BX+20A1H];

该指令执行后(IP)=3280H

6、有如下程序:

MOVAL,45H

ADDAL,71H

DAA

MOVBL,AL

MOVAL,19H

ADCAL,12H

MOVBH,AL

执行后(BX)=?

,标志位(PF)=?

和(CF)=?

该程序执行时,各相关寄存器和标志位的变化过程如下:

MOVAL,45H;

(AL)=45H

ADDAL,71H;

(AL)=B6H,(PF)=0,(CF)=0

DAA;

(AL)=16H,(PF)=0,(CF)=1

MOVBL,AL;

(BL)=16H

MOVAL,19H;

(AL)=19H

ADCAL,12H;

(AL)=2CH,(PF)=0,(CF)=0

(AL)=32H,(PF)=0,(CF)=0

MOVBH,AL;

(BH)=32H

执行后(BX)=3216H,标志位(PF)=0,(CF)=0

7、执行下列程序段,指出此程序段的功能。

⑴MOVCX,10

LEASI,First

LEADI,Second

REPMOVSB

该程序段的功能是将存于DS:

First开始的10个字节的内容传送到ES:

Second开始的10个字节单元中。

⑵CLD

LEADI,[0404H]

MOVCX,0080H

XORAX,AX

REPSTOSW

该程序段的功能是在ES:

0404H单元开始,依次填入80H个字的0。

(即ES:

0404H——ES:

0503H

共256个字节单元清0)

8、试用指令实现:

⑴AL寄存器低4位清0;

ANDAL,0F0H;

⑵测试DL寄存器的低2位是否为0,若是,则将0送入AL寄存器;

否则将1送入AL寄存器。

TESTDL,03H

JZz

MOVAL,1

JMPABC

Z:

MOVAL,0

ABC:

...

第四章习题解答(P195)

2、有下列数据段:

DATASEGMENT

MAXEQU03F9H

VAL1EQUMAXMOD0AH

VAL2EQUVAL1*2

BUFFDB4,5,‘1234’

BUF2DB?

LENDEQUBUF2-BUFF

DATAENDS

请写出数据段中MAX,VAL1,VAL2,LEND符号所对应的值。

上述程序的数据段中

MAX=03F9H,VAL1=03F9HMOD0AH=7,VAL2=VAL1*2=7*2=0EH,LEND=BUF2-BUFF=0006-0000=0006H

标号

段内偏移地址

数据

备注

BUFF

0000

04

0001

05

0002

31

‘1’

0003

32

‘2’

0004

33

‘3’

0005

34

‘4’

BUF2

0006

00

……

3、设下列指令语句中的标识符均为字变量,请指出哪些指令是非法的,并指出其错误之处。

⑴MOVWORD1[BX+2][DI],AX;

⑵MOVAX,WORD1[DX];

,DX不能作为寻址内存的指针。

⑶MOVWORD1,WORD2;

,内存储器单元之间不能直接传送。

⑷MOVSWORD,DS;

⑸MOVSP,DWORD[BX][SI];

,DWORD是保留字

⑹MOV[BX][SI],CX;

⑺MOVAX,WORD1+WORD2;

,两个变量不能直接相加

⑻MOVAX,WORD2+0FH;

⑼MOVBX,0FFSETWORD1;

⑽MOVSI,OFFSETWORD2[BX];

,OFFSET后应跟变量或标号

9、巳知X,Y,Z被赋值如下:

XEQU60

YEQU70

ZEQU8

试求下列表达式的值:

⑴X*Y-Z

⑵X/8+Y

⑶XMOD(Y/Z)

⑷X*(YMOD2)

⑸XGEY

⑹YANDZ

⑴X*Y-Z=60*70-8=4192=1060H

⑵X/8+Y=77.5=4DH

⑶XMOD(Y/Z)=4

⑷X*(YMOD2)=0

⑸XGEY=0

⑹YANDZ=0

10、设有一个有符号数组,共M个字,试编写一程序求其中最大的数,若需求绝对值最大的数,程序

应如何修改?

又若数组元素为无符号数,求最大数的程序应如何修改?

⑴在有符号数组中找出最大数的程序

datasegment

mequ10

datdwmdup(?

maxdw?

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

start:

movax,data

movds,ax

movax,dat

movmax,ax

cld

leasi,dat

movcx,m

l1:

lodsw

cmpax,max

jnglab

lab:

loopl1

movah,4ch

int21h

mainendp

codeends

endstart

⑵在有符号数组中找出绝对值最大数的程序

在LODSW指令后插入:

Andax,ax

Jnslab1

Negax

lab1:

cmpax,max

初始化时,(MAX)=0(最小的绝对值)

⑶在无符号数组中找出最大数的程序

把条件判断指令:

Jnglab

改为:

jbelab

12、设有两个等字长、

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

当前位置:首页 > 工程科技 > 能源化工

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

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