这一节,我们主要来讨论寻址方式,这一点十分重要。 我们上一节有稍微提了一下,内存地址引用的通用格式: 地址或偏移(%基址寄存器, %索引寄存器, 比例因子 ) 结果地址 = 地址或偏移 + %基址寄存器 + 比例因子 + %索引寄存器 地址或偏移和比例因子必须是常数,剩下的那两个必须是寄存器,在缺省 ...
分类:
系统相关 时间:
2019-03-04 10:04:08
阅读次数:
217
0xC0300000就是页目录的基址。 随便找一个软件测试下 通过0xC0300000找到的物理页就是页目录表这个物理页即是页目录表本身也是页表页目录表是一张特殊的页表,每一项PTE指向的不是普通的物理页,而是指向其他的页表.如果我们要访问第N个PDE, 那么有如下公式:0xc0300000+N*4 ...
分类:
其他好文 时间:
2019-02-26 15:07:33
阅读次数:
168
读了《程序是怎样跑起来的》这本书的第一章之后,让我对CPU的理解更加深入。刚开始我只认为它是相当于计算机的大脑,原来它对于程序员来说不止如此,它还是CPU,寄存器,内存,内存地址,程序计数器,累计寄存器,标志寄存器和基址寄存器。它的内部是由寄存器,控制器,运算器和时钟四部分构成。 平常上课的时候我只 ...
分类:
其他好文 时间:
2019-01-20 18:57:21
阅读次数:
149
Windows vista开始有动态基地址的功能,只要pe头Dll Characteristics有0x40每次加载时基地址都不一样。 相应的IDE,比如VS,也支持动态基址的功能。 1 在VS自己编写的程序中关闭基址改变属性: ①vs中右键项目 -> 属性 -> 链接器 -> 命令行:去掉/DYN ...
分类:
其他好文 时间:
2019-01-02 19:31:48
阅读次数:
195
设置程序基址固定:关闭程序基地址改变。 在vs中编写代码如下: #include <stdio.h> int main(){ int a = 5; printf("a的内存地址是 %d", &a); system("pause"); return 0;} 编译生成程序,找到vs生成的Test.exe ...
分类:
编程语言 时间:
2019-01-02 19:10:17
阅读次数:
949
声明 基于8086的寄存器共14个16位的,分别是 ax bx cx dx (通用寄存器) si di bp sp (基址与变址寄存器) cs ss ds es (段寄存器) ip flags (指令指针和标志寄存器) 常用的是第一排、第三排 附: AX Accumulator RegisterBX ...
分类:
其他好文 时间:
2018-12-23 11:18:49
阅读次数:
122
汇编语言程序设计 第2章概念梳理 8086 14个寄存器: AX,BX,CX,DX (通用寄存器) SI,DI,BP,SP (基址和变址寄存器) CS,SS,DS,ES (段寄存器) IP,FLAGS (指令指针和标志寄存器) 通用寄存器: { AX分为AH和AL BX分为BH和BL CX分为CH和 ...
分类:
编程语言 时间:
2018-12-22 12:38:41
阅读次数:
192
系统服务描述表基址和函数指针查找 1.反汇编KiSystemCall64 kd uf KiSystemCall64 Flow analysis was incomplete, some code may be missing nt!KiSystemCall64: fffff800`040e1640 ...
分类:
其他好文 时间:
2018-11-17 19:12:57
阅读次数:
166
ch08 异常控制流 目录 "教材内容" "课下测试总结" "参考资料" 教材内容 一、异常 控制流中的突变,用来响应处理器状态中的某些变化 是异常控制流的一种形式,一部分由硬件实现,一部分由操作系统实现 1. 异常处理 异常号 :系统中可能的每种类型的异常都有,唯一的,非负整数 异常表基址寄存器 ...
分类:
其他好文 时间:
2018-11-10 18:05:04
阅读次数:
179
汇编指令 CLI 全称 Clear Interupt STI 全称 Set Interupt CLD 全称 Clear Director STD 全称 Set Director CLI和STI是用来屏蔽中断和恢复中断用的,如 设置栈基址SS和偏移地址SP时,需要CLI,因为如果这两条指令被分开了,那... ...
分类:
其他好文 时间:
2018-11-10 15:14:01
阅读次数:
243