微机课后练习题答案整理.docx

上传人:b****2 文档编号:3310822 上传时间:2023-05-05 格式:DOCX 页数:39 大小:73.79KB
下载 相关 举报
微机课后练习题答案整理.docx_第1页
第1页 / 共39页
微机课后练习题答案整理.docx_第2页
第2页 / 共39页
微机课后练习题答案整理.docx_第3页
第3页 / 共39页
微机课后练习题答案整理.docx_第4页
第4页 / 共39页
微机课后练习题答案整理.docx_第5页
第5页 / 共39页
微机课后练习题答案整理.docx_第6页
第6页 / 共39页
微机课后练习题答案整理.docx_第7页
第7页 / 共39页
微机课后练习题答案整理.docx_第8页
第8页 / 共39页
微机课后练习题答案整理.docx_第9页
第9页 / 共39页
微机课后练习题答案整理.docx_第10页
第10页 / 共39页
微机课后练习题答案整理.docx_第11页
第11页 / 共39页
微机课后练习题答案整理.docx_第12页
第12页 / 共39页
微机课后练习题答案整理.docx_第13页
第13页 / 共39页
微机课后练习题答案整理.docx_第14页
第14页 / 共39页
微机课后练习题答案整理.docx_第15页
第15页 / 共39页
微机课后练习题答案整理.docx_第16页
第16页 / 共39页
微机课后练习题答案整理.docx_第17页
第17页 / 共39页
微机课后练习题答案整理.docx_第18页
第18页 / 共39页
微机课后练习题答案整理.docx_第19页
第19页 / 共39页
微机课后练习题答案整理.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机课后练习题答案整理.docx

《微机课后练习题答案整理.docx》由会员分享,可在线阅读,更多相关《微机课后练习题答案整理.docx(39页珍藏版)》请在冰点文库上搜索。

微机课后练习题答案整理.docx

微机课后练习题答案整理

第一章

1.1简答题

(1)计算机字长:

处理器每个单位时间可以处理的二进制数据位数。

(2)总线信号分成三组,分别是数据总线、地址总线和控制总线。

(3)PC机主存采用DRAM组成。

(4)高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。

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

(8)MASM是微软开发的宏汇编程序。

(9)指令的处理过程。

处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令,翻译指令代码的功能,然后执行指令所规定的操作的过程。

1.2判断题

(1)软件与硬件的等价性原理说明软硬件在功能和性能及成本方面是等价的。

(错)原因:

(3)8086的数据总线为16位,也就是说8086的数据总线的个数或者说条数、位数是16.(对)

(5)处理器并不是直接连接外设,而是通过I/O接口电路与外设连接。

(对)

(7)Windows的模拟DOS环境与控制台环境是一样的。

(错)原因:

(10)处理器进行读操作,就是把数据从处理器内部读出传送给主存或外设。

(错)原因:

1.3填空题

(2)Intel8086支持1M容量存储空间,80486支持4G容量主存空间。

(3)16位二进制共有216个编码组合,如果一位对应处理器的一个地址信号,16位地址信号共有寻址64K容量主存空间。

(4)DOS主要支持两种可执行文件,它们的扩展名分别是exe和com。

(5)英文缩写ISA通常表示PC机工业标准结构(IndustryStandardArchitecture)总线,也标志指令集结构,后者的英文原文是InstructionSetArchitecture。

(6)Windows的文件夹对应的专业术语是目录。

问答题:

1.5什么是通用处理器,单片机,DSP芯片嵌入式系统?

答:

通用微处理器:

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

单片机:

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

DSP芯片:

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

嵌入式系统:

利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统。

1.7区别如下概念:

助记符,汇编语言,汇编语言程序和汇编程序。

答:

助记符:

人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。

汇编语言:

用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。

汇编语言程序:

用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

汇编程序:

汇编语言源程序要翻译成机器语言程序才可以由处理器执行。

这个翻译的过程称为“汇编”,完成汇编工作的程序就是汇编程序(Assembler)

1.8区别如下概念:

路劲,绝对路劲,相对路劲,当前目录。

