MASM汇编语言笔记(二)汇编语言基础
2011-09-30 14:04
260 查看
回车换行符 CR/LF 0dh,0ah
字符串以空字符0结尾 greetings BYTE "Good Morning",0
不初始化的值用?表示,例如 value BYTE ?
DUP初始化多个字节,例如 array WORD 20 DUP(?)
遗留初始化伪指令DB,DW,DD,DQ,DT都可以使用
定义数组,例如 mylist WORD 1,2,3,4,5
定义实数,例如 rVal REAL8 3.2E-260
小尾顺序 little endian order:变量的最低有效字节存储在地址值的最小的地址单元中,其余字节顺序存储
例如 12345678H的存储情况:
0000 78
0001 56
0002 34
0003 12
.DATA?伪指令 声明为未初始化数据,可以减小编译后的程序尺寸,例如
.DATA
smallArray DWORD 10 DUP(0)
.DATA?
bigArray DWORD 5000 DUP(?)
代码段和数据段可以混合书写
符号常量编译器确定,不占存储空间,相当于C语言里的常量
等号伪指令 名字=表达式,例如
COUNT=500
mov ax,COUNT
用符号常量可以使程序清晰,例如用于键值定义和DUP操作符等
$运算符:返回当前程序语句的地址偏移值
计算数组大小举例:
list BYTE 10,20,30,40
ListSize=($-list)
计算字符串大小举例:
myString BYTE "This is a long string,containing"
BYTE "any number of characters"
myStringLength=($-myString)
字WORD数组和D双字WORD数组计算长度时必须除以2或4,例如;
List WORD 1000H,2000H,3000H,4000H
ListSize=($-List)/2
EQU伪指令,相当于C语言里的define,例如 PI EQU 3.1416
EQU不允许重复定义,=允许重复定义
TEXTEQU用于创建文本宏text macro 例如:
rowSize=5
count TEXTEQU %(rowSize*2)
move TEXTEQU <mov>
setupAL TEXTEQU <move al,count>
那么setupAL将被汇编成 mov al,10
TEXTEQU有三种风格:
name TEXTEQU <text> 将文本赋给符号
name TEXTEQU textmacro 将已定义的文本宏内容赋给符号
name TEXTEQU %constExpr 将整数表达式常量赋给符号
TEXTEQU可以重复定义
字符串以空字符0结尾 greetings BYTE "Good Morning",0
不初始化的值用?表示,例如 value BYTE ?
DUP初始化多个字节,例如 array WORD 20 DUP(?)
遗留初始化伪指令DB,DW,DD,DQ,DT都可以使用
定义数组,例如 mylist WORD 1,2,3,4,5
定义实数,例如 rVal REAL8 3.2E-260
小尾顺序 little endian order:变量的最低有效字节存储在地址值的最小的地址单元中,其余字节顺序存储
例如 12345678H的存储情况:
0000 78
0001 56
0002 34
0003 12
.DATA?伪指令 声明为未初始化数据,可以减小编译后的程序尺寸,例如
.DATA
smallArray DWORD 10 DUP(0)
.DATA?
bigArray DWORD 5000 DUP(?)
代码段和数据段可以混合书写
符号常量编译器确定,不占存储空间,相当于C语言里的常量
等号伪指令 名字=表达式,例如
COUNT=500
mov ax,COUNT
用符号常量可以使程序清晰,例如用于键值定义和DUP操作符等
$运算符:返回当前程序语句的地址偏移值
计算数组大小举例:
list BYTE 10,20,30,40
ListSize=($-list)
计算字符串大小举例:
myString BYTE "This is a long string,containing"
BYTE "any number of characters"
myStringLength=($-myString)
字WORD数组和D双字WORD数组计算长度时必须除以2或4,例如;
List WORD 1000H,2000H,3000H,4000H
ListSize=($-List)/2
EQU伪指令,相当于C语言里的define,例如 PI EQU 3.1416
EQU不允许重复定义,=允许重复定义
TEXTEQU用于创建文本宏text macro 例如:
rowSize=5
count TEXTEQU %(rowSize*2)
move TEXTEQU <mov>
setupAL TEXTEQU <move al,count>
那么setupAL将被汇编成 mov al,10
TEXTEQU有三种风格:
name TEXTEQU <text> 将文本赋给符号
name TEXTEQU textmacro 将已定义的文本宏内容赋给符号
name TEXTEQU %constExpr 将整数表达式常量赋给符号
TEXTEQU可以重复定义
相关文章推荐
- 汇编语言笔记--第一章--基础知识
- 汇编语言笔记01-基础知识
- 汇编语言笔记第一章基础知识
- 【CSAPP笔记】4. 汇编语言——基础知识
- MASM汇编语言笔记(一)IA32处理器体系结构
- 汇编语言:基础知识(第一章)——学习笔记
- MASM汇编语言笔记(三)数据传送和算术运算
- 汇编语言学习笔记--基础知识篇
- 汇编语言学习笔记(一):汇编语言基础知识
- windows下32位汇编语言学习笔记 第三章 使用MASM
- 汇编语言 学习笔记(基础知识三-----内存地址空间)
- 【学习笔记之汇编语言】【一】基础知识
- 汇编语言基础知识学习笔记(三)
- 汇编语言学习笔记...01.基础知识
- 汇编语言王爽第二版学习笔记第一章:基础知识
- [汇编语言学习笔记][第一章基础知识]
- 汇编语言 学习笔记(基础知识)
- 汇编语言 学习笔记(基础知识二----地址总线、数据总线、控制总线)
- [置顶] [汇编语言学习笔记][第一章基础知识]
- 汇编语言学习笔记1.0-(基础知识、寄存器)