微机系统原理与接口技术第三章习题解答.docx

上传人:b****1 文档编号:62193 上传时间:2022-10-01 格式:DOCX 页数:15 大小:60.26KB
下载 相关 举报
微机系统原理与接口技术第三章习题解答.docx_第1页
第1页 / 共15页
微机系统原理与接口技术第三章习题解答.docx_第2页
第2页 / 共15页
微机系统原理与接口技术第三章习题解答.docx_第3页
第3页 / 共15页
微机系统原理与接口技术第三章习题解答.docx_第4页
第4页 / 共15页
微机系统原理与接口技术第三章习题解答.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机系统原理与接口技术第三章习题解答.docx

《微机系统原理与接口技术第三章习题解答.docx》由会员分享,可在线阅读,更多相关《微机系统原理与接口技术第三章习题解答.docx(15页珍藏版)》请在冰豆网上搜索。

微机系统原理与接口技术第三章习题解答.docx

微机系统原理与接口技术第三章习题解答

微机系统原理与接口技术”第三章习题解答

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

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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