系统磁盘上存在某个可执行文件,但在DOS环境输入其文件名却提示没有这个文件,是什么原因?

答:

路径:

操作系统以目录形式管理磁盘上的文件,文件所在的分区和目录就是该文件的路径。

绝对路径:

从根目录到文件所在目录的完整路径称为“绝对路径”。

是保证文件唯一性的标示方法。

相对路径:

从系统当前目录到文件所在目录的路径称为相对路径。

当前目录:

用户当前所在的目录就是当前目录。

指明的路径不正确,或者执行了另外一个同名的文件。

1.10冯·偌伊曼计算机的基本思想是什么?

答:

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

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

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

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

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

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

1.14说明高级语言,汇编语言,机器语言三者的区别,谈谈你对汇编语言的认识。

答:

高级语言与具体的计算机硬件无关,其表达方式接近于所描述的问题,易为人们接受和掌握,用高级语言编写程序要比低级语言容易得多,并大大简化了程序的编制和调试,使编程效率得到大幅度的提高。

而汇编语言是为了便于理解与记忆,将机器指令用助记符代替而形成的一种语言

汇编语言的语句通常与机器指令对应,因此,汇编语言与具体的计算机有关,属于低级语言。

它比机器语言直观,容易理解和记忆,用汇编语言编写的程序也比机器语言易阅读、易排错。

机器语言的每一条机器指令都是二进制形式的指令代码,计算机硬件可以直接识别。

高级语言程序通常也需要翻译成汇编语言程序,再进一步翻译成机器语言代码。

 

第二章

2.1简答题

(2)8086的取指为什么可以称为指令欲取?

答:

取指是指从主存取出指令代码通过总线传输到处理器内部指令寄存器的过程。

8086分成总线接口单元和指令执行单元,可以独立操作。

在执行单元执行一条指令的同时,总线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。

(5)标志寄存器主要保存哪方面的信息?

答:

标志寄存器主要保存反映指令执行结果和控制指令执行形式的有关状态。

(6)执行了一条加法指令后,发现ZF=1,说明结果是什么?

答:

执行了一条加法指令后,发现ZF=1,表明运算结果为0。

(8)汇编语言的标识符大小写不敏感意味着什么?

答:

汇编语言的标识符大小写不敏感,即表示字母大小写不同、但表示同一个符号。

(9)汇编语言源程序文件中,END语句后的语句会被汇编吗?

答:

不会。

2.2判断题

(3)EAX也被称为累加器,因为它使用最频繁。

对。

(5)汇编语言的语句由明显的四部分组成,不需要分隔符区别。

错。

原因:

(6)80-90需要借位,所以之行结束后,进位标志CF=1。

对。

(7)MASM汇编语言的注释以分号开始,但不实用中文分号。

对。

(9)存储器寻址方式的操作数当然在主存了。

对。

2.3填空题

(1)寄存器EDX是32位的,其中低16位的名称是___DX_,还可以分成两个8位的寄存器,其中D8~D15部分可以用名称DH表示。

(3)逻辑地址有段地址和偏移地址两部分组成。

代码段中下一条要执行的指令由CS和EIP寄存器指示,后者在实地址模型中起作用的仅有IP寄存器部分。

(4)进行8位二进制数加法:

10111010+01101100,8位结果是00100110,标志PF=_0_。

(5)在实地址工作方式下,逻辑地址“7380H∶400H”表示的物理地址是73C00H,并且该段起始于73800H物理地址。

(7)IA-32处理器复位后,首先进入是实地址工作方式。

该工作方式分段最大不超过64KB。

问答题:

2.12汇编语言有哪两种?

每句语句由哪四部分组成?

答:

汇编语句有两种:

执行性语句(处理器指令)、说明性语句(伪指令)。

每个语句有:

标号、指令助记符、操作数或参数、注释4个部分组成。

2.13汇编语言程序的开发有哪4个步骤?

并说明分别利用什么程序完成,产生什么输出文件。

答:

汇编语言程序的开发有4个步骤:

编辑:

