打印稿课后习题答案.docx

上传人:b****5 文档编号:6859250 上传时间:2023-01-11 格式:DOCX 页数:57 大小:498.57KB
下载 相关 举报
打印稿课后习题答案.docx_第1页
第1页 / 共57页
打印稿课后习题答案.docx_第2页
第2页 / 共57页
打印稿课后习题答案.docx_第3页
第3页 / 共57页
打印稿课后习题答案.docx_第4页
第4页 / 共57页
打印稿课后习题答案.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

打印稿课后习题答案.docx

《打印稿课后习题答案.docx》由会员分享,可在线阅读,更多相关《打印稿课后习题答案.docx(57页珍藏版)》请在冰豆网上搜索。

打印稿课后习题答案.docx

打印稿课后习题答案

〔习题1.1〕

〔解答〕CPU是英文CentralProcessingUnit的缩写,中文译为中央处理单元/中央处理器,微型机采用一块大模拟集成电路芯片构成CPU。

〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?

〔解答〕

通用微处理器:

适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。

单片机:

是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。

DSP芯片:

称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。

嵌入式系统:

利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。

〔习题1.3〕什么是摩尔定律?

它能永久成立吗?

〔解答〕

摩尔定律(Moore'sLaw)

集成电路上晶体管密度每年将翻倍

每隔18个月硅片密度(晶体管容量)将翻倍

每18个月,集成电路的性能将提高一倍,而其价格将降低一半

摩尔定律不会永远持续

今后,性能提高更多地得益于计算机系统结构的革新

现在,多核处理器使得摩尔定律延续

〔习题1.4〕冯·诺伊曼计算机的基本设计思想是什么?

〔解答〕

采用二进制形式表示数据和指令。

指令由操作码和地址码组成

将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。

这就是“存储程序”和“程序控制”(简称存储程序控制)的概念

指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现

计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能

〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用。

〔解答〕

CPU:

CPU也称处理器,是微机的核心。

它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。

处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。

存储器:

存储器是存放程序和数据的部件。

外部设备:

外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。

I/O设备通过I/O接口与主机连接。

总线:

互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。

〔习题1.6〕什么是总线?

微机总线通常有哪3组信号?

各组信号的作用是什么?

〔解答〕

总线:

传递信息的共用通道,物理上是一组公用导线。

3组信号线:

数据总线、地址总线和控制总线。

(1)地址总线:

传输将要访问的主存单元或I/O端口的地址信息。

(2)数据总线:

传输读写操作的数据信息。

(3)控制总线:

协调系统中各部件的操作。

〔习题1.7〕简答如下概念:

(1)计算机字长、

(2)取指-译码-执行周期、(3)ROM-BIOS、(4)中断、(5)ISA总线

〔解答〕

(1)计算机字长:

处理器每个单位时间可以处理的二进制数据位数称计算机字长。

(2)取指-译码-执行周期:

指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。

(3)ROM-BIOS:

ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。

(4)中断:

中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。

(5)ISA总线:

ISA总线是指IBMPC/AT机上使用的系统总线。

〔习题1.8〕

下列十六进制数表示无符号整数,请转换为十进制形式的真值:

(1)FFH

(2)0H(3)5EH(4)EFH

〔解答〕

(1)255

(2)0(3)94(4)239

〔习题1.9〕

将下列十进制数真值转换为压缩BCD码:

(1)12

(2)24(3)68(4)99

〔解答〕

(1)12H

(2)24H(3)68H(4)99H

〔习题1.10〕

将下列压缩BCD码转换为十进制数:

(1)10010001

(2)10001001(3)00110110(4)10010000

〔解答〕

(1)91

(2)89(3)36(4)90

〔习题1.11〕

将下列十进制数用8位二进制补码表示:

(1)0

(2)127(3)-127(4)-57

〔解答〕

(1)00000000B

(2)01111111B(3)10000001B(4)11000111B

〔习题1.12〕

数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?

ASCII码0DH和0AH分别对应什么字符?

〔解答〕

数码0~9对应的ASCII码依次是30H~39H。

大写字母A~Z对应的ASCII码依次是:

41H~5AH。

小写字母a~z对应的ASCII码依次是:

61H~7AH。

ASCII码0DH和0AH分别对应的是回车和换行字符。

第2章微处理器指令系统

〔习题2.1〕

微处理器内部具有哪3个基本部分?

8088分为哪两大功能部件?

其各自的主要功能是什么?

这种结构与8位CPU相比为什么能提高其性能?

〔解答〕

(1)微处理器结构:

算术逻辑单元ALU、寄存器组和控制器;

(2)8088两大功能部件及主要功能:

①总线接口单元BIU:

管理8088与系统总线的接口负责CPU对接口和外设进行访问

②执行单元EU:

负责指令译码、执行和数据运算;

(3)8位CPU在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。

而取指令是CPU最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位CPU节省了时间,提高了性能。

〔习题2.2〕

说明8088的8个8位和8个16位通用寄存器各是什么?

〔解答〕

8个8位寄存器:

AH、AL、BH、BL、CH、CL、DH、DL;

8个16位寄存器:

累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存

器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。

〔习题2.3〕

什么是标志?

状态标志和控制标志有什么区别?

画出标志寄存器FLAGS,说明各个标志的位置和含义。

〔解答〕

标志(Flag)用于反映指令执行结果或控制指令执行形式。

状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它

CFZFSFPFOFAF

控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式

DFIFTF

进位标志CF(CarryFlag):

当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0

零标志ZF(ZeroFlag):

若运算结果为0,则ZF=1;否则ZF=0

符号标志SF(SignFlag):

运算结果最高位为1,则SF=1;否则SF=0

奇偶标志PF(ParityFlag):

当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0

溢出标志OF(OverflowFlag):

若算术运算的结果有溢出,则OF=1;否则OF=0

辅助进位标志AF(AuxiliaryCarryFlag):

运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0

方向标志DF(DirectionFlag):

用于串操作指令中,控制地址的变化方向:

设置DF=0,存储器地址自动增加;

设置DF=1,存储器地址自动减少

中断允许标志IF(Interrupt-enableFlag):

控制可屏蔽中断是否可以被处理器响应:

设置IF=1,则允许中断;

设置IF=0,则禁止中断

陷阱标志TF(TrapFlag):

用于控制处理器进入单步操作方式:

设置TF=0,处理器正常工作;

设置TF=1,处理器单步执行指令

〔习题2.4〕

举例说明CF和OF标志的差异。

〔解答〕

例:

有运算:

3AH+7CH=0B6H

作为无符号数运算,没有进位,CF=0;

作为有符号数运算,结果超出范围,OF=1。

〔习题2.5〕

什么是8088中的逻辑地址和物理地址?

逻辑地址如何转换成物理地址?

1MB最多能分成多少个逻辑段?

请将如下逻辑地址用物理地址表达:

⑴FFFFH:

0⑵40H:

17H⑶2000H:

4500H⑷B821H:

4567H

〔解答〕

物理地址:

物理存储单元具有的一个唯一的20位编号

逻辑地址:

在8088内部和用户编程时,所采用的“段地址:

偏移地址”形式

将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址

1MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段

⑴FFFFH:

0=FFFF0H

⑵40H:

17H=00417H

⑶2000H:

4500H=24500H

⑷B821H:

4567H=BC777H

〔习题2.6〕

8088有哪4种逻辑段,各种逻辑段分别是什么用途?

〔解答〕

8088有4个16位段寄存器

CS指明代码段的起始地址

SS指明堆栈段的起始地址

DS指明数据段的起始地址

ES指明附加段的起始地址

每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途

(1)代码段寄存器CS(CodeSegment):

代码段用来存放程序的指令序列

代码段寄存器CS存放代码段的段地址

指令指针寄存器IP指示下条指令的偏移地址

处理器利用CS:

IP取得下一条要执行的指令

(2)堆栈段寄存器SS(StackSegment)

堆栈段确定堆栈所在的主存区域

堆栈段寄存器SS存放堆栈段的段地址

堆栈指针寄存器SP指示堆栈栈顶的偏移地址

处理器利用SS:

SP操作堆栈顶的数据

(3)数据段寄存器DS(DataSegment)

数据段存放运行程序所用的数据

数据段寄存器DS存放数据段的段地址

各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址

处理器利用DS:

EA存取数据段中的数据

(4)附加段寄存器ES(ExtraSegment)

附加段是附加的数据段,也保存数据:

附加段寄存器ES存放附加段的段地址

各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址

处理器利用ES:

EA存取附加段中的数据

串操作指令将附加段作为其目的操作数的存放区域

如何分配各个逻辑段

程序的指令序列必须安排在代码段

程序使用的堆栈一定在堆栈段

程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段

数据的存放比较灵活,实际上可以存放在任何一种逻辑段中

〔习题2.7〕什么是有效地址EA?

8086的操作数如果在主存中,有哪些寻址方式可以存取它?

〔解答〕

(1)有效地址EA是一个16位无符号数,表示操作数所在单元到段首的距离即逻辑地址的偏移地址。

(2)操作数的寻址方式有三类:

立即数寻址方式

寄存器寻址方式

存储器寻址方式

操作数在主存中,其寻址方式即为存储器寻址方式,有如下5种寻址方式:

1、直接寻址方式

2、寄存器间接寻址方式

3、寄存器相对寻址方式

4、基址变址寻址方式

5、相对基址变址寻址方式

〔习题2.8〕

已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的内容,以及源操作数的寻址方式?

⑴movax,1200h

⑵movax,bx

⑶movax,[1200h]

⑷movax,[bx]

⑸movax,[bx+1100h]

⑹movax,[bx+si]

⑺movax,[bx][si+1100h]

〔解答〕

⑴movax,1200h;AX=1200H,立即数寻址

⑵movax,bx;AX=0100H,寄存器寻址

⑶movax,[1200h];AX=4C2AH,直接寻址

⑷movax,[bx];AX=3412H,寄存器间接寻址

⑸movax,[bx+1100h];AX=4C2AH,寄存器相对寻址

⑹movax,[bx+si];AX=7856H,基址变址寻址

⑺movax,[bx][si+1100h];AX=65B7H,相对基址变址寻址

〔习题2.9〕

说明下面各条指令的具体错误原因

⑴movcx,dl⑵movip,ax

⑶moves,1234h⑷moves,ds

⑸moval,300⑹mov[sp],ax

⑺movax,bx+di⑻mov20h,ah

〔解答〕

(1)cx为字寄存器,dl为字节寄存器,类型不匹配。

(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。

(3)不允许立即数到段寄存器的传送。

(4)不允许段寄存器之间的直接传送。

(5)数据溢出。

(6)sp不能用于寄存器间接寻址。

(7)格式不对。

应为:

movax,[bx+di]

(8)mov指令的目的操作数不能是立即数。

〔习题2.10〕

已知数字0~9对应的格雷码依次为:

18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。

请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。

leabx,table

moval,8

xlat

〔解答〕

leabx,table;获取table的首地址,BX=200H

moval,8;传送欲转换的数字,AL=8

xlat;转换为格雷码,AL=12H

〔习题2.11〕

给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:

moval,89h

addal,al

addal,9dh

cmpal,0bch

subal,al

decal

incal

〔解答〕

moval,89h;AL=89HCFZFSFOFPF

addal,al;AL=12H10011

addal,9dh;AL=0AFH00101

cmpal,0bch;AL=0AFH10101

subal,al;AL=00H01001

decal;AL=0FFH00101

incal;AL=00H01001

〔习题2.12〕

请分别用一条汇编语言指令完成如下功能:

⑴把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。

⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。

⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。

⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。

⑸把数0A0H与AL寄存器的内容相加,并把结果送回AL中

〔解答〕

⑴adddx,bx

⑵addal,byteptr[bx+si]

⑶addwordptr[bx+0b2h],cx

⑷addwordptr[0520h],3412h

⑸addal,0a0h

〔习题2.13〕

设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。

movax,X

imulY

movcx,ax

moxbx,dx

movax,Z

cwd

addcx,ax

adcbx,dx

subcx,540

sbbbx,0

movax,V

cwd

subax,cx

sbbdx,bx

idivX

〔解答〕

(V-(X*Y+Z-540))/X

商存储在AX中,余数存储在DX中。

〔习题2.14〕

给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。

movax,1470h

andax,ax

orax,ax

xorax,ax

notax

testax,0f0f0h

〔解答〕

movax,1470h;AX=1470HCFZFSFOFPF

andax,ax;AX=1470H00000

orax,ax;AX=1470H00000

xorax,ax;AX=0000H01001

notax;AX=FFFFH01001

testax,0f0f0h;AX=FFFFH00101

〔习题2.15〕

控制转移类指令中有哪三种寻址方式?

〔解答〕

相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)

〔习题2.16〕

假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?

⑴JMPBX

⑵JMPTABLE[BX]

〔解答〕

(1)1256H(BX=1256H)

(2)3280H(TABLE[BX]的物理地址为:

20000H+20A1H+1256H=232F7H,[232F7H]=3280H)

〔习题2.17〕

判断下列程序段跳转的条件

⑴xorax,1e1eh

jeequal

⑵testal,10000001b

jnzthere

⑶cmpcx,64h

jbthere

〔解答〕

⑴AX=1e1eh(异或后为0)

⑵AL的D0或D7至少有一位为1

⑶CX(无符号数)<64h

〔习题2.18〕

如下是一段软件延时程序,请问NOP指令执行了多少次?

xorcx,cx

delay:

nop

loopdelay

〔解答〕

216=65536次

〔习题2.19〕

有一个首地址为array的20个数组,说明下列程序段的功能。

movcx,20

movax,0

movsi,ax

sumlp:

addax,array[si]

addsi,2

loopsumlp

movtotal,ax

〔解答〕

功能:

累加20个字(未考虑进位(溢出)情况),和存入total单元中。

〔习题2.20〕

按照下列要求,编写相应的程序段:

⑴由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。

⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。

⑶编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。

⑷把DX.AX中的双字右移4位

⑸有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出或借位)存于原处。

