PUSHAD和POPAD,以及PUSHA和POPA

PUSHAD

PUSHAD也叫保护现场,就是把我们的寄存器压入栈中
pushad是把eax,ecx,edx,ebx,esp、ebp,esi,edi依次压入栈中,ESP会减少32,相当于:

push eax
push ecx
push edx
push ebx
push esp
push ebp
push esi
push edi

就是我们在OD的寄存器窗口,看到的寄存器顺序,按照由上往下的顺序,依次压入栈,我们观察一下EDI的值,
在这里插入图片描述
此时栈顶值为:
在这里插入图片描述
执行pushad这条语句,栈顶值变成EDI的值了
在这里插入图片描述

POPAD

POPAD也叫还原现场,将栈中存储的寄存器值返还给寄存器
与PUSHAD顺序相反,将栈中数据弹出,依次传给EDI、ESI、EBP、ESP、EBX、EDX、ECX、EAX
相当于依次执行:

pop edi
pop esi
pop ebp
pop esp
pop ebx
pop edx
pop ecx
pop eax

PUSHA和POPA

PUSHA和POPA是操作16位寄存器的,功能与PUSHAD和POPAD相同
PUSHA相当于

push ax
push cx
push dx
push bx
push sp
push bp
push si
push di

POPA相当于依次执行:

pop di
pop si
pop bp
pop sp
pop bx
pop dx
pop cx
pop ax

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MOVSX和MOVZX

MOVSX 先符号扩展,再传送 格式: MOVSX 操作数A ,操作数B //操作数B的空间小于A比如说我们使用命令: movsx eax,bxbx是16位,eax是32位,传值过程: 先用bx的符号位把eax高16填满,b…

LEA与XCHG

LEA 格式: LEA 通用寄存器 内存地址功能:取地址命令 将内存地址赋值给寄存器 lea eax,dword ptr ds:[ecx0x16]dword 双字 就是四个字节ptr pointer缩写 即指针ds 数据段版寄存器[]里的数据是一个地址值,这个地址指向一个双字型数据 将dwo…

ADC和SBB命令

ADC 带进位加法指令 用法: adc 操作数1,操作数2相当于: 操作数1操作数2进位标志CF->操作数1现在的eax是0,C1,用adc指令直接会是0x6 SBB 带进位减法指令 用法: sbb 操作数1,操作数2相当…

mul和div指令(8位,16位,32位)

MUL 无符号乘法指令,默认操作数与eax相乘(这里只说32位,其他与下面的div类似) 格式: mul 操作数 //操作数只有一个操作数与eax相乘,结果共有16位(这里的16位是16进制数)&#xff…

imul和idiv指令

imul 有符号乘法指令,分单操作数,双操作数和但操作数 单操作数:此形式与mul指令使用完全相同,操作数乘以al、ax、或eax寄存器中的值,乘积分别存储到ax、dx:ax或edx:eax中 执行指令&#xff1a…

Ajax的注册应用

最近发现Ajax在用户注册表单和用户登录表单方面应用,最能体现Ajax的交互特点,因此又是写了一个习作! 演示效果 新开窗口地址: http://www.klstudio.com/demo/ajax/reg.htm 下载地址:http://www.klstudio.com/demo/ajax/reg.rar &…

XADD和NEG命令

XADD 交换相加指令,先交换然后相加 比如说: xadd eax,ecx /* 相当于:先执行:xchg eax,ecx然后执行:add eax,ecx */此时eax2,ecx3,执行完:eax5,ecx2 neg …

Java——File类

一,File类的概述和构造方法 A:file类的概述 file类可以理解成一个路径 文件夹或者是文件夹路径 路径分为绝对路径和相对路径 绝对路径是一个固定的路径,从盘符开始 这里的G:\TIM 就是一个绝对路径,是一个固定的路…

vue3 配置 @符号

config,ts 配置 有 爆红 安装 npm install 一下 然后 配置 路径提示功能 tsconfig.json 配置 路径提示功能 一共这两个路径配置

mts模式_MTS的完整形式是什么?

mts模式MTS:Microsoft Transaction Server /移动电话服务/多通道电视声音 (MTS: Microsoft Transaction Server/ Mobile Telephone Service/ Multichannel Television Sound) 1)MTS:Microsoft Transaction Server (1) MTS: Microsoft Transaction Server…

Java——IO流

一,IO流常识 Ⅰ,IO流的概述 1,IO流用来处理设备之间的数据传输 2,Java对数据的操作都是通过流的方式 3,Java用于操作流的类都在IO包中 4,流 按流向分为: ①输入流 ②输出流 5&#xff0…

《软件》2011年第6期刊登出 《DB 查询分析器》中断SQL语句的执行

《软件》编辑部寄来了2011年第6期样刊,在2011年第6期,刊登出了本人的论文------“《DB 查询分析器》中断SQL语句的执行”。 论文刊登在第42页,排在第13篇,还比较靠前,呵呵。 在“万方数据”和“中国期刊全文数据库”中…

ret2libc过地址随机化

程序&#xff1a; #include<stdio.h> char buf2[10] "this is buf2"; void vul() {char buf1[10];gets(buf1); } void main() {write(1,"sinxx",5);vul(); }很明显&#xff0c;gets函数存在溢出 编译&#xff1a; gcc -no-pie -fno-stack-protect…

远控免杀专题(29)-C#加载shellcode免杀-5种方式(VT免杀率8-70)

0x00 免杀能力一览表 几点说明&#xff1a; 1、表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家…

WPF界面设计技巧(2)—自定义漂亮的按钮样式

上次做了个很酷的不规则窗体&#xff0c;这次我们来弄点好看的按钮出来&#xff0c;此次将采用纯代码来设计按钮样式&#xff0c;不需要 Microsoft Expression Design 辅助了。 首先打开 Microsoft Visual Studio 2008 &#xff0c;新建一个WPF项目&#xff0c;在上面随便放几个…

ropgadgets与ret2syscall技术原理

程序&#xff1a; #include <stdio.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #include <sys/syscall.h> void exploit() { system("/bin/sh"); } void func() { char str[0x20]; read(0,str,0x50); } int…

PHP中单引号和双引号的区别

0x01 单引号 单引号里面的内容不会被解释&#xff0c;不管什么内容&#xff0c;都当做字符串处理 <?php$abc1234; $stradc$abc; echo $str;输出 0x02 双引号 双引号里面的内容会被解释&#xff0c;像一些换行&#xff08;\n)、数据元素等都会被解释 <?php$abc1234;…

关闭页面时执行“退出”的解决方案

在有些应用中我们需要实时的更新站点用户是否在线的状态。比如一些论坛里的在线成员实时显示&#xff0c;或基于网页的聊天、会议系统等。这种情况下&#xff0c;如果用户点击“退出”按钮或链接&#xff0c;我们将之行一系列后台操作&#xff0c;将该用户标识成off line状态&a…

python网络编程---TCP客户端

0x01 环境 python2、 pycharm 0x02 程序 # -*- coding:UTF-8 -*- import sockettarget_hostwww.baidu.com tarfet_port80target_hostlocalhost target_port3345 dataABCDEF# 创建一个socket对象 client socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接客户端 clien…

python网络编程---TCP服务器

0x01 环境 python2 pycharm 0x02 程序 客户端程序&#xff1a; # -*- coding:UTF-8 -*- import sockettarget_hostwww.baidu.com target_port80target_hostlocalhost target_port3345 dataABCDEF# 创建一个socket对象 client socket.socket(socket.AF_INET,socket.SOCK_STRE…