寄存器

来源:互联网 发布:到哪里投诉阿里云 编辑:程序博客网 时间:2024/05/21 16:56

这个世界,哎!人生就像路上一堆又一堆狗屎!你明知道不能踩,还是tmd踩上去了!踩狗屎就跟上瘾一样了!其实心里明白!谁他妈会上瘾踩狗屎呢??
因为玩了一场游戏,当着我的面把我号给盗了,老子励志要学编程,要报复。学到现在,也就学了一堆shi,真不知道那些黑客大神是怎么炼成的。励志成为一泡屎,屎上再开花!!!

esp存储的是32位的栈顶指针
esp:0018ff84 里面的值是00401007
执行
push 0x0
esp:0018ff80 里面的值00000000

地址的每一位存储的是十六位的二位数 00-ff
执行push命令时候 就会把 push后面的值存储到这个指针里面

eip 里面放置的是当前指令地址:push 0x00 地址为00401000
执行完后eip就会变为00401002

eax 寄存器里面值如果为12345678
ax 中的值为5678 为后四位
ah al 分别为ax寄存器的高八位和低八位ah 56 al 78
其它寄存器例如ebx ecx edx也可以这么分

标志寄存器
o溢出寄存器
eax 设置为0x7fffffff 最大的正数
执行指令 add eax,1
eax 值为80000000 数字符号更改了 此时o标志位设置为1

p奇偶标志位
eax 00000000
add eax ,1 eax 00000001 此时p标志位为0
add eax ,1 eax 00000002 此时p标志位为0
add eax ,1 eax 00000003 此时p标志位为1 二进制中1为偶数时置1 奇数时候置0

当为00000000时候表示1的个数为偶数 p标志位置1

z 0标志位
eax ffffffff 相当于十进制-1
add eax,1 eax变为00000000 此时z标志位置1

s符号标志位
负数的时候置1
eax fffffff8 十进制-8
add eax,1 -7 此时s标志位置1

c标志位
无符号运算的结果 超过最大数值时设置 eax ffffffff add eax,1 此时c标志位设置为1

0 0