DATAS SEGMENT
ARRAY DW 1234,2345,5678,7890,3455,1233,0ABCDH,0FFFFH
N1 DW ($-ARRAY)/2
NUMBER DW ($-ARRAY)/2 DUP(?)
N2 DW 0
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
查找奇数
LEA SI,ARRAY
LEA DI,NUMBER
MOV CX,N1
@1:
MOV AX,[SI]
MOV BX,AX
SHR BX,1
JC @2
JMP @3
@2:
MOV [DI],AX
INC WORD PTR N2
ADD DI,2
@3:
ADD SI,2
LOOP @1
输出奇数
LEA SI,NUMBER
MOV CX,N2
@4:
LODSW
CALL DISPAX
LOOP @4
MOV AX,4C00H
INT 21H
==============================================
DISPAX PROC NEAR
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DS
PUSH AX
MOV AH,2
MOV DL,' '
INT 21H
POP AX
PUSH CS
POP DS
MOV BYTE PTR NZ,0
PUSH AX
LEA SI,DIVARR
MOV CX,5
@@1:
POP AX
MOV DX,0
MOV BX,[SI]
DIV BX
PUSH DX
CMP AL,0
JNE @@2
CMP BYTE PTR NZ,1
JE @@2
CMP CX,1
JE @@2
MOV DL,20H
JMP @@3
@@2:
ADD AL,30H
MOV DL,AL
MOV BYTE PTR NZ,1
@@3:
MOV AH,2
INT 21H
INC SI
INC SI
LOOP @@1
POP DX
POP DS
POP SI
POP DX
POP CX
POP BX
RET
DIVARR DW 10000,1000,100,10,1
NZ DB 0
DISPAX ENDP
=============================================
CODES ENDS
END START
[1]p=a[2]p=p+i //等同于 &a[i]
[3]*(p+i)%2 或 *(p+i)%2!=0 这二个都可以 //等同于a[i]%2 或 a[i]%2!=0,不能被2整除的就是奇数
[4]b[j]=*(p+i) //等同于 b[j]=a[i]
从上面可以看出这道题有多个答案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)