다음 어셈블리 코드가 있습니다. 내 DS
에 두 개의 배열을 선언했습니다. 나중에 코드에서 내가 액세스하고자하는 배열 요소의 인덱스 번호 BX
으로 이동합니다. PRINT_CHAR
프로세스는 화면에 표시하기 위해 직렬 포트를 통해 AL
의 데이터를 전송합니다. 하지만 어떤 이유로 배열 요소에 액세스 할 수없는 것 같습니다. 그것은 저에게 가짜 가치를줍니다. print_char
프로세스가 좋습니다. 나는 배열에 접근하기 위해 내가 아는 두 가지 방법을 시도했다. 어떤 도움을 주시면 감사하겠습니다. 감사!배열 데이터에 액세스 할 수 없습니다. x86 어셈블리
DATA_SEG SEGMENT
ARRAY DB '1','2','3','1','2','3','4','5','6','4','5','6'
bottom2 DB '7','8','9','7','8','9','*','0','#','*','0','#'
DATA_SEG ENDS
topnumbers:
cmp BX, 12
jge bottom_numbers
MOV AL,DS:ARRAY[BX] ; Stores character in AL (?)
jmp NUMBERS
bottom_numbers:
sub BL, 12d
LEA SI, bottom2
ADD SI, BX
MOV AL, [SI]
NUMBERS:
XOR AH, AH
CALL FAR PTR PRINT_CHAR
무엇을'DS '로 설정 했습니까? – Michael
나는 그것을 깨닫지 못했다고 믿을 수 없다. 고맙습니다! – user2902028