文档库 最新最全的文档下载
当前位置:文档库 › 第五章习题答案(最新整理)

第五章习题答案(最新整理)

第五章习题答案(最新整理)
第五章习题答案(最新整理)

第五章习题

5-1下面的程序运行后,(AL)= ,CF= 。

MOV CL, 8

MOV AL, 0

NOT AL

ROL AL, CL

CMP AL, 0FFH

JZ NEXT

MOV AL, 0

NEXT: ……

答:(AL)=0FFH, CF=0

5-2在下面的程序段中,“DEC CX”指令执行了次。

MOV CX, 6

JCXZ NEXT

L1: DEC CX

JNZ L1

NEXT: ……

(A) 0 (B) 5

(C) 6 (D) 7

答:C

5-3设有单字节有符号数X,Y 与Z,如果X+Y>200,则求X-Z,否则求

X+Z,运算结果存储在SUM 字单元中。

DATA SEGMENT

X DB 120

Y DB 100

Z DB 20

SUM DB 0

DATA ENDS

STACK1 SEGMENT STACK

DB 20H(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK1

BEGIN: MOV AX, DATA

MOV DS, AX

XOR AH, AH

MOV AL, X

XOR BH, BH

MOV BL, Y

ADD AX, BX//注意这里用的是16 位的寄存器,想想原因?

CMP AX, 200

MOV AL, X

JG SUB0;判断

ADD AL, Z

JMP END0

SUB0: SUB AL, Z

END0: XOR AH,AH

MOV SUM, AX

MOV AH,4CH

INT 21H

CODE ENDS

END BEGIN

5-4下面的程序段执行后,BUF1 的前5 个字节单元内容分别是多少?DATA SEGMENT

DA1 DW123H, 456H, 0AB00H

DA2 DB 12H, 34H, 56H, 0ABH

DB $-DA2

BUF1 DB 10HDUP(1,2,3)

BUF2 DB 10H, 20H, 30H

DATA ENDS

……

MOV SI, OFFSET DA1

MOV DI, OFFSET BUF1

MOV CX, 5

LOP: MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

LOOP LOP

……

答:

5-5 阅读下列程序,回答下列问题:

(1) 该程序完成什么功能?

(2) 程序中的“INC SI”可否用指令“ADD SI, 1”代替,为什么?

(3) 程序中的指令 LEA SI, DATA1 可用指令

代替。

(4) CLC 的目的是

。 DATA SEGMENT

DATA1 DB 85H, 27H, 4AH

DATA2 DB 93H, 87H, 65H

LEGH DW 3

SUM DB 0, 0, 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

BEGIN: MOV AX, DATA

MOV DS, AX

LEA SI, DATA1

LEA BX, DATA2

LEA DI, SUM

MOV CX, LEGH

CLC

AGAIN: MOV AL, [SI]

ADC AL, [BX]

MOV [DI], AL

INC SI

INC BX

INC DI

LOOP AGAIN

MOV AH, 4CH

INT 21H 2233H H

0011H H

5566H H

0044H H

0000H H

CODE ENDS

END BEGIN

答:(1)功能是把DATA1 和DATA2 定义的两个3 字节多精度数的相加放入SUM 中。

(2)不能,因为使用的带进位的加法指令,如果使用ADD SI, 1,会影响CF 标志位导致进位清零,不能完成多精度数的加法。

(3)LEA SI, DATA1 可用MOV SI, OFFSET DATA1 代替。

(4)CLC 的目的是使第一次加法前CF 清零,这样使用ADC 指令不会影响第一次加法运算结果。

5-6数据段的ARY 数组中存放有10 个带符号数,编写一个程序使数组按照从小到大的顺序排列。

DATA SEGMENT

DA DB 80,3,-20,116,9,120,-6,62,-32,42

COUNT EQU $-DA

DATA ENDS

STACK1 SEGMENT PARA STACK

DW 20H DUP(0)

STACK1 ENDS

COSEG SEGMENT

ASSUME CS:COSEG,DS:DATA,SS:STACK1

SORT: MOV AX,DATA

MOV DS,AX

MOV DX,COUNT-1 ;置比较次数初值

SORT1: MOV BL,0 ;置交换标志初值

MOV CX,DX ;置内循环比较次数

MOV SI,0 ;置数据指针初值

SORT2: MOV AL, DA[SI]

CMP AL, DA[SI+1] ;比较

JLE NOXCHG ;小于等于则转不交换

XCHG AL,DA[SI+1] ;交换

MOV DA[SI],AL

MOV BL,0FFH ;置已交换标志

NOXCHG:INC SI ;修改地址

LOOP SORT2

DEC DX ;修改比较次数

JE END0;

CMP BL,0 ;检查交换标志

JNE SORT1 ;有交换,继续

END0:MOV AH,4CH

INT 21H

COSEG ENDS

END SORT

“”

“”

At the end, Xiao Bian gives you a passage. Minand once said, "people who learn to learn are very happy people.". In every wonderful life, learning is an eternal theme. As a professional clerical and teaching position, I understand the importance of continuous learning, "life is diligent, nothing can be gained", only continuous learning can achieve better self. Only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of life keep up with the pace of enterprise development and innovate to meet the needs of the market. This document is also edited by my studio professionals, there may be errors in the document, if there are errors, please correct, thank you!

相关文档