.stack 100h
.data
~the offsets here
total db 0
mesajfinal db ' intrebari corecte din 4',13,10,'$'
**.code**
mov ax,@data
mov ds,ax
mov ah,9h
mov dx,offset m11
int 21h
mov ah,9h
mov dx,offset m12
int 21h
mov ah,9h
mov dx,offset m13
int 21h
mov ah,9h
mov dx,offset m14
int 21h
mov ah,1
int 21h
mov bl,al
cmp bl,'2'
je @CORECT
jmp @GRESIT
>**;there i want to continue after jump**
mov ah,9h
mov dx,offset m21
int 21h
mov ah,9h
mov dx,offset m22
int 21h
mov ah,9h
mov dx,offset m23
int 21h
mov ah,9h
mov dx,offset m24
int 21h
mov ah,1
int 21h
mov bl,al
cmp bl,'2'
je @CORECT
jmp @GRESIT
@CORECT:
inc total
mov ah, 2
mov dl,0ah
int 21h
mov dl,0dh
int 21h
@GRESIT:
mov ah, 2
mov dl,0ah
int 21h
mov dl,0dh
int 21h
mov dl,total
add dl,48
mov ah,2
int 21h
mov ah,9h
mov dx,offset mesajfinal
int 21h
mov ah,4ch
int 21h
end
我对assembly非常陌生,我尝试在assembly x86中进行测验,其中问题和答案显示在屏幕上,用户输入答案(从1到3),如果答案正确,则输入总点数。问题是,在第一个问题之后,它已显示具有最终点数的最终mesaj,跳过其他问题
1条答案
按热度按时间neekobn81#
如果你不跳走,你就不必跳回来
要得到正确答案,请递增 total 变量并输出一个换行符。
对于一个错误的答案,你只需输出一个换行符。
简单(且简短)的解决方案是将换行符与消息一起输出(我在**$标记之前添加了一个额外的字节10**),然后在本地执行 total 变量的递增。
提示:您可以一次输出4个字符串