用文本编辑器形成一个以ASM为扩展名的源程序文件。

汇编:

用汇编程序将ASM文件转换为OBJ模块文件。

连接:

用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。

调试:

用调试程序排除错误,生成正确的可执行文件。

2.16说明下列指令中源操作数的寻址方式?

假设VARD是一个双字变量。

(1)movedx,1234h

(2)movedx,vard

(3)movedx,ebx

(4)movedx,[ebx]

(5)movedx,[ebx+1234h]

(6)movedx,vard[ebx]

(7)movedx,[ebx+edi]

(8)movedx,[ebx+edi+1234h]

(9)movedx,vard[esi+edi]

(10)movedx,[ebp*4]

答:

①立即数

②直接

③寄存器

④寄存器间接

⑤寄存器相对

⑥寄存器相对

⑦基址变址

⑧相对基址变址

⑨相对基址变址

⑩带比例寻址

第三章

3.1简单题

(1)使用二进制8位表达无符号整数,257有对应的编码吗?

答:

没有。

使用二进制8位无符号表达的最大整数为255,故257没有对应的编码。

(2)数字“F”和数值46H作为MOV指令的源码操作数有区别吗?

答:

因为字符“F”所对应的ASCII码就是46H,故没区别。

(3)为什么可以把指令“MOVAX,(34+67H)*3”中的数值表达式看成是常量?

答:

汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。

(8)大小写字母转换利用了什么规律?

答:

大小写字母转换利用它们的ASCII码相差20H。

(9)乘除法运算针对无符号数和有符号数有两种不同的指令,只有一种指令的加减法如何区别无符号数和有符号数运算?

答:

加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。

3.2判断题

(2)常用的BCD编码为8421BCD码,其中的8表示D3位的权重。

(4)空操作NOP指令其实根本没有指令。

(6)虽然ADD指令和SUB指令执行后会影响标志状态,但执行前的标志并不影响他们的执行结果。

(8)无符号数在前面加零扩展,数值不变,有符号数前面进行符号扩展,位数加长一位,数值加一倍。

(9)逻辑运算没有进位或溢出问题,此时CF和OF没有作用,所以逻辑运算指令(如AND

OR等)CF和OF设置为0.对

3.3填空题

(2)计算机中有一个“01100001”编码,如果认为它是无符号数,它是十进制数97;如果认为是BCD编码,则表示数值61;又如果它是某个ASCII编码,则代表字符a。

(3)C语言用“\n”表示让光标回到下一行首位,在汇编语言中输出两个控制字符:

一个是回车,其ASCII码是0DH(13),它将光标移动到当前所在行的首位;另一个换行,其ASCII码是0AH(10),它将光标移动到下一行。

(5)用DWORD定义一个变量XYZ,它的类型是DWORD,用“TYPEXYZ”会得到数值为4,如果将其以字量使用,应该用WORDPTRXYZ说明。

(6)数据段有语句“ABCBYTE1,2,3”,代码段指令“MOVCL,ABC+2”执行后,

CL=3。

(8)指令“XOREAX,EAX”和“SUBEAX,EAX”执行后,EAX=0,CF=OF=0。

而指令“MOVEAX,0”执行后,EAX=0,CF和OF没变化。

问答题:

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

(1)0

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

答:

(1)0=00000000

(2)127=01111111

(3)-127=10000001

(4)-57=11000111

3.10设置一个数据段,按照如下要求定义变量或符号常量:

(1)my1b为字符串变量:

PersonalComputer

(2)my2b为用十进制数表示的字节变量:

20

(3)my3b为用十六进制数表示的字节变量:

20

(4)my4b为用二进制数表示的字节变量:

20

(5)my5w为20个未赋值的字变量

(6)my6c为100的常量

(7)my7c表示字符串:

PersonalComputer

答:

my1bbyte'PersonalComputer'

my2bbyte20

my3bbyte14h

my4bbyte00010100b

