【MASM汇编语言快速入门】MASM常用伪指令速查表——变量

MASM伪指令速查表–变量

初学MASM时, 常常看不懂db, dup(?)等汇编指令的含义, 教材中也缺乏系统的解释。与机器指令不同,这些指令叫伪指令, 在编译(汇编)的时候被MASM编译器处理, 而在运行时计算机不会真正的执行这些指令。这篇文章可以系统的解决对MASM伪指令的困扰。 MASM学习到这一块才叫真正的MASM,之前学习的机器指令都属于各种汇编语言都支持的8086指令集, 而这些伪指令只有MASM有, 别的汇编语言比如NASM等是不支持这些伪指令的。

一. 数值型参数(常量)和表达式

1. 常量(常数)定义equ=

格式: [常量名] equ [值] 或者[常量名] = [值]

举例:

myid equ 1234
numofchina =1		   ;一个中国
calldos equ <int 21h>  ;[值]可以是字符串, 但是字符串要拿<>括起来

注意:

这里定义的是常量, 在内存中没有分配空间, 因此和高级语言(如c语言)的常量一样myid equ myid+1这种语句是不允许的

2. 数值表达式

masm6.x支持多种运算符, 对的你没有看错, MASM还可以支持运算符, 但是仅限常量和立即数的计算(和c语言的宏同理, 就是在编译的时候算好), 不能运行时计算

运算符类型
算术运算符 +, -, *, /, MOD(取余)
逻辑运算符 AND, OR, XOR(异或), NOT
移位运算符 SHL(左移), SHR(右移)
关系运算符 EQ(equal相等), NE(not equal不相等), GT(greater than大于), LT(less than小于), GE(大于等于), LE(小于等于)
高低分离符 HIGH(高字节), LOW(低字节), HIGHWORD(高字), LOWWORD(低字)

举例:

mov ax, 1*1+2 ; 等价于mov ax, 3
mov al, 0101b shl (2*2) ; 等价于 mov al, 01010000b(0101b左移四位)
mov ah, high 8765h ; 等价于 mov ah, 87h(8765h的高字节)

二. 变量定义伪指令

1. db/dw/dd/df/dq/dt

db是以字节(8比特)为单位, dw是以字为单位(16比特), dd是双字, df是三字, dq是四字, dt是十字

格式: [变量名] db [初值表]

功能: 定义以字节为单位的变量,变量的起始地址为[变量名], 值为[初值表]中每个逗号隔开的元素, [变量名]可以省略

示例:

.data
X
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值