微机原理习题集答案Word格式.docx

上传人:b****5 文档编号:18378697 上传时间:2022-12-15 格式:DOCX 页数:26 大小:106.78KB
下载 相关 举报
微机原理习题集答案Word格式.docx_第1页
第1页 / 共26页
微机原理习题集答案Word格式.docx_第2页
第2页 / 共26页
微机原理习题集答案Word格式.docx_第3页
第3页 / 共26页
微机原理习题集答案Word格式.docx_第4页
第4页 / 共26页
微机原理习题集答案Word格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

微机原理习题集答案Word格式.docx

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

微机原理习题集答案Word格式.docx

(3)[X2-Y2]补=[X2]补+[-Y2]补=11101100+00100001=00001101

(4)[X2+Y2]补=[X2]补+[Y2]补=11101100+11011111=11001011

6.将下列十六进制数分别转换成二进制、八进制、十进制和BCD数。

(1)(5D.BA)16=(0101,1101.1011,1010)2=(135.564)8=(93.7265625)10

=(1001,0011.0111,0010,0110,0101,0110,0010,0101)BCD

(2)(1001.0101,1)2=(9.34375)10=(11.26)8=(9.58)16

=(1001.0011,0100,0011,0111,0101)BCD

7.写出下列字符的ASCII码。

(1)‘9’=(39H)ASCII码

(2)‘C’=(43H)ASCII码

(3)‘$’=(24H)ASCII码(4)‘空格’=(20H)ASCII码

(5)‘b’=(62H)ASCII码(6)‘回车’=(0DH)ASCII码

(7)‘换行’=(0AH)ASCII码(8)‘报警符’=(07H)ASCII码

二、选择题

1.A2.D3.A4.A5.D6.ABD

第3章微处理器及其结构

1.EU、16、BIU,BIU、20、。

2.20、4、状态。

3.0FFFF0H、ROM、跳转。

4.2、512K、

5.64K、16。

6.逻辑地址。

7.空闲。

8.16、64K、20、1M、。

9.指令、总线、时钟。

二、单项选择题

1.E2.A3.D4.C5.D6.A7.A8.A

三、简答题

EU是执行部件,主要的功能是执行指令和形成有效地址。

BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。

EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。

EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。

2.答:

8086/8088CPU的地址总线共20位,最大可寻址1MB空间。

3.答:

8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。

而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。

这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?

实际使用的解决办法是:

将1MB大小的存储空间分为若干“段”,每段不超过64KB。

这样,一个20位的物理地址就可以用“16位段基址:

16位偏移量”的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。

4.答:

8086/8088CPU中共有:

8个16位的通用寄存器AX、BX、CX、DX、BP、SP、SI、DI;

2个变址寄存器SI、DI;

2个指针寄存器BP、SP;

其中BX、BP、SI、DI亦可作地址寄存器。

5.答:

8086与8088的区别主要表现在以下几个方面:

第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。

而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。

第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。

注意:

8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。

第三、其他不同的引脚定义:

(1)AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8改为A15~A8只作地址线用;

(2)34、28号引脚定义不同。

6.答:

8086/8088CPU工作在最小模式时,若访问存储器,需用到以下信号:

、ALE、

、DEN、READY、

、AD0~AD15、A19/S6~A16/S3。

若访问外设,需用到以下信号:

、AD0~AD15。

7.

(1)1278H+3469H

答:

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

(2)54E3H-27A0H答:

CF=0AF=0ZF=0SF=0OF=0PF=0(3)3881H+3597H答:

CF=0AF=0ZF=0SF=0OF=0PF=1(4)01E3H-01E3H答:

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

其中,进位标志CF用于判别无符号数运算是否超出数的表示范围,而溢出标志OF用于判别带符号数运算是否超出数的表示范围。

奇偶标志PF只能判断结果低8位中“1”的个数为奇数还是偶数。

8.答:

逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;

物理地址是一个20位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。

由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。

他们之间的关系是:

物理地址=段基址*16+偏移量;

另外,一个物理地址可对应多个逻辑地址。

9.答:

DS段寄存器内容为0B000H。

10.答:

逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:

0088H。

偏移地址是指段内某个存储单元相对该段首地址的差值。

物理地址是8086芯片引线送出的20位地址码,物理地址=段基址*16+偏移地址,用来指出一个特定的存储单元。

11.答:

物理地址:

0C2EC0H。

12.答:

考虑到芯片成本和体积,8086/8088采用40条引线的封装结构。

40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

13.答:

引线

的逻辑状态决定8086的工作模式,

引线接高电平,8086被设定为最小模式,

引线接低电平,8086被设定为最大模式。

14.答:

基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。

15.答:

