算術運算符 | ?名稱?? | 優先級 |
() | 圓括號? | 1 |
+,- | 正、負 | 2 |
*,/ | 乘、除 | 3 |
MOD | 取模 | 3 |
+,- | 加、減 | 4 |
?
------------------------------------------------------------------------------------------------------------------------------------------
.386
.modelflat, stdcall
include?? windows.inc
include?? kernel32.inc
include?? masm32.inc
include?? debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib
.code
start:
??? PrintDec 7 + 3???????? ?;10
??? PrintDec 7 - 3??????????;4
??? PrintDec 7 * 3?????? ?? ;21
??? PrintDec 7 / 3??????????;2
??? PrintDec 7 mod 3????;1
??? PrintDec 7 / 3 + 4?? ?;6
??? PrintDec 7 / (3 + 4)? ;1
??? ret
end start
------------------------------------------------------------------------------------------------------------------------------------------
;EQ: 等于
;NE: 不等于
;LT: 小于
;LE: 小于等于
;GT: 大于
;GE: 大于等于
?
邏輯操作符(AND、OR、XOR、NOT)
?
高低分離符(HIGH、LOW、HIGHWORD、LOWWORD)
------------------------------------------------------------------------------------------------------------------------------------------
.386
.modelflat, stdcall
include?? windows.inc
include?? kernel32.inc
include?? masm32.inc
include?? debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib
.code
start:
??? PrintHex high??? ???? 1122h ;11
??? PrintHex low??? ????? 1122h ;22
??? PrintHex high???? 11223344h ;33
??? PrintHex low????? 11223344h ;44
??? PrintHex highword 11223344h ;1122
??? PrintHex lowword? 11223344h ;3344
??? ret
end start
移位運算符(SHL、SHR)
.386
.modelflat, stdcall
include?? windows.inc
include?? kernel32.inc
include?? masm32.inc
include?? debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib
.code
start:
??? PrintHex 12345678h shl 4 ;23456780
??? PrintHex 12345678h shl 8 ;34567800
??? PrintHex 12345678h shr 4 ;01234567
??? PrintHex 12345678h shr 8 ;00123456
??? ret
end start
------------------------------------------------------------------------------------------------------------------------------------------
以上運算符(或偽指令)有些和匯編(硬)指令重名, 區別在于它們只用于常數表達式, 并在編譯期出結果.
偽指令? (硬)指令?
MASM 的偽指令是 MASM 提供的, 它們告訴編譯期如何編譯, 其作用在生成 obj 文件之前;
(硬)指令是 CPU 提供的, 都有對應的二進制碼, 它們作用在程序運行時.
?