数关系编写程序求Y的值,结果存入RESULT 单元。Y=1,X>0; Y=0,X=0;Y=-1,X<0。
答案:参考程序段如下: DATA SEGMENT BUF DB -2 RESULT DB ? DATA ENDS
STACK SEGMENT STACK 'STACK
DB 100H DUP(?)
STACK ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS: STACK START: MOV AX, DATA MOV DS, AX MOV AL, BUF CMP AL, 0 JGE L1
MOV AL, -1 JMP L3 L1: JZ L2
MOV AL, 1 JMP L3 L2: MOV AL, 0
L3: MOV RESULT, AL MOV AH, 4CH INT 21H CODE ENDS
END START
18. N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内
存单元中,将结果存入MAX,MIN内存单元中。 答案:参考程序段如下: DATA SEGMENT
BUF DB 3, 5, 7, 8, 5, 3, 9, 7, 13, 1 MAX DB ? MIN DB ? DATA ENDS
STACK SEGMENT STACK 'STACK
DB 100H DUP(?)
STACK ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS: STACK START: MOV AX, DATA MOV DS, AX
MOV CX, 10 MOV AL, BUF MOV MAX, AL MOV MIN, AL LEA SI, BUF AGAIN: MOV AL, [SI+1] CMP AL, MIN JGE S1
MOV MIN, AL S1: CMP AL, MAX JLE S2
MOV MAX, AL S2: INC SI
LOOP AGAIN MOV AH, 4CH INT 21H CODE ENDS
END START
19. 编写程序求1+2+3+……+N<100时最大的N值,将N值送NUM单元中,同
时将1+2+3+……+N的和送到SUM单元中。 答案:参考程序段如下: DATA SEGMENT NUM DB ? SUM DB ? DATA ENDS
STACK SEGMENT STACK 'STACK
DB 100H DUP(?)
STACK ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS: STACK START: MOV AX, DATA MOV DS, AX MOV AL, 0 MOV BL, 0 AGAIN: INC BL
ADD AL, BL CMP AL, 100 JB AGAIN SUB AL, BL DEC BL
MOV NUM, BL MOV SUM, AL MOV AH, 4CH
INT 21H CODE ENDS
END START