汇编知识点-数据定义
2013-08-02 16:18
459 查看
定义内部数据类型
类型
BYTE,SBYTE,WORD,SWORD,DWORD,SDWORD,
FWORD(48位整数,保护模式下用作远指针)
QWORD(64位整数,8字节), TBYTE(80位整数,10字节)
REAL4(32位,IEEE短实数),REAL8,REAL10
举例: val5 DWORD 12345678h
数据定义语句要指定至少一个初始值,多个初始值以逗号隔开.若不想初始化,可以用符号"?"作为初始值.
定义数组:
array1 BYTE 10, 20, 30, 40
BYTE 50, 60, 70, 80 ;可定义多行
array2 BYTE 10, 32, 41h, 00100010b ;不同基数可混用
array3 BYTE 0Ah, 20h, 'A', 22h ;不同基数,字符,字符串可混用
定义字符串
greeting1 BYTE "Good afternoon", 0 ;可以空字符结尾
greeting2 BYTE "this is the first" ;可定义多行
BYTE "string i created.", 0dh, 0ah, ;换行符/r/n --> 0dh, 0ah
BYTE "ok, end.", 0 ; 结束
DUP操作符.
未多个数据项分配空间
array1 BYTE 20 DUP(0) ; 20字节, 全部等于0
array2 BYTE 20 DUP(?) ; 20字节, 未初始化
array4 BYTE 3 DUP("stack") ; 15字节, "stackstackstack"
小尾和大尾顺序(little endian, big endian)
小尾:最低有效字节存储在地址值最小的地址单元.
12345678h的存储: 0000: 78, 0001: 56, 0002: 34, 0001: 12
未初始化数据的声明
".DATA?"伪指令用于声明未初始化数据.定义大块数据时非常有用.减小编译体积.
.data?
bigArray DOWRD 5000 DUP(?) ; 20000字节.未初始化.
编译前计算数组和字符串大小: '$', 当前地址值,byte单位
list BYTE 10, 20, 30, 40
listSize = ($ - list)
EQU伪指令,
用于编译阶段定义.equ不可重复定义.
PI EQU <3.1415926>
printMe EQU <"my name is fei">
val1 EQU <100h + 200h>
val2 WORD val1
TEXTEQU文本宏伪指令
count TEXTEQU 5
move TEXTEQU <mov>
setAL TEXTEQU <move, al, count>
setAL将被汇编成:mov, al, 5
类型
BYTE,SBYTE,WORD,SWORD,DWORD,SDWORD,
FWORD(48位整数,保护模式下用作远指针)
QWORD(64位整数,8字节), TBYTE(80位整数,10字节)
REAL4(32位,IEEE短实数),REAL8,REAL10
举例: val5 DWORD 12345678h
数据定义语句要指定至少一个初始值,多个初始值以逗号隔开.若不想初始化,可以用符号"?"作为初始值.
定义数组:
array1 BYTE 10, 20, 30, 40
BYTE 50, 60, 70, 80 ;可定义多行
array2 BYTE 10, 32, 41h, 00100010b ;不同基数可混用
array3 BYTE 0Ah, 20h, 'A', 22h ;不同基数,字符,字符串可混用
定义字符串
greeting1 BYTE "Good afternoon", 0 ;可以空字符结尾
greeting2 BYTE "this is the first" ;可定义多行
BYTE "string i created.", 0dh, 0ah, ;换行符/r/n --> 0dh, 0ah
BYTE "ok, end.", 0 ; 结束
DUP操作符.
未多个数据项分配空间
array1 BYTE 20 DUP(0) ; 20字节, 全部等于0
array2 BYTE 20 DUP(?) ; 20字节, 未初始化
array4 BYTE 3 DUP("stack") ; 15字节, "stackstackstack"
小尾和大尾顺序(little endian, big endian)
小尾:最低有效字节存储在地址值最小的地址单元.
12345678h的存储: 0000: 78, 0001: 56, 0002: 34, 0001: 12
未初始化数据的声明
".DATA?"伪指令用于声明未初始化数据.定义大块数据时非常有用.减小编译体积.
.data?
bigArray DOWRD 5000 DUP(?) ; 20000字节.未初始化.
编译前计算数组和字符串大小: '$', 当前地址值,byte单位
list BYTE 10, 20, 30, 40
listSize = ($ - list)
EQU伪指令,
用于编译阶段定义.equ不可重复定义.
PI EQU <3.1415926>
printMe EQU <"my name is fei">
val1 EQU <100h + 200h>
val2 WORD val1
TEXTEQU文本宏伪指令
count TEXTEQU 5
move TEXTEQU <mov>
setAL TEXTEQU <move, al, count>
setAL将被汇编成:mov, al, 5
相关文章推荐
- 汇编学习之路(二)标号后定义数据产生错误
- C++汇编数据存储定义
- Intel汇编与程序设计第五版3.4定义数据小节
- 汇编知识点-数据传送,寻址和算术运算
- [Intel汇编-MASM]用DS寄存器定义一段数据
- win32汇编 数据类型及定义
- 汇编 数据类型定义
- 数据库概论---数据定义
- 向EXCEL导出数据(通过定义单元格区域名称)
- 类在其自身的定义体内作为数据类型
- 【OC加强】block数据类型的定义和调用以及传参等应用
- 1-11-6 - (2)定义ispalindrome函数(判断输入数据是否回文)
- emu8086 不支持用 ? 来定义 数据
- Linux0.11内核--段数据定义
- 定义数据类型
- windows api中定义的基本数据类型简介
- ASP.NET前台如何调用后台定义的变量即数据的绑定详解
- 在汇编中定义table(array)
- 汇编语言数据类型与声明
- [汇编语言]-第六章 包含多个段的程序 在一个段中存放数据,代码,栈