8086为16位微处理器,可访问1M字节的存储器空间;

1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;

偶体的数据线连接D7~D0,“体选”信号接地址线A0;

奇体的数据线连接D15~D8,“体选”信号接

信号;

A0信号有效时允许访问偶体中的低字节存储单元,

信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。

16.首单元地址:

610A0H+1CE7H=62D87H;

末单元地址:

62D87H+27H=62DAEH

17.

地址

内容

00130H

0DAH

00131H

31H

00132H

00133H

00134H

00135H

7F

00136H

5E

18.答:

8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线。

第4章8086/8088CPU指令系统

一、判断题

1.×

2.×

3.√4.×

5.√6.×

1.C2.A3.C4.C5.B6.A7.C8.C9.C10.C

三、多项选择题

1.BF2.BCD3.CD4.ABDE5.ABC

四、填空题

1.LEABX,BUF。

2.(BX)=7230H。

3.除以16。

4.0FFA3H。

5.SAHF、POPF、POPF。

6.99、JLE、LOOP1、[2100H]

7.(ES)×

16+(BX)+(SI)。

五、综合题

1.

(1)MOVSI,2100H

(2)SBBDISP[BX],7(3)AND[DI],AX(4)ORAX,[609EH](5)MOV[BX+DI+30H],CX(6)PUSHES:

[BP](7)CALLDISP[DI]

(1)源操作数:

立即数寻址;

目的操作数:

寄存器寻址

(2)源操作数:

(带位移量的)基址寻址

(3)源操作数:

寄存器寻址;

变址寻址

(4)源操作数:

直接寻址;

目的操作数:

(5)源操作数:

(带位移量的)基址变址寻址

(6)源操作数:

带段超越的基址寻址;

隐含寻址

(7)只有一个操作数,为(带位移量的)变址寻址

2.MOV[100],23H

(1)ADDAX,[BX+BP+6]

(2)PUSHDL

(3)INAX,[3FH]

(4)OUT3FFH,AL

(5)LESSS,[SI]

(6)POP[AX]

(7)IMUL4CH

(8)SHLBX,

(9)INT300

(10)XCHGDX,0FFFH

(11)MOVAH,BX

(12)MOV[BX],ES:

AX

(13)MOVAX,OFFSET[SI]

(14)MOVCS,AX

(15)MOVDS,ES

(16)MOVDS,1000H

(1)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;

但是如果考虑实际编译,则第一操作数前应加上BYTEPTR或WORDPTR说明,否则汇编程序会因不能确定操作数长度而指示出错。

可改为:

MOVBYTEPTR[100],23H

(2)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:

ADDAX,[BX+DI+6]

(3)堆栈操作应以字为单位进行,而DL是一个字节。

PUSHDX

(4)在输入/输出指令中,8位端口地址应直接写在操作数处。

INAX,3FH

(5)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。

MOVDX,3FFHOUTDX,AL

(6)LES指令的目操作数应该是通用寄存器,不能是段寄存器。

LESAX,[SI]

(7)AX不能用于间接寻址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。

可改为:

POP[BX]

(8)立即数不能做乘法指令的操作数,可改为:

MOVBL,4CH

IMULBL

(9)当逻辑移位的次数大于1时,应该用CL指示次数。

MOVCL,5

SHLBX,CL

(10)操作数300255,已超出有效的中断类型码范围。

(11)XCHG指令不允许立即数做它的操作数。

MOVCX,0FFFH

XCHGDX,CX

(12)源、目的字长不一致

(13)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式

(14)OFFSET只用于简单变量,应去掉

(15)CS不能作为目的寄存器

(16)段寄存器之间不能直接传送数据

(17)不允许直接向段寄存器送立即数,可改为:

MOVAX,1000H

MOVDS,AX

指令执行后标志寄存器的值为0411H,(AX)=0411H,(SP)=005EH。

4.答案:

(1)(AX)=5(BX)=16(CX)=0(DX)=0

(2)(AX)=3(BX)=7(CX)=2(DX)=0

(3)(AX)=2(BX)=4(CX)=3(DX)=1

5.答案:

MOVAX,0

MOVAL,N1

SUBAL,N2

AAS

MOVDL,AL

MOVAL,N1+1

SBBAL,N2+1

MOVDH,AL

(1)MOVAX,0;

仅将累加器清0,不会影响任何标志位

(2)SUBAX,AX;

累加器清0的同时影响所有状态标志,具体地有:

ZF、PF置1,CF、AF、SF、OF均清0

(3)ANDAX,0;

将累加器清0,ZF、PF置1,CF、OF、SF清0

(4)XORAX,AX;

7.答:

执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。

8.答:

