Wenn anderes makro in MASM

In MASM, ist es möglich, erstellen Sie ein, wenn...ekse makro (ähnlich denen in der high-level-Programmiersprachen)? Ich habe noch nicht gefunden, jede Art von if-else-Anweisung makro für MASM, aber ich denke, dass ein makro für diesen Zweck sehr nützlich sein würde.

Sinnvoll wäre es, wenn ich finden konnte, ein makro, um es einfacher zu schreiben, eine komplexe Reihe von if-Anweisungen in masm, wie hier gezeigt:

;jump to each case here
    checkCase1:
    cmp theVariable, 5;
    jne case1; 

    checkCase2:
    cmp theVariable, var2;
    jne case2;

    jmp defaultCase; do this if no other statement is true
;each of the cases are handled here

    case1:
    ;handle case 1
    jmp checkCase2; //check whether case 2 is true

    case2:
    handle case 2
    jmp endOfStatement;
    defaultCase:
        ;this is the default case
endOfStatement:
;this is the end of the statement
  • Das Beispiel, das ich gepostet wirkt mehr wie eine if...else if...else-Anweisung als eine switch-Anweisung.
  • Ich bin mir nicht sicher, ob es möglich ist zu schreiben, eine MASM-makro, das würde Sie akzeptieren eine variable Anzahl von Argumenten. Vielleicht wäre es einfacher zu schreiben eine einfache if...else-makro.
Schreibe einen Kommentar