x86汇编基础
原创
©著作权归作者所有:来自51CTO博客作者富坚老贼的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、定义数据
1.内部数据类型
Byte; 8位无符合整数
SByte; 8位有符合整数
Word; 16位无符合整数
SWord; 16位有符合整数
DWord; 32位无符合整数
SDWord; 32位有符合整数
FWord; 48位整数
QWord; 64位整数
TByte; 80位(10字节)整数
Real4;
Real8;
Real10;
2.伪指令
DB; 8位整数
DW; 16位整数
DD; 32位整数或实数
DQ; 64位整数或实数
DT; 80位(10字节)整数
3.Byte和SByte --1个字节
value BYTE 'a' ;
value byte 6
value sbyte -100
(1)?
(2)多初始值
连续每个字节分别存储 10 20 30
(3)字符串
str1 BYTE 'h','e','l','l','o'
str2 BYTE "hello",0 ;0作为结束标记,每个字符占一个字节
(4)dup
BYTE 3 DUP('abc') ;连续abcabcabc
4.word和sword --2个字节
list word 1,2,3; 一个数占2个字节
5.dword和sdwrod --双字-4个字节
6.qword --64位--8个字节
7.real4 --4个字节
保存浮点数
8.知识点
x86指令集不允许两个变量相加
x86内存按小端(由低到高)存放和搜索数据
9.等号伪指令
10.当前地址计数器
在汇编源程序时,使用地址计数器保存正在汇编的指令在当前段内的偏移地址,用户可以用$来引用地址计数器的值。
$是一个数值常量,它可以出现在一切允许出现的位置。例如,利用$可以求当前位置与某变量之间的距离等
list byte 3,3,5,2
count=($-list) ;必须紧跟上一句 计算出count偏移量为4
11.EQU伪指令
把某变量当成一个常数
pi equ a;表达式
pi equ b;用或equ定义过的符号
pi equ <3.14> ;可以是任意数值和文本
12.TEXTEQU伪指令
类似equ创建的文本宏
13.64位编程