您的位置:首页 > 其它

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可以重复定义
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: