CSDN论坛 > 其他开发语言 > 汇编语言

初学汇编,嘿嘿~有关实模式寻址的弱智问题 [问题点数:20分,结帖人hkmj]

Bbs1
本版专家分:3
结帖率 100%
CSDN今日推荐
Bbs1
本版专家分:10
Bbs4
本版专家分:1246
Blank
蓝花 2003年8月 其他开发语言大版内专家分月排行榜第三
Bbs5
本版专家分:2525
Bbs5
本版专家分:2525
Bbs1
本版专家分:3
Bbs1
本版专家分:3
Bbs1
本版专家分:3
Bbs4
本版专家分:1246
Blank
蓝花 2003年8月 其他开发语言大版内专家分月排行榜第三
Bbs1
本版专家分:0
匿名用户不能发表回复!
其他相关推荐
关于“实模式下能否访问1M以上内存”
<br />(2009-07-29 17:43 )<br />CPU上电后,从ROM中的BIOS开始运行,而Intel文档却说80x86 CPU上电后总是从最高内存下16字节开始执行。实际上,BIOS在内存的最顶端64K(FFFF0000H)和1MB之下的64KB(F0000H)处都出现。<br />在实模式下,CPU用段寄存器左移4位与偏移量相加,形成物理地址;在保护模式下,则是用段描述符中的基地址加上偏移量,形成物理地址。这两者其实是一样的,当80286推出时,其地址空间从8086的20位变成了24位,
Linux实模式和保护模式
段寄存器在实模式下和保护模式下的作用rn rn先说点相关的:80x86中除8086/8088只能在实模式下工作之外,其他微处理器均可在实模式和保护模式下工作。rn好了,从定义和区别开始吧。rn先从实模式下入手:存储器地址的分段,实模式下允许的最大寻址空间为1MB(因为8086/8088地址总线宽度是20为 2^20=1048576=1024k=1M)其他的微处理器也为1M 实际上实模式就是为808
实模式下,cpu真的只能寻址1M的地址空间吗?
<br /> <br /> <br />问题:对于X86:实模式下,打开A20地址线,难道也不能寻址4G的地址空间吗?是不是只有进入保护模式,打开A20地址线才能寻址4G的地址空间呢? <br /><br />对于其他CPU:对于目前其他类型的CPU,比如POWER   PC,ARM这些CPU可能已经没有A20地址线问题了,当他们在实模式下,可以摆脱1M地址空间的限制吗?<br /> <br />回答:<br /> 实模式下也是可以访问1M以上的内存空间的。在CPU内部有个段描述符高速缓寄存器,寄存器内容分
x86 实模式与保护模式
0386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为
Linux汇编----变址寻址与间接寻址
经常会把AT&T汇编语法中的变址寻址与寄存器间接寻址搞混。 变址寻址特别适合于访问内存中的一系列连续数据,即数组。表达式格式为 base_address(offset_address,index,size)
全面剖析《自己动手写操作系统》的pmtest1.asm
段机制轻松体验 内存寻址: 实模式下的内存寻址: 让我们首先来回顾实模式下的寻址方式 段首地址×16+偏移量 = 物理地址 为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位放入到段寄存器,用到时候,再将其扩大到20位,这也造成了段的首地址必须是16的倍数的限制。 公式:xxxx
x86汇编寻址理解
在cpu地址编码中,我以前接触过arm,avr的寻址方式,一般都是直接编码,地址映射就是地址总线的物理地址编码。而最近接触到IA32的汇编语言,感觉比arm复杂得多。所以做个学习笔记标记。        在arm中,一般寻址都是在总线编码范围内寻址。而在x86中,分为实模式和保护模式,实模式是指在16为段地址编码下的寻址模式。因为intel cpu在最初的时候使用20位的地址总线,而寄存器只有1
汇编语言的寻址方式与C语言中的指针是一个东西。
慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 汇编语言的寻址方式与C语言中的指针是类似的! 汇编语言的寻址方式与C语言中的指针:寻找数据的方法。 指针就是存了 变量的地址,寻址方式就是得到保存变量的地址。 当你学了汇编语言,你就知道为什么C语言有函数指针,为什么函数要以return 结尾。为什么main()函数为程
保护模式下如何寻址
此时,段寄存器显然无法直接提供地址,但是它还是很有用的。实模式下:段值是地址的一部分,如段值XXXXh标示xxxx0h开始的一段内存。保护模式:段值仅是一个索引,用来指向一个数据结构(其实就是GDT)中的一个表项,此表项中详细定义了段的起始地址、界限、属性。举例子:
Linux江湖08:使用GCC和GNU Binutils编写能在x86实模式运行的16位代码
Linux江湖08:使用GCC和GNU Binutils编写能在x86实模式运行的16位代码 http://www.cnblogs.com/youxia/p/linux008.html 不可否认,这次的标题有点长。之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解GCC生成16位实模式代码方法的朋友带到我的博客。先说一下背景,编写能在x86实模式下运行的1
关闭
关闭