1.寄存器: CS:EIP寄存器 指令指针寄存器 ip(16位)或eip(32位)专门用来存放下一条即将执行的机器指令的偏移地址 ip的值在执行完一条指令后自动递增,指令的大小不同,其大小是1~6字节。 cs和ip或cs和eip一起构成了下一条即将执行的指令的完整地址。 ip和eip寄存器是唯一即不 ...
分类:
其他好文 时间:
2017-08-24 14:59:06
阅读次数:
171
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀。 1、[BX]的概念 [BX]和[0]类似,[0]表示内存单元的偏移地址是0。要完整描述一个内存单元,需要两种信息:内存单元的地址,内存单元的长度(类型)。[BX]同 ...
分类:
编程语言 时间:
2017-08-01 22:59:55
阅读次数:
151
微机手册834考研常见知识点第1章 绪论第2章 8086 系统结构2.0 介绍2.1 8086 CPU 结构2.1.1 8086CPU的内部结构2.1.2 寄存器结构 第1章 绪论在计算机中引入补码主要鉴于下列两个原因(1)使符号位能够和有效数值部分一起参加数值运算,从而简化运算规则,节省运算时间。... ...
分类:
其他好文 时间:
2017-07-21 20:45:46
阅读次数:
149
C 语言中同意将值为 0 的变量强制转换成任一类型的指针,转换结果是一个NULL指针。 (type*)0 // 一个 type 类型的NULL指针 用这个指针訪问结构体内的成员是非法的,可是 &(((type*)0)->field) 是为了计算 field 的地址 ,编译器不会产生訪问 field ...
分类:
其他好文 时间:
2017-07-19 14:22:37
阅读次数:
190
mmu(内存管理单元),是arm区别于单片机的标志之一,虚拟地址转化分为3种,常见的如下2种。 段式转化如下,由表像中的基地址加偏移地址,(细页转化跟段式转化类似,多了一个2级页表,把虚拟地址0-20中间又分割了下,作为2级页表) ...
分类:
其他好文 时间:
2017-07-09 12:22:06
阅读次数:
135
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分 ...
分类:
其他好文 时间:
2017-07-05 18:01:42
阅读次数:
214
一、Linux上地址映射: 1、逻辑地址:由程序产生的和段相关的偏移地址部分 线性地址:是逻辑地址到物理地址变换的中间层,程序代码会产生逻辑地址,段中的偏移地址加上相应段的基地址就生成了一个线性地址。在Intel 80836的线性地址空间从0x00 00 00 00 0xff ff ff ff,为2 ...
分类:
其他好文 时间:
2017-07-05 00:23:08
阅读次数:
237
实模式下,寄存器为16位,为了能够访问1MB的内存空间,一般使用两个16位寄存器进行地址生成,一个寄存器内装入段地址(该寄存器叫做段寄存器),一个装入偏移地址。其真实物理地址的计算公式为: 物理地址=段地址*16+偏移地址 即将段地址左移4位,然后和偏移地址相加,即得到真实物理地址。 然而,当我们得 ...
分类:
其他好文 时间:
2017-06-03 17:20:49
阅读次数:
151
文件偏移地址 = 虚拟内存地址(VA) - 装载地址(ImageBase) - 节偏移(RVA-节偏移) 查找内存中0x404141 处的指令 ImageBase=0x400000 , 在文件中的偏移量: 文件偏移量 = 0x404141 - 0x400000 - (0x1000 - 0x400) ...
分类:
其他好文 时间:
2017-06-03 09:57:52
阅读次数:
165
引导扇区的信息例如以下: 1. 偏移地址00H,长度3,内容:EB 3C 90 跳转指令。2. 偏移地址03H,长度8。内容:4D 53 44 4F 53 35 2E 30 为厂商标志和os 版本号号,这里是MSDOS5.0。3. 偏移地址0BH,长度2,内容:00 02。注意这里数据的布局,高地址 ...
分类:
其他好文 时间:
2017-06-02 13:33:51
阅读次数:
387