电路的状态,可以用二进制数来直观地描述,而一个二进制数,也容易使我们仿佛观察到了每根电线上的电平变化。所以,我们才形象地说,二进制是计算机的官方语言。但是,二进制也有他的缺点,主要的缺点就是写起来太长...
程序的加载和执行(一)本文及之后的几篇博文是原书第13章的学习笔记。 本章主要是学习一个例子,对应的代码分为3个文件: ;代码清单13-1 ;文件名:c13_mbr.asm ;文件说明:硬盘主引导扇区代码 ;代码清单13-2 ;...
(十)保护模式下的栈 76 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77 mov cx,00000000000_11_000B ;加载堆栈段选择子 78 mov ss,cx 79 mov esp,0x7c00 第77~79行用来初始保护模式下的栈。栈段描述...
本文是原书第12章的学习笔记。 说句题外话,这篇博文是补写的,因为让我误删了,可恶的是CSDN的回收站里找不到! 好吧,那就再写一遍,我有坚强的意志。司马迁曰:“文王拘而演《周易》;仲尼厄而作《春秋》;屈原...
第15章代码讲解。
你有没有想过这样一个问题——计算机是怎么开始执行我们写的指令的?
1. 为什么会有分页机制? 2.从虚拟地址到物理地址 3.简单的分页模型 4.页表和页目录 5.地址变换的具体过程
任务和特权级保护(五)——《x86汇编语言:从实模式到保护模式》读书笔记36 修改后的代码,有需要的朋友可以去下载(c14_new文件夹)。下载地址是: GitHub: ...
TSS(Task State Segment,任务状态段)详解
程序的加载和执行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25 内容提要: 1. 为13章的配书源码写Makefile 2. 在源码的基础上修修补补 2.1 让字符带有颜色 2.2 对过程put_hex_dword的修改 2.3 修复...
【通过本文能学到什么?】 1.NASM的条件汇编 2.用NASM编译的时候,通过命令行选项定义宏 3.Makefile的条件语句 4.在make命令行中覆盖Makefile中的变量值 5.第13章习题解答 6.复习如何构造栈段描述符
所以从现在起,我要给代码加上行号。我写博客用的这个插入代码的插件,确实不支持自动插入行号。我真的没有找到什么好方法,无奈之下,只能按照网友的说法,在VIM中给每行代码加上行号,然后再贴出来。 在VIM中每一...
程序的加载和执行(三)——读书笔记23 接着上次的内容说,关于过程load_relocate_program的讲解还没有完,还差创建栈段描述符和重定位符号表。 内容提要: 1. 创建用户栈段描述符 2. 符号表的重定位
在进入保护模式之前,我们先要学习一些基础知识。今天我们看一下全局描述符表(Global Descriptor Table, 简称GDT)。 同实模式一样,在保护模式下,对内存的访问仍然使用段地址加偏移地址。但是,在保护模式下,在...
本文及后面的几篇文章是原书第14章的读书笔记。 1. LDT 2. TSS 3. DPL 4. CPL 5. RPL 6. I/O特权级
本文是将个人的关于《X86汇编语言-从实模式到保护模式》读书笔记做一个整体的目录,方便自己复习查阅。 一共40篇博文,最初是想自己记录笔记,为了不会丢失所以选择了写成博客。 本博文并没有非常细致的去详细...
一、段描述符的分类 在上一篇博文中已经说过,为了使用段,我们必须要创建段描述...我们的学习是循序渐进的,所以不要求一下子掌握所有东西。我们的原则是:用到什么学什么。我们今天的重点是“存储段描述符”。 二、段
程序的载入和运行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25 前面几篇博文最终把代码分析完了。这篇就来说说代码的编译、运行和调试。 1.代码的编译及写入镜像文件 之前我们都是在命令行输入...
同时,在这个过程中学习汇编语言实现冒泡排序算法,以及一条新的x86指令xchg。 本章的内容就是说明,保护模式如何保护数据的,数据读取、代码执行时是否超出了界限(代码段的保护,栈段的保护,数据段的保护)。 .....
1、汇编语言源文件:first.asm mov ax,0x3f add bx,ax add cx,ax 2、用nasm编译成二进制文件:first.bin nasm -f bin first.asm -o first.bin 3、使用hexview查看编译好的二进制文件的内容: 也...