汇编语言MASM跳跃

时间:2014-12-05 19:16:04

标签: loops assembly x86 masm

   .386
   .MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD 
Include io.h
cr     equ 0DH
Lf     equ 0AH

       .STACK 4096
       .DATA

string byte 40 Dup (?)
number dword ?
rejected byte cr, Lf, "Rejected", 0

    .code
_start:

forever: input string, 40
         atod string
         mov number, eax
         cmp number,0
         jne processing
         je finish

processing:
    cmp number,10
        jg message

    cmp number,-10
        jl message

         jmp forever

message: output rejected
         jmp forever

finish:
    INVOKE ExitProcess, 0

PUBLIC _start
        END

我很难调整此任务以满足这个条件:确保你向前跳到循环的底部,并从那里回到顶部,这样每次跳到顶部都完全相同的地方。

我完成了任务,但我似乎从多个地方跳了出来。如何调整程序以满足条件。

1 个答案:

答案 0 :(得分:1)

您需要更改完全一个 jmp forever的代码。使用标签,您可以从多个地方跳转到此jmp forever。我的建议是:

processing:
         cmp number,10
         jg message

         cmp number,-10
         jl message

         jmp skipmsg

message: output rejected
skipmsg: jmp forever