摘要: 修改段寄存器时的保护 GDT的基地址和界限,都在寄存器 GDTR 中。描述符在内存中的地址,是用索引号乘以 8,再和描述符表的线性基地址相加得到的,而这个地址必须在描述符表的地址范围内。换句话说,索引号乘以 8 得到的数值,必须位于描述符表的边界范围之内。换句话说,处理器从 GDT 中取某个描述符时 阅读全文
posted @ 2020-03-30 13:12 放飞梦想C 阅读(414) 评论(0) 推荐(0)
摘要: 全局描述符 和一个段有关的信息需要 8 个字节来描述,所以称为 段描述符(Segment Descriptor) ,每个段都需要一个描述符。为了存放这些描述符,需要在内存中开辟出一段空间。在这段空间里,所有的描述符都是挨在一起,集中存放的,这就构成一个 描述符表 ,最主要的描述符表是 全局描述符表( 阅读全文
posted @ 2020-03-26 13:32 放飞梦想C 阅读(412) 评论(0) 推荐(0)
摘要: 1. IA 32架构的基本执行环境 1.1 寄存器的扩展 为了在汇编语言程序中使用经过 扩展(Extend) 的寄存器: 在32位模式下,为了生成32位物理地址,处理器需要使用32位的指令指针寄存器。标志寄存器也扩展到32位,第16位和原先保持一致。 32位处理器依然需要以段位单位访问内存,即,只分 阅读全文
posted @ 2020-03-24 19:48 放飞梦想C 阅读(668) 评论(0) 推荐(0)
摘要: 中断 中断 就是打断处理器当前的执行流程,去执行另外一些和当前工作不相干的指令,执行完之后,还可以返回到原来的程序流程继续执行。 外部硬件中断 顾名思义,外部硬件中断,就是从处理器外面来的中断信号。当外部设备发生错误,或者有数据要传送(比如,从网络中接收到一个针对当前主机的数据包),或者处理器交给它 阅读全文
posted @ 2020-03-23 20:39 放飞梦想C 阅读(804) 评论(0) 推荐(0)
摘要: 用户程序的结构 NASM编译器使用汇编指令 SECTION 或者 SEGMENT 来定义段。它的一般格式是: NASM 对段的数量没有限制,不过 Intel 处理器要求段在内存中的其实物理地址起码是 16 字节对齐的。相应的在段定义使用: 为了方便取得该段的汇编地址, NASM 编译器提供了以下的表 阅读全文
posted @ 2020-03-23 17:10 放飞梦想C 阅读(772) 评论(0) 推荐(0)
摘要: Bochs Bochs就像一台真机一样,处理器在加电之后,要开始取指令并执行指令。 如图在左侧显示了该指令所在的物理内存地址 0x0000fffffff0 。 但为什么是 0x0000fffffff0 ?因为和8086不同,现代处理器在加电时,段寄存器CS的内容为,0xF000,指令指针寄存器IP的 阅读全文
posted @ 2020-03-21 17:27 放飞梦想C 阅读(2191) 评论(0) 推荐(0)
摘要: 主引导扇区 处理器加电或者复位之后,如果硬盘是首选的启动设备,那么,ROM BIOS将试图读取硬盘的0面0道1扇区。传统上,这就是 主引导扇区(Main Boot Sector,MBR) 。 读取主引导扇区数据有 512 字节, ROM BIOS 程序将它加载到逻辑地址 0x0000:0x7c00 阅读全文
posted @ 2020-03-21 13:16 放飞梦想C 阅读(893) 评论(0) 推荐(1)
摘要: 安装环境 以Ubuntu为例,先更新一下: sudo apt-get update sudo apt-get upgrade 然后安装Bochs环境: sudo apt-get install build-essential xorg-dev libgtk2.0-dev 安装NASM NASM官网下 阅读全文
posted @ 2020-03-19 20:05 放飞梦想C 阅读(4980) 评论(2) 推荐(2)
摘要: 计算机的加点和复位 在处理器众多的引脚中,有一个是 RESET ,用于接受复位信号。每当处理器加电,或者RESET 引脚的电平由低变高时①,处理器都会执行一个硬件初始化,以及一个可选的内部自测试(Build in Self Test,BIST),然后将内部所有寄存器的内容初始到一个预置的状态。 为了 阅读全文
posted @ 2020-03-17 19:02 放飞梦想C 阅读(468) 评论(0) 推荐(0)
摘要: 寄存器和算数逻辑部件 处理器的底部或者四周,有大量的引脚,可以接受从外面来的电信号,或者向外发出电信号。这些引脚有很多,其中一部分用来将参数与运算的数字送入处理器的内部。有些引脚是用来复用的,假如现在要进行加法运算,那么我们要重复使用这些引脚,来依次将被加数和加数送入。 一旦被加数通过引脚送入处理器 阅读全文
posted @ 2020-03-17 18:16 放飞梦想C 阅读(491) 评论(0) 推荐(0)