答案.docx
- 文档编号:27610034
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:26
- 大小:77.82KB
答案.docx
《答案.docx》由会员分享,可在线阅读,更多相关《答案.docx(26页珍藏版)》请在冰豆网上搜索。
答案
第1章概述
一、1.运算器、控制器、存储器、输入设备和输出设备
2.运算器控制器
3.数据总线、地址总线和控制总线
4.系统总线(或通信总线);系统内总线(板级总线);内部总线。
5.程序存储程序控制冯·诺依曼型。
二、简答题
1.答:
微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。
微处理器一般也称为CPU;微计算机是由微处理器、存储器、I/O接口电路及系统总线组成的裸机系统。
微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。
三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。
2.答:
总线是模块与模块之间传送信息的一组公用信号线。
总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。
因此微型计算机系统中普遍采用总线结构。
3.答:
微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。
地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。
第2章计算机中的数制与编码
一、填空题
1.写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?
(1)(01101110)二进制原码=(+1101110)二进制真值=(+110)十进制真值
(01101110)二进制反码=(+1101110)二进制真值=(+110)十进制真值
(01101110)二进制补码=(+1101110)二进制真值=(+110)十进制真值
(2)(10110101)二进制原码=(-0110101)二进制真值=(-53)十进制真值
(10110101)二进制反码=(-1001010)二进制真值=(-74)十进制真值
(10110101)二进制补码=(-1001011)二进制真值=(-75)十进制真值
2.写出下列二进制数的原码、反码和补码(设字长为8位)。
(1)(+1010110)二进制真值=(01010110)原码=(01010110)反码=(01010110)补码
(2)(-1010110)二进制真值=(11010110)原码=(10101001)反码=(10101010)补码
3.[X]补=78H,则[-X]补=(88)H。
4.下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?
(1)(11111111)二进制原码=(-127)十进制真值
(11111111)二进制反码=(-0)十进制真值
(11111111)二进制补码=(-1)十进制真值
(2)(10000000)二进制原码=(+0)十进制真值
(10000000)二进制反码=(-127)十进制真值
(10000000)二进制补码=(-128)十进制真值
5.已知X1=+0010100,Y1=+0100001,X2=0010100,Y2=0100001,试计算下列各式(设字长为8位)。
(1)[X1+Y1]补=[X1]补+[Y1]补=00010100+00100001=00110101
(2)[X1-Y2]补=[X1]补+[-Y2]补=00010100+00100001=00110101
(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码
二、选择题
1ADAAD
6.ABD
第3章微处理器及其结构
一、1.EU、16、BIU、BIU、20
2.20、4、状态
3.0FFFFH、ROM、跳转、
4.2、512K、奇地址、
5.64K、16、
6.逻辑地址
7.空闲
8.16、64K、20、1M
9.指令、总线、时钟
二、单项选择题
1.EADCD6、AAA
三、简答题
1答:
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。
若访问外设,需用到以下信号:
、ALE、
、DEN、READY、
、
、AD0~AD15。
7.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:
(1)CF=0AF=1ZF=0SF=0OF=0PF=1
(2)CF=0AF=0ZF=0SF=0OF=0PF=0
(3)CF=0AF=0ZF=0SF=0OF=0PF=1
(4)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.有一个由20个字组成的数据区,其起始地址为610AH:
1CE7H。
试写出该数据区首末单元的实际地址PA。
首单元地址:
610A0H+1CE7H=62D87H
末单元地址:
62D87H+27H=62DAEH
17.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和00135H,试画出它们的存储器示意图。
地址
内容
00130H
0DAH
00131H
31H
00132H
00133H
00134H
00135H
7F
00136H
5E
18.8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线。
第4章8086/8088CPU指令系统
一、判断题
1.(×)2.(×)3.(√)4.(×)5.(√)6.(×)
二、单项选择题
1.CACCB6.ACCCC
三、多项选择题
1、BF2、BCD3、CD4、ABDE5、ABCD
四、填空题
1.LEABX,BUF
2.7230H
3.除以16。
4.0FFA3H。
5.SAHF、POPF
6.2000H、99、JLE、LOOP1、[2100H]
7.(ES)×16+(BX)+(SI)。
五、综合题
1.答:
(1)源操作数:
立即数寻址;目的操作数:
寄存器寻址
(2)源操作数:
立即数寻址;目的操作数:
(带位移量的)基址寻址
(3)源操作数:
寄存器寻址;目的操作数:
变址寻址
(4)源操作数:
直接寻址;目的操作数:
寄存器寻址
(5)源操作数:
寄存器寻址;目的操作数:
(带位移量的)基址变址寻址
(6)源操作数:
带段超越的基址寻址;目的操作数:
隐含寻址
(7)只有一个操作数,为(带位移量的)变址寻址
2.请指出下列各条指令的错误,并改正。
答:
(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
3.答:
指令执行后标志寄存器的值为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
AAS
MOVDH,AL
6.答:
(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;将累加器清0,ZF、PF置1,CF、OF、SF清0
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等指令。
第5章汇编语言程序设计
一、填空题
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)不能有空格
2.答:
(1)错误。
K1是符号,在此处相当于立即数100,故不能做目的操作数。
(2)正确。
(3)正确。
(4)错误。
A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。
(5)错误。
用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。
3.答:
指令MOVNUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。
指令执行后NUM2+1单元的内容是0。
4.答:
(SEGA1)=0300H,(OFFSETA1)=2000H,(TYPEA1)=4,
(LENGTHA1)=2,(SIZEA1)=2×3×4=24;
(SEGA2)=0300H,(OFFSETA2)=2018H,(TYPEA2)=1,
(LENGTHA2)=10,(SIZEA2)=10×6×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.答:
有关存储单元的内容如下图所示。
8.答:
(1)正确。
(2)错误。
宏不能精简目标代码。
(3)错误。
高级语言程序经编译或解释后直接转换为目标代码。
(4)正确。
9答:
(AX)=40
10
答案:
改正后:
STAKSGSEGMENT
DB100DUP(?
)
STAKSGENDS
DTSEGSEGMENT
DATA1DB?
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
12答:
程序空处可填CNT,字节变量RS的最后结果是04H。
该程序实现的功能是:
统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。
需要注意的是:
十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。
13答案:
abc:
movah,1
int21h
cmpal,’a’
jbstop
cmpal,’z’
jastop
subal,20h
movdl,al
movah,2
int21h
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
int21h
ret
mainendp
prognamends
endstart
15答:
一种可能的程序如下实现:
DATASEGMENT
BLOCKDB35,-27,-13,6,-47,52,9,-3
COUNTEQU$-BLOCK
BUFFERDBCOUNTDUP(?
)
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DW40DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
BEGIN:
MOVAX,DATA
MOVDS,AX
MOVES,AX;需用STOS串操作指令
MOVCX,COUNT
LEASI,BLOCK;源数据区
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 答案