微机原理与接口技术李珍香版课后习题110章参考答案Word文件下载.docx
- 文档编号:18316259
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:37
- 大小:60.20KB
微机原理与接口技术李珍香版课后习题110章参考答案Word文件下载.docx
《微机原理与接口技术李珍香版课后习题110章参考答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术李珍香版课后习题110章参考答案Word文件下载.docx(37页珍藏版)》请在冰豆网上搜索。
(34)原码=00100010B(34)补码=00100010B
(48)原码=00110000B(48)补码=00110000B
(-100)原码=11100100B(-100)补码=10011100B
1.9写出下列十进制数的压缩BCD码表示形式。
456789123
456=010001010110BCD789=011110001001BCD123=000100100011BCD
1.10按照字符所对应的ASCII码表示,写出下列字符或符号所对应的ASCII码值。
‘A’ ‘b’ ‘1’ CR ‘$’
字符‘A’的ASCII码值是41H字符‘b’的ASCII码值是62H
字符‘1’的ASCII码值是31H字符CR的ASCII码值是0DH
字符‘$’的ASCII码值是24H
习题二
2.18086CPU共有哪些16位寄存器?
其中哪些16位寄存器可分为二个8位寄存器来使用?
8086CPU共有AX、BX、CX、DX、SI、DI、SP、BP、IP、FLAGS、CS、DS、ES、SS共14个16位的寄存器。
其中AX、BX、CX、DX可分为二个8位寄存器来使用
2.2简述8086CPU各通用寄存器的主要功能?
8086CPU包含AX、BX、CX、DX、SI、DI、SP、BP共8个通用寄存器。
其中AX主要用在字的乘、除法,输入/输出指令中;
BX主要在寄存器间接寻址和XLAT指令中作基址寄存器使用;
CX主要在串操作指令和LOOP指令中作计数器使用;
DX主要在字的乘除法指令和输入/输出指令中使用;
SI主要在字符串操作指令中作源变址寄存器使用;
DI主要在字符串操作指令中作目的变址寄存器使用;
SP主要在堆栈操作中作堆栈指针使用;
BP主要在寄存器间接寻址中作基址指针使用。
2.38086CPU的标志寄存器有几个状态标志位?
几个控制标志位?
它们各自的含义和作用是什么?
在Debug环境下,对应的用什么符号来表示之?
8086CPU的标志寄存器有6个状态标志位,有3个控制标志位。
其中CF进位标志位主要用来反映运算结果是否产生进位或借位,如果运算结果的最高位向前产生了一个进位(加法)或借位(减法),则其值为1,否则其值为0;
PF奇偶标志位用于反映运算结果中低8位含有“1”的个数的奇偶性,如果“1”的个数为偶数,则PF的值为1,否则为0;
AF辅助进位标志位表示加法或减法运算结果中D3位向D4位产生进位或借位的情况,有进位(借位)时AF=1;
无进位(借位)时AF=0;
ZF零标志位用来反映运算结果是否为0,如果运算结果为0,则其值为1,否则其值为0;
SF用来反映运算结果的符号位,当运算结果为负数时,SF的值为1,否则其值为0;
OF溢出标志位用于反映带符号数运算所得结果是否溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
IF中断允许标志位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求,当IF=1时,CPU响应;
当IF=0时,CPU不响应。
DF方向标志位用来控制串操作指令中地址指针的变化方向。
在串操作指令中,当DF=0时,地址指针为自动增量,即由低地址向高地址变化;
当DF=1时,地址指针自动减量,即由高地址向低地址变化。
TF追踪标志位被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。
在Debug环境下,对应的表示符号如下表
标志位
OF
DF
IF
SF
ZF
AF
PF
CF
状
态
1/0
显
示
OV/NV
DN/UP
EI/DI
NG/PL
ZR/NZ
AC/NA
PE/PO
CY/NC
2.4默认情况下,哪些寄存器可用于读取堆栈段的数据?
SP和BP
2.5有效地址就是偏移地址的说法正确吗?
正确
2.6假设用以下寄存器组合来访问存储单元,试求出它们所访问单元的物理地址。
(1)DS=1000H和DI=F000H
(2)SS=C300H和BP=3200H(3)DS=A000H和BX=1000H
(1)物理地址=1000H*16+F000H=1F000H
(2)物理地址=C300H*16+3200H=C6200H
(3)物理地址=A000H*16+1000H=A1000H
2.78086微机最大可编址的存储空间是多少?
它是由什么决定的?
8086微机最大可编址的存储空间是1MB,由CPU的地址线条数决定。
2.8给出下列8位数据在执行加法运算后,CF、OF、SF、ZF的值。
(1)EFH+2
(2)80H+80H(3)F9H+63H
(1)EFH+2=F1HCF=0OF=0SF=1ZF=0
(2)80H+80H=00HCF=1OF=1SF=0ZF=1
(3)F9H+63H=5CHCF=1OF=0SF=0ZF=0
2.9给出2.8中的每小题在执行减法运算后,CF、OF、SF、ZF的值。
(1)EFH-2=EDHCF=0OF=0SF=1ZF=0
(2)80H-80H=00HCF=0OF=0SF=0ZF=1
(3)F9H-63H=96HCF=0OF=0SF=1ZF=0
2.10简要说明8086CPU的内部结构及各部分的作用。
8086CPU的内部结构分为两大部分,分别为总线接口部件BIU和执行部件EU。
BIU负责取指令;
EU负责指令的执行。
2.11解释说明逻辑地址、偏移地址、有效地址和物理地址的含义。
逻辑地址:
是用户程序设计时所采用的地址,其表示形式为“段地址:
偏移地址”。
偏移地址:
是指某存储单元距离本段段地址的偏移量(距离),偏移地址值最大不超过FFFFH。
有效地址即为偏移地址。
物理地址:
对于CPU的20条地址线所形成的1MB个存储单元(从小到大范围为00000H~FFFFFH)就是存储单元的物理地址,每一个存储单元都有惟一的一个物理地址。
2.128086CPU的最大工作模式和最小工作模式的主要区别是什么?
如何进行控制?
主要区别反映在提供微处理器的数量及总线控制信号的产生。
由引脚MN/MX来控制。
2.13试解释时钟周期、总线周期和指令周期的概念。
并结合指令“ADD[2000H],BX”,说明执行该指令需要几个总线周期?
属于什么样的总线周期?
时钟周期为一个时钟脉冲的时间长度,是CPU的基本时间计量单位。
总线周期:
是CPU通过总线对存储器或I/O接口进行一次访问所需要的时间,一个基本的总线周期由4个T状态构成,分别称为T1、T2、T3和T4。
指令周期:
CPU执行一条指令所需要的时间,不同指令的指令周期是不等长的。
指令“ADD[2000H],BX”共需要3个总线周期,分别为:
存储器读、存储器读和存储器写。
2.14简述Pentium微处理器的内部组成结构和主要部件的功能,Pentium微处理器的主要特点有哪些?
略
2.15简要分析80486微处理器的不同工作模式的特点。
2.16简述你对双核、多核及磁微处理器的认识。
2.178086CPU按每个逻辑段最大为64KB划分,最多可分为多少个?
最少可分为多少个?
各段之间的关系如何?
每个段寄存器的作用是什么?
8086CPU按每个逻辑段最大为64KB划分,最多可划分成64K个逻辑段?
最少可划分成16个逻辑段。
习题三
1.设BX=0123H,DI=1000H,DS=3200H,试指出下列各条指令中源操作数的寻址方式,对于是存储器操作数的,还需写出其操作数的有效地址和物理地址。
(1)MOVAX,[2A38H]
(2)MOVAX,[BX]
(3)MOVAX,[BX+38H]
(4)MOVAX,[BX+DI]
(5)MOVAX,[BX+DI+38H]
(6)MOVAX,2A38H
(7)MOVAX,BX
(1)直接寻址有效地址=2A38H,物理地址=32000H+2A38H=34A38H
(2)寄存器间接寻址有效地址=0123H,物理地址=32000H+0123H=32123H
(3)寄存器相对寻址有效地址=0123H+38H=015BH,物理地址=32000H+015B=3215BH
(4)基址变址寻址有效地址=0123H+1000H=1123H,物理地址=32000H+1123H=33123H
(5)相对基址变址寻址有效地址=0123H+1000H+38H=115BH,物理地址=32000H+115BH=3315BH
(6)立即寻址
(7)寄存器寻址
2.设AX=96BCH,BX=AC4DH,CF=0。
求分别执行指令ADDAX,BX和SUBAX,BX后,AX与BX的值各为多少?
并指出标志位SF、ZF、OF、CF、PF、AF的状态。
执行ADDAX,BX后,AX=4309H,BX=AC4DH,SF=0ZF=0OF=1CF=1PF=1AF=1
执行SUBAX,BX后,AX=EA6FH,BX=AC4DH,SF=1ZF=0OF=0CF=1PF=1AF=1
3.试比较CMP指令与SUB指令的异同。
CMP指令与SUB指令的不同点有两点:
4.采用三种不同的方法实现AX与DX的内容交换。
第一种:
XCHGAX,DX
第二种:
PUSHAX
PUSHDX
POPAX
POPDX
第三种:
MOVBX,AX
MOVAX,DX
MOVDX,BX
5.编写程序段实现:
当DL中存放的数据是奇数时使AL=0,否则使AL=-1。
TESTDL,01H
JNZNEXT
MOVAL,0
NEXT:
MOVAL,-1
6.用尽可能少的指令实现使DL中的高4位内容与低4位内容互换。
MOVCL,4
ROLDL,CL;
RORDL,CL
7.编写程序段,判断AL中的带符号数是不是负数。
若是负数,则将-1送给AH;
否则,将0送给AH。
SUBAL,0
JSFS
MOVAH,0
FS:
MOVAH,-1
8.假设DX=87B5H,CL=4,CF=0,确定下列各条指令单独执行后DX中的值。
(1)SHLDL,1
(2)SHRDX,CL
(3)SARDX,CL
(4)ROLDX,CL
(5)RORDX,CL
(6)RCLDX,CL
(7)RCRDX,1
(1)DX=876AH
(2)DX=087BH
(3)DX=F87BH
(4)DX=7B58H
(5)DX=587BH
(6)DX=7B54H
(7)DX=43DAH
9.按下列要求编写指令序列。
(1)将AX中的低4位置1,高4位取反,其它位清0。
(2)检查DX中的第1、6、11位是否同时为1。
(3)清除AH中最低3位而不改变其它位,将结果存入BH中。
(1)XORAX,F000H
ANDAX,F00FH
ORAX,000FH
(2)MOVAX,DX
ANDDX,0842H
XORDX,0842H
JZZERO
┆
ZERO:
…DX中的第1、6、11位同时为1的情况
10.分析下面的程序段完成什么功能?
(提示:
请将DX与AX中的内容作为一个整体来考虑)
MOVCL,04
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
实现将DX与AX中的32位数据逻辑左移4位
11.设SS=1000H,SP=2000H,AX=345AH,BX=F971H,Flags=4509H,试分析执行以下指令
PUSHBX
PUSHAX
PUSHF
POPCX
之后,SP、SS、CX的值各为多少?
SP=1FFCHSS=1000HCX=4509H
12.指出下列指令中哪些是错误的,并说明错误原因。
(1)MOVDL,CX
(2)MOVDS,1000H
(3)MOV[DI],[BX](4)MOVDL,[BX][BP]
(5)XCHGAX,[5000H](6)PUSH3541H
(7)INC[BX](8)POPCS
(9)MOVA[BX+SI],0(10)MOVAL,300
(1)数据类型不匹配
(2)立即数不能送段寄存器
(3)两个存储器操作数之间不能直接传送数据
(4)源操作数寻址不能为基址加基址
(5)正确(6)PUSH指令的操作数不能为立即数
(7)存储器操作数类型不明确(8)CS不能作为目的操作数使用
(9)目的操作数类型需明确(10)操作数数据类型不匹配
13.已知各寄存器和存储单元的状态如图3.19所示,请阅读下列程序段,并将中间结果填入相应指令右边的空格。
习题四
4.1简述汇编语言与机器语言及高级语言间的区别?
要点:
汇编语言与机器语言的区别:
汇编语言采用符号表示,机器语言二进制表示。
汇编语言与高级语言的区别:
汇编语言属于低级语言,每条指令与对应的机器指令间是一一对应关系,而高级语言接近于自然语言。
4.2简述汇编语言程序的指令语句与伪指令语句在写法及功能上的不同?
写法上的不同主要表现在第一部分上,一条指令的第一部分“标号”若需要,则在标号后面一定有冒号“:
”,而伪指令语句的第一部分在“名字”后没有冒号“:
”。
功能上的不同:
每一条指令都有对应的机器指令,在程序运行过程中执行到每条指令时起作用;
伪指令没有对应的机器指令,是在程序汇编时起作用。
4.3汇编语言程序的标号有何规定?
标号有哪三种属性?
4.4汇编语言程序的变量如何定义?
变量有哪三种属性?
4.5汇编语言程序中,算术表达式、逻辑表达式、关系表达式各有什么含义?
4.6简述汇编语言程序上机的基本步骤和每步所进行的主要操作?
4.7设TABLE为数据段中0100H单元的符号名,其中存放的内容为FF00H,试分析以下两条指令分别执行后的结果,并指出它们之间的区别?
MOVAX,TABLE
MOVAX,OFFSETTABLE
第一条指令传送的是TABLE所指单元的内容,AX结果为FF00H;
第二条指令传送的是TABLE的偏移地址,AX结果为0100H。
4.8设有如下的变量定义:
DATASEGMENT
ARRAYDW1000H,2000H,3000H,4000H,5000H
BUFDW?
DATAENDS
请分别完成以下操作
(1)用一条指令完成将ARRAY的偏移地址送BX
(2)用一条指令完成将ARRAY的第一字节单元内容送AL
(3)用一条指令完成将ARRAY定义的数据个数送CX
(1)LEABX,ARRAY
(2)MOVAL,BYTEPTRARRAY
(3)MOVCX,(BUF-ARRAY)/2
4.9已知一数据段中的数据定义如下:
STR1DB1,2,3,4,5
STR2DB‘12345’
CONTEQU20
NUMBDB3DUP(6)
NUMWDW20H,-80H
TABLEDW0
试根据以上数据段的定义,指出下列每小题指令中的错误或者用得不当的指令。
(1)MOVAX,STR1;
STR1定义为字节类型,不能当字变量使用
(2)MOVBX,OFFSETNUMB
MOV[BX],’+’;
’+’为立即数,[BX]存储器操作数应明确类型
(3)MOVDL,NUMW+2;
NUMW为字类型,不能当字节变量使用
(4)MOVBX,OFFSETSTR1
MOVDH,BX+3;
源操作数“BX+3”不是正确表达式
(5)INCCONT;
INC中的操作数不能为立即数
(6)MOVSTR1,STR2;
MOV中的两个操作数不能同时为存储器操作数
(7)MOVAX,NUMW+2
MOVDX,0;
此处不应用MOV指令,而应该用CWD指令
DIVNUMW;
此处不应用DIV指令,而应该用IDIV指令
分号“;
”后面为答案
4.10编写一个汇编语言程序,将字符串“HelloWowld!
”中的全部小写字母转换为大写字母,并存放回原地址处。
参考程序:
DATASEGMENT
STRINGDB"
HelloWowld!
"
LENequ$-string
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movbx,offsetstring
movcl,len
next:
moval,[bx]
cmpal,'
a'
jblop
z'
jalop
subal,20h
mov[bx],al
lop:
incbx
deccl
jnznext
movah,4ch
int21h
codeends
endstart
4.11编写一个带符号数四则运算的程序,完成(Z-(X*Y+200))/20的运算,商送V单元,余数送W单元。
这里,X,Y,Z均为16位的带符号数,内容用户自己定义。
xDW2
ydw-10
zdw300
vdw?
wdw?
movax,x
movbx,y
imulbx
movcx,200
movbx,0
addax,cx
adcdx,bx
movcx,z
subcx,ax
sbbbx,dx
xchgcx,ax
xchgbx,dx
movbx,20
idivbx
movv,ax
movw,dx
movah,4ch
int21h
codeends
endstart
4.12编写一个汇编语言程序,完成以下要求。
从BUF单元处定义有10个带符号字数据:
-1、3、24、94、62、72、55、0、-48、99,试找出它们中的最大值和平均值,并依次分别存放至该数据区的后2个单元中(假设这10个数的和值不超过16位)。
参考程序:
bufDW-1,3,24,94,62,72,55,0,-48,99
nequ($-buf)/2
maxdw?
avedb?
?
leasi,buf
clc
xorax,ax
xordx,dx
movax,[si]
movcx,n
adcdx,[si]
cmpax,[si]
jgegoon
goon:
addsi,2
loopnext
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 李珍香版 课后 习题 110 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)