x86汇编基础

一、定义数据

1.内部数据类型

Byte;   8位无符合整数
SByte;   8位有符合整数
Word;    16位无符合整数
SWord;  16位有符合整数
DWord;  32位无符合整数
SDWord; 32位有符合整数
FWord;  48位整数
QWord;  64位整数
TByte;  80位(10字节)整数
Real4;
Real8;
Real10;
a DWORD 88

2.伪指令

DB; 8位整数
DW; 16位整数
DD; 32位整数或实数
DQ; 64位整数或实数
DT; 80位(10字节)整数
a DD 88

3.Byte和SByte --1个字节

value BYTE   'a' ;
value byte    6
value sbyte  -100

(1)?

value BYTE    ? ;变量未初始化

(2)多初始值

list BYTE 10,20,30

连续每个字节分别存储 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个字节

a dword 1 ;一个数字占4个字节

6.qword --64位--8个字节

7.real4 --4个字节

保存浮点数

aaa real4 -1.2

8.知识点

x86指令集不允许两个变量相加

x86内存按小端(由低到高)存放和搜索数据

9.等号伪指令

count=10
mov al,count

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位编程

原文地址:https://www.cnblogs.com/buchizaodian/p/12623031.html