第五章习题
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!