var swiper = new Swiper(this.swiperContainer, {
pagination: '.swiper-pagination',
paginationClickable: true,
resistanceRatio: 0
});
在命令提示符下输出:
答案 0 :(得分:1)
您从键盘捕获字符并将其转换为BL
和CL
中的十六进制数字,这是因为您使用BL的高4位来保存一位数并且低4位用于保存第二个数字,带有十进制数字,这个技术不起作用。然后执行添加,但是,两个数字都是十六进制,因此结果可能包含字母(A..F)。在这种情况下,过程OUTPUT8
需要检查CL
中的数字是否为数字(0..9)或字母(A..F)。此外,完成程序的中断也不在正确的位置。以下是两个修复:
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
MOV AH,4CH ;◄■■ THIS CODE COMES FROM
INT 21H ;◄■■ 26 LINES BELOW.
INPUT8 PROC
SUB AL,30H
RET
ENDP
OUTPUT8 PROC
cmp cl,9 ;◄■■ IF CL <= 9
jbe digit ;◄■■ JUMP TO "DIGIT".
;◄■■ NO JUMP IF CL > 9.
;IF NUMBER IS LETTER (A..F). ◄■■
add cl, 57h ;◄■■ CONVERT 10..15 TO 'A'..'F'.
jmp output8display ;◄■■ SKIP THE "DIGIT" BLOCK.
;IF NUMBER IS DIGIT (0..9). ;◄■■
digit: ;◄■■
ADD CL,30H
output8display: ;◄■■ DISPLAY CL (DIGIT OR LETTER).
MOV DL,CL
MOV AH,02
INT 21H
output8end:
RET
ENDP
;MOV AH,4CH ;◄■■ THIS CODE SHOULD
;INT 21H ;◄■■ BE 26 LINES ABOVE.
ENDS
END START