MASM 6.x 導入類 Pascal/C 的高階控制結構,編譯器自動轉換為 CMP/Jcc、LOOP 等底層指令,讓組語碼可讀性大幅提升。
| 運算子 | 意義 |
|---|---|
== | 等於 |
!= | 不等於 |
>/< | 大於/小於 |
& | 位元測試 |
! | 邏輯非 |
&& | 邏輯與 |
|| | 邏輯或 |
輔助條件(直接對應旗標):ZERO?/!ZERO? (ZF)、CARRY?/!CARRY? (CF)、OVERFLOW? (OF)、SIGN? (SF)、PARITY? (PF)。
.IF 條件
...
.ELSEIF 條件
...
.ELSE
...
.ENDIF
.WHILE 條件 ... .ENDW.REPEAT ... .UNTIL 條件 或 .REPEAT ... .UNTILCXZ (條件成立或 CX=0 才離開).BREAK:離開迴圈,可加 .IF 條件.CONTINUE:跳至迴圈開頭,可加 .IF 條件程式使用 .WHILE、.IF/.ELSE 區分單雙精度乘法(MUL vs 手動雙精度),結果以 dw2a 或自訂 OutEdxEax 轉十進位字串,StdOut 輸出。反組譯碼顯示編譯器確實產生結構化對應的 CMP/Jcc 序列,無手寫跳轉。
包含上述所有高階指令、運算子、旗標條件與範例,詳見原文附錄。