鱼C论坛

 找回密码
 立即注册
查看: 2360|回复: 1

[汇编作业] 关于物理地址怎么理解?

[复制链接]
发表于 2018-6-20 12:19:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用debug查看,段地址*16+偏移地址=物理地址;

可是怎么cs*16+ip 都得不到当前物理地址;

难道debug执行处的地址仅仅是ip+字长度而已吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-20 18:25:20 | 显示全部楼层
本帖最后由 xypmyp 于 2018-6-20 18:37 编辑

我都是剛剛開始學習assembly language, 你這樣一問我就做了實驗, 發現 debug.exe 應該是沒有直接查出物理地址的功能(不確定). 因為用-d, 輸出一定有偏移地址, 而且我想物理地址應該不會只有16^5 = 1048576 個空間這樣細, 所以我用cheat engine 查一查, 發現本身的 virtual address "073f:0000" 的數據在 physical address "07a67411" 這個應該不只用加減法可以得到的(應該是某某算法), 所以我去了 google 一下, 發現這個是 内存管理的部分, 跟系統有很大的關係.

分页内存管理方案 應該是影響 physical address 的因素

引用 "Felix 的博客 算法与.NET之路"
(分页的最大作用就在于:使得进程的物理地址空间可以是非连续的。
物理内存被划分为一小块一小块,每块被称为帧(Frame)。分配内存时,帧是分配时的最小单位,最少也要给一帧。在逻辑内存中,与帧对应的概念就是页(Page)。
逻辑地址的表示方式是:前部分是页码后部分是页偏移 ) [段地址*16+偏移地址 的表示方式? (不確定)]

*https://www.cnblogs.com/felixfang/p/3420462.html <- 内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)


結論:
這個很肯定内存管理有關.由於剛開始學習, 所以其實不太了解而且可能有很多不正確的地方, 但希望可以提供一下思路.
*先bookmark, 未來有能力的時候再解答

問:
段地址*16+偏移地址 只用在沒有内存管理的系統?
那段地址*16+偏移地址 是什麼?
如何找出分页内存表?
cheat engine 的address 只有 16^8 = 4gb 的空間, 但我有16gb 的内存, 那其他的 12gb 哪去呢?
testWithCheatEngine.png
Translation look-aside buffer.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 19:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表