Assembly basic learning

2020-11-04 10:56:42 浏览数 (1)

关于汇编

​ 在身边各个PWN师傅的影响下,我这个小菜鸡也要开始我自己的PWN的旅程了。由于基础不好,所以要从头开始学习汇编基础喽,在学习的同时写下笔记以便于以后使用时候的查看和温习。

​ 汇编语言刚接触的时候确实是很难懂,下面来用一个简单的程序来深入了解一下工作过程。

代码语言:javascript复制
main PROC
    mov eax,5
    add eax,6
    INVOKE ExitProcess,0
main ENDP

这个简单的程序的工作原理:第一行开始main函数(程序的入口),第二行是将5写入到eax寄存器;第三行把6加入到eax寄存器上,得到新值11;第四行调用windows服务(也被成为函数)ExitProcess停止程序,并将控制权交给操作系统,最后一行是主程序结束的标记。

从这个程序看来,通过汇编语言程序员可以看到程序正在发生的所有事情,包括CPU的寄存器和标志!

整数常量

整数常量又称为整型常量,由一个可选前置符号,一个或多个数字,以及一个指明其基数的可选基数字符构成:

[{ | -}] digits [ radix ]

下表列出来了可能的基数值:

进制

基数值

十六进制

h

十进制

d

八进制

q/o

二进制

b

编码实数

r

整数常量表达式

​ 在我自己看来,整数常量表达式只要你小学毕业了,应该就可以看的明白。

这里再介绍一下:整数常量表达式他是一种算是算式表达式,它包含了整数常量和算数表达式,算式计算的结果必须是个整数,可以用32位来存放(从0到FFFFFFFFh)运算的优先级就是和整数计算的时候一样。先算乘除后算加减,有括号就先算括号里面的。

建议:在表达式中合理使用括号声明操作顺序就不用记优先级。

实数常量

​ 实数常量又成为浮点数常量,用于表示十进制实数和编码(十六进制)实数。十进制实数包含一个可选符号加一个整数后面跟一个十进制小数点,一个可选的表示小数部分的整数,一个可选指数

[sign] int.[int] [exponent]

符号和指数的格式如下

sign { | -}

exponent E[{ ,-}] int

编码实数表示的是十六进制实数

0 人点赞