현재 학년 값 (예 : 75)을 입력 한 다음 그에 해당하는 문자 등급을 출력하는 프로그램을 구현하는 중입니다. 나는 배열/테이블을 통해 다음과 같은 요청 스케일을 구현했습니다 :어바인 어셈블리 (MASM) - 배열/테이블을 통한 정렬
.data
table BYTE 89d, 'A'
BYTE 79d, 'B'
BYTE 69d, 'C'
BYTE 59d, 'D'
BYTE 0d, 'F'
NumCols = 2
NumRows = 5
user_ip BYTE ?
message1 BYTE "Enter a grade value: ", 0h
message2 BYTE "The Grade of ", 0h
message3 BYTE " Yields A Letter Grade of ", 0h
내가이 배열/테이블과 출력 문자 등급을 정렬하려면 다음 코드를 사용하고 있습니다. (75)의 입력에
mov edx, OFFSET message1
call WriteString
call readDec
mov user_ip, al
mov esi, OFFSET user_ip
mov edi, OFFSET table
mov ecx, NumRows
L1:
CMPSB
jae L2
add edi, NumCols
Loop L1
L2:
mov edx, OFFSET message2
call WriteString
mov al, user_ip
call WriteDec
mov edx, OFFSET message3
call WriteString
mov edx, edi
call WriteString
call Crlf
가 I가 제시되고있어 "(75)의 등급은 EC 편지 급냅니다; D를". 프로그램 또한 일시적으로 작동을 멈 춥니 다.
저는 포인터와 데이터 크기와 관련이 있다고 확신합니다. 내 이상적인 목표는 변수에 문자 등급의 값을 저장하는 것이지만 포인터를 사용하는 데 필요한 데이터 크기가 주어지면이를 수행하는 방법을 찾지 못하는 것 같습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
우수한을 사용하여 마지막으로 누군가! 완벽하게 일했습니다. 감사! 테이블을 사용해 주셔서 감사합니다. –