`
zzc1684
  • 浏览: 1235394 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
算术运算符 名称 优先级
() 圆括号 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 提供的, 都有对应的二进制码, 它们作用在程序运行时.

分享到:
评论

相关推荐

    汇编语言学习大全

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语言.chm 学习汇编语言入门

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程 课程介绍 第1章 预备知识  1.1 汇编语言的由来及其特点  1 机器语言  2 汇编语言  3 汇编程序  4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 ...

    汇编语言基础学习资料

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语言教程-学习的极佳资料

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语⾔程序设计PPT-第4章

    - **算术运算符**:加号`+`、减号`-`、乘号`*`和除号`/`。 - **关系运算符**:小于号`、等于号`=`、大于号`&gt;`。 - **分隔符**:逗号`,`、冒号`:`、分号`;`、括号`(`和`)`、方括号`[`和`]`、空格和制表符`TAB`。 - **...

    汇编语言教程(AoGo汇编网站)

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语言教程chm电子书

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语言.chm电子书

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    编写简单的汇编程序优秀文档.ppt

    运算符有算术运算符、逻辑运算符、移位运算符、关系运算符、属性获取运算符、属性修改运算符和常量分离运算符等。 数据寻址方式是指在汇编程序中访问和操作存储器单元的方式。基本指令是汇编语言的基本组成部分,...

    汇编语言(在一个汇编网站上点击率在前三的电子书)

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    汇编语言教程.chm

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    PC汇编语言教程 作者:Paul A. Carter

    - **算术移位**:保留符号位的移位操作。 - **循环移位**:移出的位重新进入另一端。 - **简单应用**:例如乘除法操作。 ##### 3.2 布尔型按位运算 - **AND运算符**:按位与操作。 - **OR运算符**:按位或操作。 -...

    汇编语言学习大全 很实用的

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    WINDOWS系统开发汇编语言教程

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

    80x86汇编语言教程

     7 存储单元别名操作符  4.7 表达式  1 进制伪指令  2 数值表达式  3 地址表达式  4.8 符号定义语句  1 等价语句  2 等号语句  3 符号名定义语句  4.9 习题 第5章 微机CPU的指令系统  5.1 汇编...

Global site tag (gtag.js) - Google Analytics