〔解答〕

(1)

movdl,byteptrstring[0]

movdh,byteptrstring[5]

(2)

movax,wordptrbuffer1

subax,wordptrbuffer2;先减低16位

movdx,wordptrbuffer1+2

sbbdx,wordptrbuffer2+2;后减高16位,需减低16位的借位

(3)

testdx,0f000h

jznext

movax,-1

jmpdone

next:

movax,0

done:

(4)

movcx,4

again:

shrdx,1;右移一位,移出的低位进入CF标志

rcrax,1;将CF移进AX高位,同时实现AX右移

loopagain;循环4次,实现4位右移

(5)

movcx,100

movbx,0

again:

subarray[bx],1

incbx

loopagain

〔习题2.21〕、〔习题2.22〕、〔习题2.23〕、〔习题2.24〕略

〔习题2.25〕

编写一个程序段:

先提示输入数字“InputNumber:

0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!

”,继续等待输入数字。

〔解答〕

DATASEGMENT

inputstringdb'InputNumber:

0~9',13,10,'$'

errorstringdb'Error!

',13,10,'$'

DATAENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETinputstring

MOVAH,09H

INT21H

INPUT:

MOVAH,07H;键盘输入字符到AL,无回显

INT21H

CMPAL,'0';小于0,转移,显示'Error!

'

JBERROR

CMPAL,'9';大于9,转移,显示'Error!

'

JAERROR

MOVDL,AL;0~9数字,回显/输出到屏幕

MOVAH,02H

INT21H

JMPEXIT

ERROR:

MOVDX,OFFSETerrorstring;输出'Error!

'

MOVAH,09H

INT21H

JMPINPUT

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

第3章汇编语言程序设计

〔习题3.1〕

汇编语言有什么特点?

〔解答〕

汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数

利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序

功能有限、编程繁琐、依赖处理器指令

〔习题3.2〕

编写汇编语言源程序时,一般的组成原则是什么?

〔解答〕

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

当前位置:首页 > 法律文书 > 调解书

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

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