微机系统原理与接口技术第三章习题解答.docx
- 文档编号:62193
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:15
- 大小:60.26KB
微机系统原理与接口技术第三章习题解答.docx
《微机系统原理与接口技术第三章习题解答.docx》由会员分享,可在线阅读,更多相关《微机系统原理与接口技术第三章习题解答.docx(15页珍藏版)》请在冰豆网上搜索。
微机系统原理与接口技术第三章习题解答
微机系统原理与接口技术”第三章习题解答
1.下列各条指令是否有错?
如果有,请指出错误之处并改正。
1)
MOV
DS,
1000H
2)
MOV
[100]
,23H
3)
ADD
AX,
[BX+BP+6]
4)
PUSH
DL
5)
IN
AX,
[3FH]
6)
OUT
3FFH
,AL
7)
LES
SS,
[SI]
8)
POP
[AX]
9)
IMUL
4CH
10)
SHL
BX,
5
11)
INT
300
12)
XCHG
DX,
0FFFH
答:
(1)错误。
不允许直接向段寄存器送立即数,可改为:
MOVAX,1000H
MOVDS,AX
(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPTR或WORDPTR说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:
MOVBYTEPTR[100],23H
(3)错误。
不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:
ADDAX,[BX+DI+6]
(4)错误。
堆栈操作应以字为单位进行,而DL是一个字节。
可改为:
PUSHDX
(5)错误。
在输入/输出指令中,8位端口地址应直接写在操作数处。
可改为:
INAX,3FH
(6)错误。
端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX。
可改为:
MOVDX,3FFH
OUTDX,AL
(7)错误。
LES指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:
LESAX,[SI]
(8)错误。
AX不能用于间接寻址,间接寻址只能用BX、BP、SI、DI四个寄
存器之一。
可改为:
POP[BX]
(9)错误。
立即数不能做乘法指令的操作数,可改为:
MOVBL,4CH
MOVCL,5
SHL
BX,CL
(11)错误。
操作数300.255,已超出有效的中断类型码范围。
12)错误。
XCHG指令不允许立即数做它的操作数。
可改为:
MOVCX,OFFFH
XCHGDX,CX
2.请指出以下各指令的源、目的操作数所使用的寻址方式。
(1)
MOV
SI,2100H
(2)
SBB
DISP[BX],7
(3)
AND
[DI],AX
(4)
OR
AX,[609EH]
(5)
MOV
[BX+DI+30H],CX
(6)
PUSH
ES:
[BP]
(7)
CALL
[DI]DISP
(8)
JNZ
Short_label
答:
(1)源操作数:
立即数寻址;目的操作数:
寄存器寻址
(2)源操作数:
立即数寻址;目的操作数:
(带位移量的)基址寻址
(3)源操作数:
寄存器寻址;目的操作数:
变址寻址
(4)源操作数:
直接寻址;目的操作数:
寄存器寻址
(5)源操作数:
寄存器寻址;目的操作数:
(带位移量的)基址变址寻址
(6)源操作数:
带段超越的基址寻址;目的操作数:
隐含寻址
(7)只有一个操作数,为(带位移量的)变址寻址
(8)只有一个操作数,为相对寻址
3.在已学的指令中,可实现累加器清0的单条指令有哪些?
比较它们的功能。
答:
共有以下四种方法:
(1)
MOV
AX,
0
(2)
SUB
AX,
AX
(3)
AND
AX,
0
(4)
XOR
AX,
AX
;仅将累加器清0,不会影响任何标志位
;累加器清0的同时影响所有状态标志,具体地有:
;ZF、PF置1,CF、AF、SF、OF均清0
;将累加器清0,ZF、PF置1,CF、OF、SF清0;将累加器清0,ZF、PF置1,CF、OF、SF清0
答:
设带符号数为
oprd,
判断方法可有如下几种
:
(1)
执行指令
ADD
oprd,0
之后,判断
Sf:
Sf=0,
oprd为正数,否则为负。
(2)
执行指令
SUB
oprd,0
之后,判断
Sf:
Sf=0,
oprd为正数,否则为负。
(3)
执行指令
CMP
oprd,0
之后,可直接判断
Sf:
Sf=0,oprd为正数,否则
为负;或者再接着执行指令
JGE
NOMINUS
(即同时判断
Sf、Of),若程序转移至
若要判断某带符号数的正、
负而不影响其原值,
可使用哪些方法?
NOMINUS处,贝Uoprd为正数,否则为负;同理,亦可在在执行完CMPoprd,0之
后再接着执行指令
JL
NOMINUS,若程序转移至
NOMINUS
处,则oprd为负数,
否则为正。
(4)执行指令
CMP
oprd,
80H
(或8000H)
之后,
判断
Cf:
Cf=1,
oprd为正
数,否则为负。
(5)执行指令
AND
oprd,
oprd
(或全“1”)
之后,
判断
SF:
SF=0,
oprd为正
数,否则为负。
(6)执行指令TESToprd,oprd(或全“1”之后,判断Sf:
Sf=0,oprd为正数,否则为负。
(7)执行指令TESToprd,80H(或8000H)之后,判断Sf:
Sf=0,oprd为正数,否则为负;或判断ZF:
ZF=1,oprd为正数,否则为负。
(8)执行指令ORoprd,oprd(或全“0”)之后,判断SF:
SF=0,oprd为正数,否则为负。
(9)执行指令XORoprd,0之后,判断SF:
SF=0,oprd为正数,否则为负。
5.已知DS=2000H
,有关的内存单元值为:
(21000H)=00H,
(21001H)=12H,
(21200H)=00H,(21201H)=10H,(23200H)=20H,
(23201H)=30H,
(23400H)=40H,
(23401H)=30H,(23600H)=60H,(23601H)=30H,符号
COUNT的偏移地址为1200H。
执
行下列指令后,寄存器
AX、BX、SI的值分别是多少?
MOV
BX,OFFSETCOUNT
MOV
SI,[BX]
MOV
AX,COUNT[SI][BX]
答:
执行结果为
BX=1200H,SI=1000H,AX=3040H。
6.设标志寄存器值原为0401H,AX=3272H,BX=42A2H。
执行指令SBBAL,BH之后,AX和标志寄存器的值分别是多少?
答:
由标志寄存器的原值0401H可知,CF的原值为1,故指令执行之后AX=322FH,标志寄存器的值为0410H,即AF变为1,CF变为0,其余不变。
7.设若标志寄存器原值为0A11H,SP=0060H,AL=4。
下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?
PUSHF
LAHF
XCHGAH,AL
PUSHAX
SAHF
POPF答:
指令执行后标志寄存器的值为0411H,AX=0411H,SP=005EH。
9.若AX=26D3H,CX=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是
多少?
CF=?
OF=?
SALCH,1
RCRAX,CL
ROLAL,1
答:
执行结果为AX=0A64CH,CX=0F208H,Cf=Of=0。
10.已知IP=1000H,Cf=0,则执行指令JNCShortlabel后,下列各数中哪一个是可能
的IP值?
(A)0FFFFH(B)0FFEH(C)10FEH(D)1100H
答:
(B)
简析:
条件转移指令执行前IP=1000H,执行JNC指令后IP=1002H;又因Cf=0,
所以应跳转至目标地址处,该处对应的新IP值=1002H+相对位移量。
由于条件转移指
令的跳转范围在距本条指令—128〜+127个字节内,即新IP值可能的取值范围为
0F82H〜1081H,因此只有答案B符合条件。
11.设DS=4500H,AX=0508H,BX=4000H,SI=0320H。
当8086CPU在最小组态下执行指令MOV[BX+SI+0100H],AX时,各控制信号M/io、DT/R、rd、WR在有效期间的状态分别是什么?
数据总线和地址总线上的数分别是多少?
答:
各控制信号M/IO、DT/R、RD、WR在有效期间的电平分别是:
高、高、高、
低。
数据总线上的数是0508H,地址总线上的地址是49420H。
12.已知有某字串BUF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。
欲从BUF1处开始将10个字数据顺序传送至BUF2处,试在下面程序段的空白处填
上适当的指令或操作数以实现上述功能。
LEA
SI,
BUF1
ADD
SI,
18
LEA
DI,
BUF2
ADD
DL
18
STD
MOV
CX
10
REPMOVSW
13.附加段中有某字符串首址为BLOCK,长17个字节。
欲查找其中第一次出现字符“e”
的位置,并将该位置所在的偏移量入栈保护。
试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。
MOV
DI,
OFFSETBLOCK
MOV
AL,
‘e'
MOV
CX,
17
CLD
REPNESCASB
JNEOTHER
DECDI
PUSHDI
OTHER:
……(略)
14.已知附加段中有一块长50个字的数据区,首址为DEST。
欲编程将它们全部初始化
为OFFFFH值,试在下面程序段的空白处填上适当的指令或操作数,以实现上述功能。
LEA
DI,
DEST
MOV
CX,
100
CLD
MOV
AL,
0FFH
REP
STOSB
15.已知有程序段如下:
MOV
AL,35H
MOV
DL,AL
AND
DL,0FH
AND
AL,0F0H
MOV
CL,4
SHR
AL,CL
MOV
BL,10
MUL
BL
ADD
AL,DL
执行之后,AL等于多少?
该程序段完成了什么功能?
ASCII字符:
“0123456789ABCDEF”,并
有程序段如下:
答:
程序段执行后AL=23H。
该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。
MOV
BX,
OF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 系统 原理 接口 技术 第三 习题 解答