一、如何定义变量
变量分为全局变量与局域变量。
全局变量定义在 .data或 .data?段内,可以同时定义变量的类型和长度,格式是:
变量名 类型 初始值1,初始值2,……
变量名 类型 重复数量 dup (初始值1,初始值2,……)
类型名称 | 表示方式 | 缩写 | 长度(字节) |
字节 | byte | db | 1 |
字 | word | dw | 2 |
双字(doubleword) | dword | dd | 4 |
三字(farword) | fword | df | 6 |
四字(quadword) | qword | dq | 8 |
十字节BCD码(tenbyte) | tbyte | dt | 10 |
有符号字节(signbyte) | sbyte |
| 1 |
有符号字(signword) | sword |
| 2 |
有符号双字(signdword) | sdword |
| 4 |
单精度浮点数 | real4 |
| 4 |
双精度浮点数 | real8 |
| 8 |
10字节浮点数 | real10 |
| 10 |
局域变量的使用在后面讲子过程的时候,再为大家讲解。
二、变量的命名规则
1. 可以用字母、数字、下划线及符号@、$和?。
2. 第一个符号不能是数字。
3. 长度不能超过240个字符。
4. 不能使用指令名等关键字。
5. 在作用域内必须是惟一的。
三、全局变量的使用
.data
szCaption db '这是文本内容',0 //注:末尾为“零”表示字符串结束
szText db '这是标题',0
szSize db ? //表示未初始化的变量
1、获取变量的大小: sizeof
如: Mov eax,sizeof szCaption
2、获取变量的地址: offset
如:Mov eax,offset szText