微机原理与接口技术(苏大版)课后答案 联系客服

发布时间 : 星期四 文章微机原理与接口技术(苏大版)课后答案更新完毕开始阅读c67d1d4a852458fb770b56ab

习 题

(6)正确 (7)错误 (8)错误 (9)错误 (10)错误

5.14 用逻辑运算指令分别写出完成下列要求的指令:

将BX寄存器中的高4位清零。

将CX寄存器中的第0、1两位置1。 将AL寄存器的中间4位变反。

测试AX的最高位和次高位是否为0。

解:(1) MOV AX,0FFFH

AND BX,AX

(2) MOV AX,3

OR CX,AX

(3) MOV BL,3CH

XOR AL,BL

(4) MOV BX,3FFFH

TEST AX,BX

5.15 设(BX)=0A6H,(CL)=3,CF为1,试指出下列各条指令单独执行后BX中的值。

(1) SAR BX,1 (2) SHR BX,CL

(3) SHL BL,CL (4) SAL BL,1 (5) ROR BX,CL (6) RCL BX,CL (7) ROL BH,1 (8) RCR BL,1

解: (1)(BX)=0053H (2) (BX)=0014H (3) (BX)=0030H (4) (BX)=004CH

(5)(BX)=0C014H (6) (BX)=0534H (7) (BX)=0A6H (8) (BX)=00D3H

5.16 已知有一32位的无符号数在(DX,AX)中,试编写指令序列,将该32位数左移4位,将低4位用0填补;将移出的高4位存入CH的低4位中。

解: MOV CL,4

MOV CH,DH SHR CH,CL SHL DX,CL MOV BL,AH SHR BL,CL SHL AX,CL OR DL,BL

5.17 利用移位指令、传送指令和加法指令完成乘法运算(AX)×10。

解: SAL AX,1

MOV BX,AX MOV CL,2 SAL AX,CL ADD AX,BX

5.18 试分别指出在下列3种条件下执行指令 SUB AX,BX 时,对标志位OF、CF、SF、ZF影响的情况: (1) (AX)=14C6H , (BX)=80DCH (2) (AX)=42C8H , (BX)=608DH (3) (AX)=0D023H , (BX)=9FD0H

解: (1) OF=1,CF=1,SF=1,ZF=0

(2) OF=0,CF=1,SF=1,ZF=0 (3) OF=0,CF=0,SF=0,ZF=0

文件名:微机原理与接口技术习题 第 9 页 共 54 页

错误!未指定书签。与接口技术

5.19 在8086/8088指令系统中,哪些指令可以加重复前缀?重复前缀共有哪几种形式?它们的操作功能是什么?

解: 可加重复前缀的指令有:MOVS、STOS、SCAS、LODS、CMPS; 重复前缀的形式有:REP、REPE/REPZ、REPNE/REPNZ

5.20 在一个名为STRING、长度为100字节的字符串中查找是否含有字符“$”,如果有则将第一次发现的“$”字符所在单元的偏移地址送入BX寄存器中;如果未曾找到,则将0FFFFH送入BX寄存器中。 解: CLD

MOV AL,‘$’ LEA DI,STRING MOV CX,100 REPNE SCASB JNE ZER DEC DI

MOV BX,DI JMP STOP

ZER: MOV BX,0FFFFH STOP: HLT

5.21 将2000H段中名为BUFST的缓冲区中长度为200个字节的数据串移到3000H段中名为DSTST的缓冲区中。编写两种采用不同指令实现该功能的程序段。 解:(1) MOV AX,2000H

MOV DS,AX MOV AX,3000H MOV ES,AX MOV CX,200 CLD

LEA SI,BUFST LEA DI,DSTST REP MOVSB HLT

(2) MOV AX,2000H

MOV DS,AX MOV AX,3000H MOV ES,AX MOV CX,200

MOV SI,OFFSET BUFST MOV DI,OFFSET DSTST

AGN: MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGN HLT

5.22 将1000段中名为DATSTR的字符串,向高地址方向平移20个字节,字符串的长度为45字节。 解: STD

MOV AX,1000H MOV DS,AX

文件名:微机原理与接口技术习题 第 10 页 共 54 页

MOV ES,AX

LEA SI,DATSTR+44 LEA DI,DATSTR+64 MOV CX,45 REP MOVSB HLT

5.23 用其它指令完成与下列指令同样的功能

习 题

(1) REP MOVSB (2) REPE CMPSW (3) REP STOSB (4) REPNE SCASB

解: (1) AGAIN:MOV AL,[SI] (2)AGAIN: MOV AL,[SI]

MOV ES:[DI],AL CMP AL,ES:[DI] INC SI INC SI INC DI INC DI LOOP AGAIN LOOPE AGAIN

(3) AGAIN: MOV ES:[DI],AL (4)AGAIN: CMP AL,[DI]

INC DI INC DI LOOP AGAIN LOOPNE AGAIN

5.24 有100个学生的计算机课程成绩存放在COMPUT缓冲区中,编写指令序列统计85分以上、60~85分、60分以下各有多少人,并把统计结果存入ORDER开始的三个字节单元中。 解: LEA SI,COMPUT

MOV CX,100 MOV BL,10 MOV BH,0 MOV DX,0

AGAIN: MOV AL, [SI]

CBW

IDIV BL CMP AL,9 JGE RANGE1 CMP AL,8 JE GE85 CMP AL,6 JGE RANGE2 INC BH JMP NEXT

GE85: CMP AH,5

JGE RANGE1

RANGE2: INC DL

JMP NEXT

RANGE1: INC DH

NEXT: INC SI

LOOP AGAIN

MOV ORDER,DH MOV ORDER+1,DL MOV ORDER+2,BH HLT

文件名:微机原理与接口技术习题 第 11 页 共 54 页

错误!未指定书签。与接口技术

5.25 在内存数据区从4000H开始存放着由30个字符组成的字符串,编写指令序列,查找并统计串中空格符的个数,并将统计结果存入4020H单元中。 解: MOV SI,4000H

MOV CX,30 SUB BL,BL MOV AL,20H

AGAIN: CMP AL,[SI]

JNZ NEXT INC BL

NEXT: INC SI

LOOP AGAIN MOV SI,4020H MOV [SI],BL HLT

5.26 编写一指令序列,统计寄存器BX中内容含“1”的个数,将统计结果送入CX寄存器中。 解: SUB CX,CX GOON: CMP BX,0

JZ STOP SHR BX,1 JNC JUMP INC CX

JUMP: JMP GOON STOP: HLT

5.27 试分析下列程序段:

ADD AX,BX JNO L1 JNC L2

SUB AX,BX JNC L3 JNO L4 JMP L5

如果AX和BX的内容给定如下: AX BX (1) 147BH 80DCH (2) 0B568H 54B7H (3) 4C28H 608DH (4) 0D023H 9FD0H (5) 94B7H 0B568H

问在该5种条件下,以上程序执行完后程序将转向哪里?

解: (1) L1; (2) L1; (3) L2; (4) L5; (5) L5

5.28 设在内存数据段中有一个由28个字节数据组成的数组,数组的起始地址为2000H,试编写程序段,将其分成正数组和负数组,正数组存放于2020H开始的单元中;负数组存放于2040H开始的单元中。 解: MOV BX,2000H

MOV CX,1CH MOV SI,2020H MOV DI,2040H

LOOP1: MOV AL,[BX]

文件名:微机原理与接口技术习题 第 12 页 共 54 页