0
선을 제거한 후 이상한 결과, 나는이 문제 해결 : 우리는 작은 프로그램이 제공됩니다총회 8086 오늘과 준비에서 시험을
을, 우리는 무엇을 말할 필요하고 무엇을 *
data
A DB '1A2B3C4D'
B DB 10 DUP(?)
C DB 4
.CODE
MOV AX,@DATA
MOV DS,AX
XOR BX,BX
XOR SI,SI
XOR CX,CX
MOV CL,C
LOP1: MOV AL,A[BX]
AND AL,0FH ;*
MOV AH,A[BX+1]
LOP2: MOV B[SI],AH
INC SI
DEC AL
JNZ LOP2
ADD BX,2
LOOP LOP1
END: MOV AH,4CH
표시된 줄을 제거하면 문제가 발생합니다. 프로그램이 간단하고 이해하기 쉽습니다. 배열 ABBCCCDDDD
을 주소 B
(데이터 세그먼트에 정의 됨)에 놓습니다.
이제 *로 줄을 제거하면 어떻게 될지 묻습니다. AL은 바이트이므로 0Fh는 바이너리의 11111111 바이트이므로 11111111 = AL이므로 아무 것도 변경되지 않습니다.
하지만 선생님에 따르면, "AND AL, 0Fh"줄이 없다면 문자 A의 49 배, 문자 B의 50 배, 문자 B의 51 배를 쓸 것이기 때문에 차이가있을 것입니다. 문자 C, 그 문자의 ASCII 값 thats 때문입니다. 그게 사실 및 설명
오, 맞습니다. 실수입니다. –