1
 .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:
main PROC

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

processing:
    cmp number,10
        jg message
    cmp number,-10
        jl message

message: output rejected


finish:
    INVOKE ExitProcess, 0

main endp
PUBLIC _start
        END

我要完成的工作:一次读入一个数字,处理该数字并检查它是否为 0,如果是,则退出程序,如果数字 > 10 或 < -10,则打印一条消息“拒绝。 " 我在创建跳转语句时遇​​到了很多麻烦,如何让循环继续处理数字直到 0 ?即使我输入“有效”号码,它仍然会打印“拒绝”消息,然后退出程序。也许在比较之后我不能有多个跳转语句?

4

1 回答 1

1

您以错误的顺序放置循环。输入时0退出,否则处理它并THEN希望重复循环直到0输入,可选地,当输入为错误值时,您必须打印消息。

     cmp number,0
     je  finish

processing:
    ...
    jmp forever    ; So everything is fine and you continue


message:
    output rejected
    jmp forever
于 2014-12-04T07:23:34.767 回答