微机原理陈继红版部分答案(2)

2019-08-03 10:56

(4)转L3:溢出,不转移到L1 处,进位CF=1,不转移到L2 处,减法借位CF=0,转移 到L3 处;

(5)转L5:溢出,不转移到L1 处,进位CF=1,不转移到L2 处,减法借位CF=1,不转 移到L3 处,不溢出OF=0,转移到L4 处;

3.26 用普通运算指令执行BCD 码运算时,为什么要进行十进制调整?具体地讲,在进行 BCD 码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?

解:因为8086 指令把操作数作为二进制数进行二进制运算,要得到正确的BCD 结果,需 要进行调整。在加、减、乘法指令之后加上BCD 调整指令,而在除法指令之前先用BCD 调 整指令再用除法指令。

3.27 在编写乘除法程序时,为什么常用移位指令来代替乘除法指令?编写一段程序,实 现将BX 中的数除以10,结果仍然放在BX 中。

解:用移位指令时,左移l 位相当于将操作数乘2,右移1 位相当于将操作数除2。用

移位指令实现一些简单的乘除法程序,比用乘法指令和除法指令进行乘、除运算要快得多。 用除法指令实现: MOV CL 0AH MOV AX,BX IDIV CL

MOV BX,AX

3.28 串操作指令使用时特别要注意和SI,DI 这两个寄存器及方向标志DF 密切相关。请 具体就指令MOVSB/MOVSW、CMPSB/CMPSW、SCASB/SCASW、LODSB/LODSW、 STOSB/STOSW 列表说明和SI、DI 及DF 的关系。 解答: SI DI DF

MOVSB/MOVSW 指出源地 址

指出目的地 址

不带 REP 重复前缀时,DF=0,每传送一次,SI、 DI 加1 或加2,DF=1,SI、DI 则减1 或减2 CMPSB/CMPSW 存放源字 符串首地 址

存放目的字 符串首地址

DF=0,每次比较后,SI、DI 加1 或加2,CX 减 1,DF=1,SI、DI 减1 或减2,CX 减1 SCASB/SCASW 无 指出字符串 首址偏移量 无

LODSB/LODSW 作为地址 指针

存放处理结 果

DF=1 时,地址作增量修改,DF=0 时,地址作减

26

量修改

STOSB/STOSW 无 存放目的地 址 无

3.29 用串操作指令设计实现以下功能的程序段:首先将100H 个数从2170H 处搬到 1000H 处,然后,从中检索相等于VAL 中字符的单元,并将此单元值换成空格符。 解答:

START:MOV AX, DS MOV ES, AX MOV SI, 2170H MOV DI, 1000H MOV CX, 100H CLD

REP MOVSB

ANOTHER:MOV DI, 1000H MOV AL, VAL MOV CX, 100H CLD

AGE: SCASB JZ FIN DEC CX JNZ AGE JMP OVER

FIN: MOV BYTE PTR[DI-1],20H CMP CX,0 JNZ AGE OVER: RET

3.30 求双字长数DX∶AX 的相反数。 答:

NEG DX NEG AX SBB DX,0

3.31 试对数据段偏移地址为101H 单元中的单字节数求补后存入102H,最高位不变, 低7 位取反存入103H,高4 位置1,低4 位不变,存入104H。 答:

MOV AX,[0101H] MOV BX,AX MOV CX,AX NOT AX

MOV [0102H],AX XOR BX,7FH MOV [0103H],BX AND CX,0F0H MOV [0104H]

3.32 试编写一个程序,比较两个同长字符串STRING1 和STRING2 所含字符是否相同,

26

若相同MATCH 单元赋值1,若不相同MATCH 单元赋值0。 答案: 程序段为: ;数据定义

STRING1 DB ?ABCDEFGHIJK ;串1,作为源串 STRING2 DB ?ABCDFGKJ ;串2,作为目标串 MATCH DB ? ;定义MATCH 单元 ;功能代码

MOV AX,SEG STRING1

MOV DS,AX ;源串段地址送DS MOV AX,SEG STRING2

MOV ES,AX ;目标串段地址送ES LEA SI, STRING1 ;源串偏移地址送SI LEA DI, STRING2 ;目标串偏移地址送DI

MOV CX, STRING1- STRING2 ;重复次数送CX CLD ;地址增

