微机原理与接口技术(苏州大学出版社) - 习题答案(4)

2019-05-17 13:40

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

(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

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

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

习 题

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 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

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

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

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

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

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

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]

SUB AL,0 JS NEGAT MOV [SI],AL INC SI JMP NEXT

NEGAT: MOV [DI],AL

INC DI

NEXT: LOOP LOOP1

HLT

5.29 在首地址为VALU的字数组中,存放有10个无符号数,编写指令序列,求出它们的平均值并存放于BL寄存器中(只取整数)。再统计出数组中有多少个小于平均值的数,将结果存于DL寄存器中。 解: MOV SI,0

MOV DX,0 MOV CX,DX

AVERAGE: MOV AL,VALU[SI]

CBW

ADD DX,AX INC SI

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

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

LOOP AVERAGE MOV AX,DX MOV BL,10 DIV BL MOV BL,AL MOV SI,0 MOV DX,0 MOV CX,0

COMPARE: MOV AL,VALU[SI]

CMP AL,BL JAE GOON INC DL

GOON: INC SI

LOOP COMPARE HLT

5.30 有20个ASCII码表示的分离式BCD码存放在缓冲区UNPBCD中,编写指令序列将它们转换成组合式BCD码,即把两个相邻字节单元的数码合并成一个字节单元,高地址单元存放在高4位,低地址单元存放在低4位,转换结果存放于PABCD缓冲区中。 解: MOV CX,14H

LEA SI,UNPBCD LEA DI,PABCD

CONVERT: PUSH CX

MOV AL,[SI] SUB AL,30H MOV BL,AL

MOV AL,[SI+1] SUB AL,30H MOV CL,4 SHL AL,CL ADD AL,BL MOV [DI],AL POP CX ADD SI,2 INC DI

LOOP CONVERT HLT

习题六

6.1 请指出变量与标号都有哪些属性?它们的主要区别是什么? 解:变量的属性有:段属性,偏移属性,类型属性。

标号的属性有:段属性,偏移属性,距离属性。

变量和标号都是一种符号地址。变量的内容是代表存放在某些存储单元中的数据,变量名就代表这些单元的起始地址;标号是代表一条指令目标代码的起始地址。

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


微机原理与接口技术(苏州大学出版社) - 习题答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:速记日语常用语汉语发音

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: