1。 在内存BUFF单元中定义有10个16位数,试寻找其中的最大、最小值并分别放到指定的单元MAX和MIN中。
SSEG SEGMENT STACK
STK DB 20 DUP(?)
SSEG ENDS
DSEG SEGMENT
BUFF DW -5,56,45,-96,5,2,457,8,7,-8
MAX DW ?
MIN DW ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START: MOV AX,DSEG
MOV DS,AX
LEA BX,BUFF
MOV CX,10
MOV AX,[BX]
MOV MIN,AX
MOV MAX,AX
INC BX
DEC CX
AGAIN: MOV AX,[BX]
CMP AX,MIN
JE NEXT
JA A1
MOV MIN,AX
JMP NEXT
A1: CMP AX,MAX
JB NEXT
MOV MAX,AX
NEXT: INC BX
DEC CX
JNZ AGAIN
MOV AH,4CH
INT 21H
CSEG ENDS
END START
2。在BUFF开始的存储区中存放30个带符号数,试统计起正数、负数、零的个数,并将个数分别放到A1、A2、A3单元中。
SSEG SEGMENT STACK
STK DB 20 DUP(?)
SSEG ENDS
DSEG SEGMENT
BUFF DB ………………;省略掉
A1 DB ? ;正数
A2 DB ? ;负数
A3 DB ? ;零;
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START: MOV AX,DSEG
MOV DS,AX
LEA BX,BUFF
MOV DI,30
MOV CX,0
MOV DL,0
L1: MOV AL,[BX]
CMP AL,0
JE L2
JG L3
INC CL
JMP NEXT
L2: INC DL
JMP NEXT
L3: INC CH
NEXT: INC BX
DEC DI
JNZ L1
MOV A1,CH
MOV A2,CL
MOV A3,DL
MOV AH,4CH
INT 21H
CSEG ENDS
END START
温馨提示:答案为网友推荐,仅供参考