我先前回答过这个问题,是按.COM格式写的(相应的EXE程序需用EXE2BIN转换成COM格式后才能运行),现在给出.EXE格式程序:
DATAS SEGMENT
ADR DW 3257H,5891H,0B24H
FLAG DB ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV CX,3
MOV AL,0
MOV BX,OFFSET ADR
NEXT:
MOV DX,[BX]
ROR DX,1
JC L1 ;奇数
INC AL ;偶数
L1:
ADD BX,2
LOOP NEXT
CMP AL,3
JE ALL_0
CMP AL,0
JE ALL_1
MOV AL,0FFh ;有偶有奇
JMP EXIT
ALL_0: ;全偶
MOV AL,1
JMP EXIT
ALL_1: ;全奇
MOV AL,0
EXIT:
MOV FLAG,AL
mov ah,4ch
int 21h
CODES ENDS
END START
.com文件格式
code segment
main proc far
assume cs:code,ds:code
org 100h
start:
MOV CX,3
MOV AL,0
MOV BX,OFFSET ADR
NEXT:
MOV DX,[BX]
ROR DX,1
JC L1 ;奇数
INC AL ;偶数
L1:
ADD BX,2
LOOP NEXT
CMP AL,3
JE ALL_0
CMP AL,0
JE ALL_1
MOV AL,0FFh ;有偶有奇
JMP EXIT
ALL_0: ;全偶
MOV AL,1
JMP EXIT
ALL_1: ;全奇
MOV AL,0
EXIT:
MOV FLAG,AL
int 20h
ADR DW 3257H,5891H,0B24H
FLAG DB ?
main endp
code ends
end start
实现题目要求的功能,程序如下: