打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学 Win32 汇编[8]: 算术运算符、关系操作符、逻辑操作符、高低分离符和移位运算符

算术运算符名称优先级
()圆括号1
+,-正、负2
*,/乘、除3
MOD取模3
+,-加、减4

算术运算符示例:
; Test8_1.asm.386.model flat, stdcallinclude    windows.incinclude    kernel32.incinclude    masm32.incinclude    debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codestart:    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    retend start

关系操作符(EQ、NE、LT、LE、GT、GE)示例:
;EQ: 等于;NE: 不等于;LT: 小于;LE: 小于等于;GT: 大于;GE: 大于等于; Test8_2.asm.386.model flat, stdcallinclude    windows.incinclude    kernel32.incinclude    masm32.incinclude    debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codestart:    ;EQ : =    PrintDec 2 eq 1  ;0    PrintDec 2 eq 2  ;-1    PrintDec 2 eq 3  ;0        ;NE : <>    PrintDec 2 ne 1  ;-1    PrintDec 2 ne 2  ;0    PrintDec 2 ne 3  ;-1        ;LT : <    PrintDec 2 lt 1  ;0    PrintDec 2 lt 2  ;0    PrintDec 2 lt 3  ;-1        ;LE : <=    PrintDec 2 le 1  ;0    PrintDec 2 le 2  ;-1    PrintDec 2 le 3  ;-1        ;GT : >    PrintDec 2 gt 1  ;-1    PrintDec 2 gt 2  ;0    PrintDec 2 gt 3  ;0        ;GE : >=    PrintDec 2 ge 1  ;-1    PrintDec 2 ge 2  ;-1    PrintDec 2 ge 3  ;0    retend start

逻辑操作符(AND、OR、XOR、NOT)示例:
; Test8_3.asm.386.model flat, stdcallinclude    windows.incinclude    kernel32.incinclude    masm32.incinclude    debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codestart:    PrintHex 0FFFFFFFFh and 0FFFF0000h  ;FFFF0000    PrintHex 0FFFFFFFFh or  0FFFF0000h  ;FFFFFFFF    PrintHex 0FFFFFFFFh xor 0FFFF0000h  ;0000FFFF    PrintHex not 0FFFF0000h             ;0000FFFF    retend start

高低分离符(HIGH、LOW、HIGHWORD、LOWWORD)示例:
; Test8_4.asm.386.model flat, stdcallinclude    windows.incinclude    kernel32.incinclude    masm32.incinclude    debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codestart:    PrintHex high         1122h  ;11    PrintHex low          1122h  ;22    PrintHex high     11223344h  ;33    PrintHex low      11223344h  ;44    PrintHex highword 11223344h  ;1122    PrintHex lowword  11223344h  ;3344    retend start

移位运算符(SHL、SHR)示例:
; Test8_5.asm.386.model flat, stdcallinclude    windows.incinclude    kernel32.incinclude    masm32.incinclude    debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codestart:    PrintHex 12345678h shl 4  ;23456780    PrintHex 12345678h shl 8  ;34567800    PrintHex 12345678h shr 4  ;01234567    PrintHex 12345678h shr 8  ;00123456    retend start

以上运算符(或伪指令)有些和汇编(硬)指令重名, 区别在于它们只用于常数表达式, 并在编译期出结果.

伪指令? (硬)指令?
MASM 的伪指令是 MASM 提供的, 它们告诉编译期如何编译, 其作用在生成 obj 文件之前;
(硬)指令是 CPU 提供的, 都有对应的二进制码, 它们作用在程序运行时.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
学 Win32 汇编[28]---跳转指令
学 Win32 汇编[29]
【原创】PE区块添加工具
汇编环境搭建 -- MASM32
实现自己的printf函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服