REPE CMPSB ;相等继续比较,不相等退出 JZ EQUAL ;退出时,若ZF=1,表示两串相等 MOV MATCH,0 ;不相同,MATCH 单元赋值0 JMP OVER

EQUAL:MOV MATCH,1 ;相同MATCH 单元赋值1 OVER:HLT

3.34 编写代码,计算a+10b+100c+20d,其中a、b、c、d 均为单字节无符号数,结果为16 位,存入SUM 开始的两单元中。 data segment ma db 12 mb db 21 mc db 86 md db 150 SUM dw 0 data ends code segment

assume ds:data,cs:code start:mov ax,data mov ds,ax mov dh,0 mov dl,ma mov ah,0 mov al,10 mul mb add dx,ax mov ah,0 mov al,100 mul mc

26

add dx,ax mov ah,0 mov al,20 mul md add dx,ax mov SUM,dx code ends end start

3.35 试_______编写一段程序把LIST 到LIST+100 中的内容传到BLK 到BLK+100 中去。 答案: 程序段为:

MOV AX,SEG LIST

MOV DS,AX ;源串段地址送DS MOV AX,SEG BLK

MOV ES,AX ;目标串段地址送ES LEA SI, LIST ;源串偏移地址送SI LEA DI, BLK ;目标串偏移地址送DI MOV CX, 101 ;重复次数送CX CLD ;地址增 REP MOVSB

3.36 设CS:0100H 单元有一条两字节的JMP SHORT LAB 指令,若其中的位移量为: ⑴56H ⑵80H ⑶78H (4)0E0H

试写出转向目标的物理地址是多少?

答:因为CS:0100H 处存放两字节指令JMP SHORT LAB,所以当执行该指令时 (IP)=0102H

(1) 转向目标的物理地址是:(CS)*10H+(IP)+0056H=CS:0058H

(2) 转向目标的物理地址是:(CS)*10H+(IP)+0FF80H=CS:0082H;80H 对应的负数为-80H (向上转移,负位移量)

(3) 转向目标的物理地址是:(CS)*10H+(IP)+0078H=CS:0180H

(4) 转向目标的物理地址是:(CS)*10H+(IP)+0FFE0H=CS:00E2H;E2H 对应的负数为 -1EH(向上转移,负位移量)

3.37 不使用除法指令,将堆栈段中10H、11H 单元中的双字节带符号数除以8,结果存 入12H、13H 单元(注:多字节数存放格式均为低位在前,高位在后)。 POP AX POP BX

TEST AX,8000H ;测试被除数符号位 MOV CL,3

JZ ZS ;若为正数,跳转到ZS SAR AX,CL JMP OVER

ZS: SHR AX,CL OVER:PUSH AX

3.38 数据段中3030H 起有两个16 位的带符号数,试求它们的积,存入3034H-3036H 单 元中。

26

答案:

MOV AX,[3030H] MOV BX,[3032H] IMUL BX

MOV [3034H],AX MOV [3036H]

3.39 考虑以下调用序列:

(1)MAIN 调用NEAR 的SUBA 过程(返回的偏移地址为150BH); (2)SUBA 调用NEAR 的SUBB 过程(返回的偏移地址为1A70H);

(3)SUBB 调用FAR 的SUBC 过程(返回的偏移地址为1B50H,段地址为1000H); (4)从SUBC 返回SUBB; (5)从SUBB 返回SUBA; (6)从SUBA 返回MAIN。

请画出每次调用或返回时,堆栈内容和堆栈指针变化情况。 答:

***** (SP) 150BH ***** 150BH (SP) ***** 150BH (SP) ***** 150BH (SP) ***** (SP) 150BH (SP) ***** (1) (2) (3) (4) (5) (6) 1A70H 1A70H 1000H 1B50H 1A70H

第四章 汇编语言程序设计 习题答案(部分) 4.1 什么是标号?它有哪些属性?

答:标号是一种特殊的标识符,它代表代码段中的某个具体位置,它主要用于表明 转移的目标位置。源程序中的标号都有三种属性:段、偏移及类型。 4.2 什么是变量?它有哪些属性?

答:变量名代表存储器中的一个数据区的名字。源程序中的变量有五种属性:段、偏 移、类型、长度、规模。

4.3 什么是伪指令?什么是宏指令?伪指令在什么时候被执行?宏指令在程序中如何 被调用?

26


微机原理陈继红版部分答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:提升学生学习力,推动学生学习可持续发展

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

马上注册会员

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