执行结果为(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877H。

9.答:

执行结果为(AX)=0A64CH,(CX)=0F208H,CF=OF=0。

10.答:

程序段执行后(AL)=23H。

该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。

11.答:

执行结果为(AX)=2,(DX)=0ACF0H。

12.答:

一种可能的程序段实现如下:

MOVAX,VAR;

AXx

CMPAX,30

JGPLUS2;

x>

30,则转PLUS2

CMPAX,1

JLMIN2;

x<

1,则转MIN2

MOVF1,0;

30≥x≥1,y=0

JMPGO

PLUS2:

MOVF1,2;

y=2

JMPGO

MIN2:

MOVF1,-2;

y=-2或00FEH

GO:

……;

后续处理

简析:

本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用。

若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;

若当作无符号数,则应使用JA、JB、JAE、JBE

第五单元

1.SEGMENT、ENDS。

2.1200。

3.在同一个代码段中、不在同一个代码段中。

4.AH。

5.过程、PROC、ENDP、NEAR、FAR。

6.立即数寻址。

1.D2.ABCEF3.ABC4.C5.B6.A

三、综合题

1.答案:

(1)因为‘.’只允许是标号的第一个字符

(2)第一个字符不能为数字(3)不允许出现‘-’

(4)不能是保留字,如助记符(5)不能有空格

(1)错误。

K1是符号,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)正确。

(4)错误。

A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

5)错误。

用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

指令MOVNUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。

指令执行后NUM2+1单元的内容是0。

4.答:

(SEGA1)=0300H,(OFFSETA1)=2000H,(TYPEA1)=4,

(LENGTHA1)=2,(SIZEA1)=2×

4=24;

(SEGA2)=0300H,(OFFSETA2)=2018H,(TYPEA2)=1,

(LENGTHA2)=10,(SIZEA2)=10×

1=60;

(SEGA3)=0300H,(OFFSETA3)=2054H,(TYPEA3)=2,

(LENGTHA3)=100,(SIZEA3)=100×

2=200

5.答案:

不一样。

分别是72H,04H和04H,72H。

存储字时低8位存在低字节,高8位存在高字节。

6.答:

(1)ALPHA*4GTBETA=100*4GT25=0FFFFH

(2)ALPHAMODGAMMA+BETA=100MOD2+25=25

(3)(BETA/3)LE5=(25/3)LE5=0

(4)ALPHAANDBETA=100AND25=64H&

19H=0

(5)GAMMAXOR(BETAEQ25)=2⊕(25EQ25)=0FFFDH

7.答:

有关存储单元的内容如下图所示。

(1)正确。

(2)错误。

宏不能精简目标代码。

(3)错误。

高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

(AX)=40

10.答案:

改正后:

STAKSGSEGMENT

DB100DUP(?

STAKSGENDS

DTSEGSEGMENT

DATADB?

DTSEGENDS

CDSEGSEGMENT

MAINPROCFAR

ASSUMECS:

CDSEG,DS:

DTSEG,SS:

STAKSG

START:

MOVAX,DTSEG

MOVDS,AX

MOVAL,34H

ADDAL,4FH

MOVDATA1,AL

MOVAH,4CH

INT21H

MAINENDP

CDSEGENDS

ENDSTART

11.答案:

MOVBX,TABLE_ADDR;

执行后(BX)=1234H;

LEABX,TABLE_ADDR;

执行后(BX)=OFFSETTABLE_ADDR

程序空处可填CNT,字节变量RS的最后结果是04H。

该程序实现的功能是:

统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。

需要注意的是:

十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。

13.答案:

abc:

movah,1

int21h

cmpal,’a’

jbstop

cmpal,’z’

jastop

subal,20h

movdl,al

movah,2

jmpabc

stop:

ret

14.答案:

datareasegment

string1db‘asfioa’

string2db‘xcviyoaf’

mess1db‘MATCH’,’$’

mess2db‘NOMATCH’,’$’

datareaends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

datarea

start:

pushds

subax,ax

pushax;

返回DOS

movax,datarea

movds,ax

moves,ax;

赋初值

begin:

movcx,string2-string1

movbx,mess1-string2

cmpbx,cx;

比较两字符串的长度

jnzdispno

leadx,addr;

若长度相同

leasi,string1

leadi,string2;

地址指针赋初值

repecmpsb;

比较

jnedispno

movah,9;

相同,显示MATCH

leadx,mess1

int21h

ret

dispno:

movah,9;

不同,显示NOMATCH

leadx,mess2

mainendp

prognamends

endstart

一种可能的程序如下实现:

DATASEGMENT

BLOCKDB35,-27,-13,6,-47,52,9,-3

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

当前位置:首页 > 高等教育 > 其它

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

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