算术运算符 | 名称 | 优先级 |
() | 圆括号 | 1 |
+,- | 正、负 | 2 |
*,/ | 乘、除 | 3 |
MOD | 取模 | 3 |
+,- | 加、减 | 4 |
算术运算符示例:
; Test8_1.asm .386 .model flat, 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)示例:
;EQ: 等于 ;NE: 不等于 ;LT: 小于 ;LE: 小于等于 ;GT: 大于 ;GE: 大于等于 ; Test8_2.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .code start: ;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 ret end start
逻辑操作符(AND、OR、XOR、NOT)示例:
; Test8_3.asm .386 .model flat, 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 0FFFFFFFFh and 0FFFF0000h ;FFFF0000 PrintHex 0FFFFFFFFh or 0FFFF0000h ;FFFFFFFF PrintHex 0FFFFFFFFh xor 0FFFF0000h ;0000FFFF PrintHex not 0FFFF0000h ;0000FFFF ret end start
高低分离符(HIGH、LOW、HIGHWORD、LOWWORD)示例:
; Test8_4.asm .386 .model flat, 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)示例:
; Test8_5.asm .386 .model flat, 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 提供的, 都有对应的二进制码, 它们作用在程序运行时.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· .NET Core GC压缩(compact_phase)底层原理浅谈
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
2008-04-04 使用剪切板[5]: SetAsHandle、GetAsHandle - 自定义格式
2008-04-04 使用剪切板[4]: 如果把子控件一起复制? - 同时回复 ghd2004 的问题
2008-04-04 使用剪切板[3]: SetComponent、GetComponent