1
배열에 숫자를 입력 한 다음 숫자 중 하나를 배열에서 검색 할 수있는 프로그램을 만들려고합니다. 숫자 만 찾으면 검색 할 수 있습니다. 나는 다시 "n"과 "N"의 입력을 비교해야한다. 제대로 작동하지 않는 것 같습니다. atow를 사용하는 것이 올바른 입력인지 아닌지는 잘 모르겠지만 여기에 코드가 있습니다.어셈블리 언어 다시 검색
number1 WORD ?
anArray WORD 100 DUP (?)
count WORD ?
search WORD ?
searchn BYTE "n",0
searchNo BYTE "N",0
prompt1 BYTE "Enter a number or -1 to quit.", 0
prompt2 BYTE "Enter a number to search for", 0
prompt3 BYTE "Search for another number Y/N",0
inString BYTE 40 DUP (?)
outMsgLabel BYTE "Search Result", 0
frontOut1 BYTE 6 DUP (?)
outMsg1 BYTE " is element"
rearOut1 BYTE 6 DUP (?),0
frontOut2 BYTE 6 DUP (?)
outMsg2 BYTE " is not in array",0
searchAgain: input prompt3, inString, 40
atow inString
mov dx,ax
atow searchn
mov ax,"n"
cmp ax,dx
je end1
atow searchNo
mov ax,"N"
cmp ax,dx
je end1
jmp next
작동하지 않는 코드의 스 니펫과 .DATA 섹션 만 포함되었습니다.
쓰기를 다음으로 변환 : 그럼 어느 쪽이든, 당신은하지의 내용
이 시도 단어에 inString의 주소를 변환하기 위해 노력하고 있습니다. 그런 다음 디버거를 사용하여 디버깅하십시오. –
저는 디버거를 사용하고 있지만 대학 강의에서 어셈블리 언어를 배우고 있습니다. 내가 C + +로 작성하고 그것을 변환했지만, 그것을 찾을 수 없습니다. inString을 단어로 변환하는 것은 ax 레지스터에 0을 생성하기 때문에 발생합니다. 선생님은 문자열을 비교하거나 문자열을 변환하는 방법을 가르쳐주지 않았습니다. – todaroa
어떤 아키텍처입니까? 그것은 masm에서 i86과 조금 비슷해 보입니다. 그러나'atow' 또는'input'을 인식하지 못합니다 ... –