assembly x86汇编跳转后如何返回主代码?

aurhwmvo  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(173)
.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,跳过其他问题

neekobn8

neekobn81#

如果你不跳走,你就不必跳回来

要得到正确答案,请递增 total 变量并输出一个换行符。
对于一个错误的答案,你只需输出一个换行符。
简单(且简短)的解决方案是将换行符与消息一起输出(我在**$标记之前添加了一个额外的字节10**),然后在本地执行 total 变量的递增。
提示:您可以一次输出4个字符串

...
m11 db 'In ce an a fost lansat procesorul Intel 8086?',13,10
    db '1. 1980',13,10
    db '2. 1978',13,10
    db '3. 1986',13,10,10,'$'

m21 db 'In ce zi a fost lansat sistemul de operare WINDOWS 10?',13,10
    db '1. 12 iulie 2014',13,10
    db '2. 24 octombrie 2015',13,10
    db '3. 29 iulie 2015',13,10,10,'$'

  ...

@Q1:
  mov dx, offset m11    ;
  mov ah, 09h           ; Just 1 output needed
  int 21h               ;
  mov ah, 01h
  int 21h
  cmp al, '2'           ;
  jne @Q2               ;
  inc total             ; Do this locally (close to the Q/A)
@Q2:                    ;
  mov dx, offset m21
  mov ah, 09h
  int 21h
  mov ah, 01h
  int 21h
  cmp al, '2'
  jne @Q3
  inc total
@Q3:

  ...

@Final:
  mov dl, total
  add dl, 48
  mov ah, 02h
  int 21h

  ...

相关问题