Win32ASM学习[2]:运算符

 

算术运算符

 名称  

优先级

()

圆括号 

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 提供的, 都有对应的二进制码, 它们作用在程序运行时.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值