2016-05-20 6 views
0

メインプロシージャの特定のセクションに別のプロシージャからジャンプします。基本的に私はメイン・プロシージャのイントロ部分を持っていますが、残りの部分はループしたいのですが、別の手順からです。これは可能ですか?MASMのプロシージャの特定のセクションにジャンプする方法はありますか

main PROC 
    call otherProc 
    section: 
     ;Do something else 
main ENDP 


other PROC 
    jmp main.section ; Jump to section inside main...is this possible? 
other ENDP 
+1

はい、可能ですが、ラベルはどこにあるか気にしません。なぜあなたはそれを試していないのですか? – Jester

+0

@Jesterメインの中でセクションラベルを使ってみましたが、 '未定義のシンボル"セクション "と言っていました。適切な構文を使用しているかどうかはわかりませんでした。 – 123

+1

ラベルの後ろにプロシージャの外側に見えるように 'PROC 'の中に二重コロンを置かないでください。私。 'section ::' – Michael

答えて

2

は、このリンクによると、二重コロンを使用すると、私は単なる一例を作っ

http://coding.derkeiler.com/Archive/Assembler/alt.lang.asm/2006-11/msg00909.html

スコープの非ラベルを作り、期待どおりに動作している

.686P 
.MODEL FLAT 
.STACK 4096 

EXTERN  _printf  :PROC 

.DATA 
msg  BYTE "testing", 0dh, 0ah, 0 

.CODE 

_main PROC 

    push ebp 
    mov  ebp, esp 

    call _other 
lbl1:: 
    add  esp, 4 
    push OFFSET msg 
    call _printf 
    add  esp, 4 

    xor  eax, eax 
    pop  ebp 
    ret 

_main ENDP 

_other PROC 

    jmp  lbl1 
    ret 

_other ENDP 

END 

VS 2015コマンドプロンプトでコンパイルするには:

ml jumps.asm /link legacy_stdio_definitions.lib msvcrt.lib 
関連する問題