㈠ 什么是基地址.段地址主要用处是什么
其实这个问题是从内存的寻址来说,
一般程序要找到内存所存储的数据或者下一个指令,都要通过段地址+偏移地址的形式来确定所需要的东西所在内存的位置,以便读取。
首先要说,这种模式工作在DOS 16位模式 也称为实模式,跟它相对应的是windows 32位的保护模式。。区别在于能寻找的空间大小不同。实模式只能寻找1M的空间,而保护模式能寻找4G。
再回来说,一个程序由数据段,代码段,堆栈段,附加段四个主要段组成。(即一个程序被运行后,所占据内存就是给这个四个段使用)
而你说的基地址其实就是每个段的起始地址,又称段地址,分别存储在四个寄存器里,,DS,CS,SS,ES,按顺序来的。
程序要查找内存中的某一个“格子”的内容,就会根据这个格子所在的段,来先取段地址,,然后根据程序所提供的偏移地址,两者相加,最终得到这个格子的物理地址。(至于怎么相加的我就先不说了)
㈡ 计算物理地址为什么要基地址*16
地址总线是20位,8086使用16位寄存器,直接使用的话只能寻址 2^16。*16相当于左移4位,16位左移4位就是20位,20位可以寻址2^20(1MB)空间
㈢ 数据结构以行序存储的二维数组问题,地址是什么
主要有以下两种方法:
1、不管按行还是按列,都是顺序存储。按行存储,每行10-5+1共6个元素。A[10, 9]距离A[10, 5]之间相差4个元素;A[18, 9]与A[10, 9]相差8行,共8×6=48个元素;所以A[18, 9]与A[10, 5]相差4+48=52个元素,共52×4=208个存储单元;A[18, 9]的地址应该是1208。
2、更一般的算法:基地址+(行标之差×每行元素个数+列标之差)×元素所占存储单元。
㈣ ios 基地址和偏移地址 相减怎么计算
8086/8088有20条地址线,它的直接寻址能力为1MB。也就是在一个系统中可以有多达1MB的存储器,地址从00000H—FFFFFH。给定任意一个20位物理地址,就可以从中取出需要的指令和操作数。但是8086/8088CPU只能进行16位运算。与地址有关的寄存器SP、IP、BP、SI、DI也都是16位的,所以对地址的运算也只能是16位的。对于8086/8088来说,无论采用哪种寻址方式,寻找操作数的范围最大是2^16,也就是64K。如何才能形成20位的物理地址呢。系统先将1MB存储器以64KB为范围分成若干段。在寻址一个具体物理地址时,由一个基本地址再加上由SP或IP等可由CPU处理的16位偏移量来形成20位物理地址。
当系统需要产生一个20位地址的时候,一个段寄存器会自动被选择。且自动左移4位再与一个16位地址偏移量相加产生所需的20位地址 。
例如:数据段DS寄存器的值=0088H
偏移地址=22H
那么生成的20位物理地址等于 00880H+22H=008A2H
㈤ 段基地址是什么
X86实模式下内存地址为20位二进制数(5位16进制数),一般表示成xxxx:yyyy(16进制)的形式,称为逻辑地址;对应的物理地址为xxxx0+yyyy。逻辑地址中的xxxx就称为段基址,yyyy称为偏移量。多个逻辑地址可能对应同一个物理地址。
因为物理地址的计算公式是xxxx0+yyyy,所以要先在段基地址xxxx的后面补4个0(2进制,在16进制下就是一个0),再加上偏移量。
㈥ stm32真实地址的算法是怎么的
PIOA举例,GPIOA的基地址是0x4001 0800,它的CTL偏移是0,它的CRH偏移是4
㈦ 基址里有进程名怎么算法
首先你要有地址
像 mov eax,[Torchlight.exe+9A1D2C] 这条指令,你先要从机器码反汇编的到类似 mov eax, [xxxx] 的形式,xxxx是一个地址。
有了地址以后要知道这是属于哪个模块,先枚举出所有模块及其基地址和长度,然后就是匹配。
如果有相应的pdb文件可以获取更多的信息。
其实这些功能(我指的是符号查找,不是反汇编)微软都有提供库,去msdn看接口就会用了。
p.s. 什么叫“请不要只告诉我答案”?除了答案还能告诉你什么,难道代码?自己写过一次才会真正学会。
㈧ 什么是偏移地址和基地址能举例说明吗
打个比方,你找一个403房间,你要先到4楼,然后找第三个房间,那就是403。在这里,4楼就是基地址,3就是偏移地址。在asm中也是一样的,实际的地址就是基地址+偏移地址
㈨ 汇编中段地址和基地址是什么意思
段地址其实就是一种基地址,但基地址并不等于就是段地址。
所谓基地址,顾名思义就可以理解为基本地址,他是相对偏移量的计算基准。
在实模式下,通常都是以段+偏移来定位地址,因此说,这时,段地址是基地址的一种。但是在堆栈上,常常不以ss寄存器来作为寻址基准,而是经常用bp寄存器来寻址,因此,此时堆栈段的段址就不能说是基地址
而保护模式下,不再有“段”的概念,这时的段寄存器里保存的是“段选择子”,根基地址根本就是两回事。
㈩ 什么是基地址,什么是偏移量,他们之间有什么联系
地址等于 基地址 +偏移地址 .
比如 地址 是 10003 可以看做他的地址是10000 , 偏移 是3