EXE文件中的程序的加载过程 SA是什么呢?PSP是什么?
精华解读:https://zhidao.baidu.com/question/195901151.html
段地址SA,默认在DS中!
查看PSP命令:
-d ds:0
一般来说,PSP是256个字节,当程序生成了可执行文件以后,在执行的时候,
先将程序调入专属内存,这个时候DS中存入程序在内存中的段地址,紧接着是程序的一些说明,
比如说程序占用多大空间等等,这就是PSP,一般PSP占256个字节,然后才是真正的程序地址,
将CS指向这里,IP设为0000,为什么一般CS要比DS大10H,就是因为这个原因。
简单说:DS存放的是程序段地址,由于PSP的存在,真正要执行的地址是DS再加上256个字节,
真正的地址是DS*16+256化简一下:DS*16+0+16*16=16*(DS+16)
真正的地址又可以写成:cs*16+0
所以CS相当于DS+16,化成十六制是DS+10
自己的人话版解读:
王爽老师汇编语言书里面的截图:
SA的介绍:
无论是书本,还是搞这个的老哥们。都意思如下:
只需要知道第一步,程序地址=SA * 16 + 256,即可。
PSP是什么呢?
书上也说啦。就是取出段内存区的前面256个字节。用来与被加载程序通信。
虽然是废话,但是在此作为一个烂笔头的存在好啦~
关于程序物理地址: SA+10H:0
出现过程:
首先PSP的物理地址:SA*16+0;再补上预留给PSP的256个字节(即是:100H)。
故而: (SA*16+0)+256
=(SA+16)*16+0
化为16进制=(SA+10H):0
EXE文件中的程序的加载过程 SA是什么呢?PSP是什么?相关推荐
- 磁盘中的程序必须加载到内存才能运行
计算机中主要的存储部件是内存和磁盘.磁盘中存储的程序必须加载到内存之后才能运行.在磁盘中保存的原始程序是无法直接运行的.这是因为,负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址, ...
- 汇编 --- EXE文件 的程序的加载过程
1.asm 使用编译工具写了一个求2的3次方的程序 assume cs:abcabc segmentmov ax,2add ax,axadd ax,axmov ax, 4c00Hint 21H abc ...
- zsh关于.zprofile .zlogin .zshrc .zshenv文件中环境变量的加载
zsh下的用户环境配置文件包括.zlogin..zprofile..zshrc..zshenv和.zlogout.刚开始使用zsh,我被弄迷糊了.把这些文件使用场景记录下,以防忘记.
- 基于visual c++之windows核心编程代码分析(64)现有的exe文件中添加自己的代码
我们进行信息安全编程的时候,经常需要向exe文件插入自己的源代码, 我们如何在代码中实现呢.请见代码与注释讲解 #include <iostream.h> #include <win ...
- EXE文件的加载过程
一个microsoft的.exe程序文件的启动过程 2009-06-16 14:54 2101人阅读 评论(0) 收藏 举报 microsoftmfcwindowsshelldll数据结构 学习win ...
- 可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug
今天遇到一个很奇怪的问题, 当代码如下时: char* s = (char*)malloc(20*sizeof(char)); string buffer; const char* conchar; ...
- Linux下C/C++程序编译链接加载过程中的常见问题及解决方法
Linux下C/C++程序编译链接加载过程中的常见问题及解决方法 1 头文件包含的问题 报错信息 该错误通常发生在编译时,常见报错信息如下: run.cpp:2:10: fatal error: dl ...
- Autocad、中望CAD自动加载程序研究(注册表法、acad.rx、acaddoc.lsp或acad.lsp)
Autocad.中望CAD自动加载程序研究(注册表法.acad.rx.acaddoc.lsp或acad.lsp) 一.使用注册表 假设你的arx文件名字是aaa.arx绝对路径是c:\aaa.arx ...
- 微信小程序,Eror代码包大小为12497kb,上限为 2048 kb,请删除文件后重试?微信小程序分包加载
微信小程序如何解决预览超过2M的问题?微信小程序分包加载 在微信小程序开发过程中有个问题让人很头疼,就是预览的项目不能超过2M,我们的项目通常都会超过这个大小限制.那到底怎么解决呢?其实官方给出了解决 ...
最新文章
- 用户界面设计十大基本原则
- 改变jupyter notebook的主题背景颜色
- java http请求 乱码_怎么解决java中的http请求乱码
- 利用fiddler将本地网页放到某个域下
- CodeForces - 1486C2 Guessing the Greatest (hard version)(二分+交互)
- 单边指数信号的特点_今日股市分析:上证指数若能守住3400,蓄力反弹就有戏...
- python如何读取文件数据恢复_删python目录
- datastage odbc mysql,Linux系统odbc配置实现Datastage8.x连接mssqlserver数据库
- dda算法c语言,Python使用DDA算法和中点Bresenham算法画直线
- Windows登录FTP服务器方法
- 华为静态,动态NAT,Easy IP实验!超详细,有手就能学会
- RSS源推荐大全(it版)
- 中南大学2019计算机研究生分数线,2019中南大学研究生分数线(含2016-2019历年复试)...
- r语言寻找1000以内的质数
- 爬虫 403 增加header和代理ip也没用?有可能是cloudflare在搞事情
- 概率论学习二、样本空间与事件
- python求平均数和中位数
- Java--反射(框架设计的灵魂)
- 基于SSH框架的二手物品交易网(Struts)
- CentOS系统中如何搭建NTP时间服务器(时间同步)
热门文章
- Google最新论文:Youtube视频推荐如何做多目标排序
- 18段代码带你玩转18个机器学习必备交互工具
- 掌握哪些机器学习工具更受企业青睐?
- 快讯 | 老黄啊,特斯拉背着你找AMD了,咱可不能给他降价
- Docker + FastDFS + Spring Boot 一键式搭建分布式文件服务器
- 哈哈,咱们团队早就不用try-catch-finally关闭资源了!
- 技巧:MyBatis 中的trim标签,好用!
- Mybatis 使用的 9 种设计模式,真是太有用了
- 这样规范写代码,同事直呼“666”
- 学习用Pandas处理分类数据!