0
DATA SEGMENT
MSG1 DB 10,13,"ENTER THE FIRST NUMBER: $"
MSG2 DB 10,13,"ENTER THE SECOND NUMBER: $"
MSG3 DB 10,13,"ANSWER: $"
ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CALL INPUT8
MOV CL,AL
ROL CL,04H
MOV AH,01H
INT 21H
CALL INPUT8
ADD CL,AL
LEA DX,MSG2
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CALL INPUT8
MOV BL,AL
ROL BL,04H
MOV AH,01H
INT 21H
CALL INPUT8
ADD BL,AL
ADD CL,BL
MOV BL,CL
ROL CL,04H
AND CL,0FH
LEA DX,MSG3
MOV AH,09
INT 21H
CALL OUTPUT8
MOV CL,BL
AND CL,0FH
CALL OUTPUT8
INPUT8 PROC
SUB AL,30H
RET
ENDP
OUTPUT8 PROC
ADD CL,30H
MOV DL,CL
MOV AH,02
INT 21H
RET
ENDP
MOV AH,4CH
INT 21H
ENDS
END START
출력 : 당신이 BL의 상위 4 비트를 사용하기 때문에두 번째 숫자의 두 번째 숫자를 입력해도 아무런 변화가 없습니다. 코드에 어떤 문제가 있습니까? 명령 프롬프트에서
안녕하세요. 디버깅을 시도 했습니까? –
'MOV AH, 09' 행에'H '가 누락되어 있다고 생각합니다. – jboockmann
tasm과 tlink를 봅니다. 볼랜드는 "Turbo Debugger"도 제작했습니다. 시도해보십시오 (tasm을 구입 한 경우, 아마도 tdm을 구입했을 것입니다. 글쎄, 당신이 그것을 구입하지 않았다면, 아마도 어쩌면 당신은 SW를 훔치는 것을 고려해야한다. 어셈블러 (예를 들어 nasm)에 대한 많은 무료 교체가있다. 불행하게도 디버거에서는 그리 쉽지는 않다.) 귀하의 운영 체제에 직접. 그렇지 않은 경우 dosbox를 사용해보십시오. 디버거없이 ASM에서 코딩하는 것은 눈을 가린 로봇을 조립하는 것과 같습니다. – Ped7g