my5wword20dup(?

my6c=100

my7cequ

3.12从低地址开始以字节为单位,用十六进制形式给出下列语句依次分配的数值:

byte'ABC',10,10h,'EF',3dup(-1,?

3dup(4))

word10h,-5,3dup(?

答:

4142430A104546FF00040404FF00040404FF00040404

1000FBFF000000000000

3.14按照如下输出格式,在屏幕上显示ASCII表:

|0123456789ABCDEF

---+--------------------------------

20|!

“#...

30|0123...

40|@ABC...

50|PQRS...

60|‘abc...

70|pqrs...

表格最上一行的数字是对应列ASCII代码值的低4位(用十六进制形式),而表格左边的数字对应行ASCII代码值的高4位(用十六进制形式)。

编程在数据段直接构造这样的表格、填写相应ASCII代码值(不是字符本身),然后使用字符串显示子程序DISPMSG实现显示。

3.15数据段有如下定义,IA-32处理器将以小端方式保存在主存:

vardword12345678h

现以字节为单位按地址从低到高的顺序,写出这个变量内容。

并说明如下指令的执行结果:

moveax,var;EAX=_12345678H

movbx,var;BX=_5678H

movcx,var+2;CX=_1234H_

movdl,var;DL=__78H

movdh,var+3;DH=12H_

可以编程使用十六进制字节显示子程序DSIPHB顺序显示各个字节进行验证,还可以使用十六进制双字显示子程序DSIPHD显示该数据进行对比。

3.20分别执行如下程序片断,说明每条指令的执行结果:

(1)

moveax,80h;EAX=_80H_

addeax,3;EAX=_83H_,CF=_0_,SF=_0__

addeax,80h;EAX=_103H_,CF=_0_,OF=_0_

adceax,3;EAX=106H__,CF=_0__,ZF=__0__

(2)

moveax,100;EAX=____100______

addax,200;EAX=__300________,CF=__0________

(3)

moveax,100;EAX=___100_______

addal,200;EAX=___44_______,CF=____1______

(4)

moval,7fh;AL=___7FH_______

subal,8;AL=____77H______,CF=_0_________,SF=____0______

subal,80h;AL=____F7H______,CF=___1_______,OF=___1_______

sbbal,3;AL=____F3H______,CF=____0______,ZF=____0______

3.23分别执行如下程序片断,说明每条指令的执行结果:

(1)

movesi,10011100b;ESI=___9C_______H

andesi,80h;ESI=____80______H

oresi,7fh;ESI=___FF_______H

xoresi,0feh;ESI=__01________H

(2)

moveax,1010b;EAX=_1010_________B

shreax,2;EAX=____0010______B,CF=____1______

shleax,1;EAX=___0100_______B,CF=__0________

andeax,3;EAX=___0000_______B,CF=____0______

(3)

moveax,1011b;EAX=___1011_______B

roleax,2;EAX=101100______B,CF=__0________

rcreax,1;EAX=__10110________B,CF=__0________

oreax,3;EAX=__10111________B,CF=___0_______

(4)

xoreax,eax;EAX=____0______,CF=_____0_____,OF=____0______

;ZF=__1________,SF=__0________,PF=_____1_____

3.30说明如下程序执行后的显示结果:

;数据段

msgbyte'WELLDONE',0

;代码段

movecx,(lengthofmsg)-1

movebx,offsetmsg

again:

moval,[ebx]

addal,20h

mov[ebx],al

addebx,1

loopagain

moveax,offsetmsg

calldispmsg

如果将其中语句“movebx,offsetmsg”改为“xorebx,ebx”,则利用EBX间接寻址的两个语句如何修改成EBX寄存器相对寻址,就可以实现同样功能?

答:

显示结果:

welldone

EBX寄存器相对寻址:

moval,msg[ebx]

movmsg[ebx],al

第四章

4.1简单题

(1)是什么特点决定了目标地址的相对寻址方式应用最多?

答:

当同一个程序被操作系统安排到不同的存储区域执行时,指令间的位移没有改变,目标地址采用相对寻址可方便操作系统的灵活调度。

(2)什么是奇偶校验?

答:

数据通信时,数据的某一位用做传输数据的奇偶校验位,数据中包括校验位在内的“1”的个数恒为奇数,就是奇校验;恒为偶数,就是偶校验。

(3)为什么判断无符号数大小和有符号大小的条件转移指令不同?

答:

无符号数和有符号数的操作影响两组不同的标志状态位,故判断两个无符号数和有符号数的大小关系要利用不同的标志位组合,所以有对应的两组指令。

(4)双分支结构中两个分支体之间的JMP指令有什么作用?

答:

双分支结构中两个分支体之间的JMP指令,用于实现结束前一个分支回到共同的出口作用。

(7)参数传递的“传值”和“传址”有什么区别?

答:

“传值”是传递参数的一个拷贝,被调用程序改变这个参数不影响调用程序;“传址”时,被调用程序可能修改通过地址引用的变量内容。

4.2判断题

(2)JMP指令对应高级语言的GOTO语句,所以不能使用。

错。

原因:

(3)因为条件转移指令Jcc要利用标志作为条件,所以也影响标志。

错。

原因:

(4)JA和JG指令的条件都是“大于”,所以是同一个指令的两个助记符。

错。

原因:

(6)介绍LOOP指令时,常说它相当于DECECX和JNZ两条指令。

但考虑对状态标志的影响,它们有差别。

LOOP指令不影响标志,而DEC指令却会影响除CF之外的其他状态标志。

对。

(8)子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。

错。

原因:

4.3填空题

(2)假设在平展存储模型下,EBX=1256H,双字变量TABLE的偏移地址是20A1H,线性地址32F7H处存放3280H,执行指令“JMPEBX”后EIP=__1256H_,执行指令“JMPTABLE[EBX]”后EIP=__3280H_。

(3)“CMPEAX,3721H”指令之后是JZ指令,发生转移的条件是EAX=_3721H_,此时ZF=_1_。

(5)循环结构程序一般有三个部分组成,它们是__循环初始__,循环体和_循环控制_部分。

(7)过程定义开始是“TESTPROC”语句,则过程定义结束的语句是_TESTENDP_。

宏定义开始是“DISPMACRO”语句,则宏定义结束的语句是_ENDM_。

(9)MASM汇编语言中,声明一个共用的变量应使用_PUBLIC_伪指令;而使用外部变量要使用__EXTERN_伪指令声明。

问答题:

执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1?

它会使得哪些条件转移指令指令Jcc的条件成立、发生转移?

moveax,20h

cmpeax,80h

〔解答〕

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

可以使得条件成立、发生转移的指令有:

JCJSJPJNZJNO

〔习题4.8〕

在采用奇偶校验传输数据的接收端应该验证数据传输的正确性。

例如,如果采用偶校验,那么在接收到的数据中,其包含“1”的个数应该为0或偶数个,否则说明出现传输错误。

现在,在接收端编写一个这样的程序,如果偶校验不正确显示错误信息,传输正确则继续。

假设传送字节数据、最高位作为校验位,接收到的数据已经保存在Rdata变量中。

〔解答〕

;数据段

Rdatabyte57h;保存接收的数据

errorbyte'Error!

',0

;代码段

moval,Rdata

andal,0ffh;标志PF反映“1”的个数

jpdone;个数为偶数,正确继续

moveax,offseterror;个数为奇数,显示出错

calldispmsg

done:

〔习题4.11〕编写一个程序,先提示输入数字“InputNumber:

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

”,继续等待输入数字。

〔解答〕

;数据段

inmsgbyte'Inputnumber(0~9):

',0

ermsgbyte0dh,0ah,'Error!

Inputagain:

',0

;代码段

moveax,offsetinmsg;提示输入数字

calldispmsg

again:

callreadc;等待按键

cmpal,'0';数字<0?

jberdisp

cmpal,'9';数字>9?

jaerdisp

calldispcrlf

calldispc

jmpdone

erdisp:

moveax,offsetermsg

calldispmsg

jmpagain

done:

〔习题4.12〕

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

movecx,20

moveax,0

movesi,eax

sumlp:

addeax,array[esi]

addesi,

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2