自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

车子(chezi)

熟能生巧,功不唐捐

  • 博客(17)
  • 资源 (8)
  • 收藏
  • 关注

原创 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17

(十)保护模式下的栈 76 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77 mov cx,00000000000_11_000B ;加载堆栈段选择子78 mov ss,cx79 mov esp,0x7c00第77~79行用来初始保护模式下的栈。栈段描述符是GDT中第3个(从

2016-01-28 20:52:50 1667

原创 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

一、Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式。 (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 (3)虚拟8086模式:这种方式可以使用户在保护模式下运行8086程序(比如cmd打开的console窗口,就是工作在虚拟8086模式) 有几点需要特别说明: (1)保护模式可分为16

2016-01-28 19:44:19 7468 4

原创 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15

一、80286的工作模式 80286首次提出了实模式和保护模式的概念。 实模式:和8086的工作方式相同; 保护模式:提供了存储器管理机制和保护机制,支持多任务。 二、80286的寄存器 (一)通用寄存器 80286的通用寄存器和8086一样,有AX,BX,CX,DX,BP,SP,SI,DI; (二)IP 80286的指令指针寄存器也和8086一样,没有什么特别的。 (三)

2016-01-24 20:57:45 2369

原创 利用VIM为源码添加行号

VIM编辑器是可以显示行号的。但是,有时候我们需要在整个代码的行首添加行号,怎么实现呢?实现的方法有很多,这里就介绍我知道的一种吧。在每行行首添加某个字符串:%s/^/your_string/在每行行尾添加某个字符串 :%s/$/your_string/解释:% 表示针对文件的每一行进行操作 $ 代表一行的结尾处 ^ 代表一行的开头处s表示替换如果想在每行行

2016-01-23 15:08:44 3925

原创 ubuntu 64上的GCC如何编译32位程序

运行命令gcc -v显示:Target: x86_64-linux-gnu所以,我这里的gcc默认生成64位的程序。如果想编出32位的程序,就要加 -m32选项。可以我尝试了,还是不行。原来,需要安装东西。$ sudo apt-get install build-essential module-assistant  $ sudo apt-g

2016-01-21 21:51:17 30962 2

原创 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14

首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便。所以从现在起,我要给代码加上行号。我写博客用的这个插入代码的插件,确实不支持自动插入行号。我真的没有找到什么好方法,无奈之下,只能按照网友的说法,在VIM中给每行代码加上行号,然后再贴出来。 在VIM中每一行都添加上行号的方法是: :%s/^/\=line(".")/ 对,只要执行这个命令就可以了。   我们接着上篇博文

2016-01-16 20:45:01 2469

原创 8086处理器的无条件转移指令——《x86汇编语言:从实模式到保护模式》读书笔记13

本博文是对原书8.3.10的内容的总结。 一、相对短转移 指令格式是: jmp short 标号标号也可以替换成具体的数值(标号和数值是等价的),例如 jmp short 0x2000说明:(1)该指令属于段内转移指令,而且只允许转移到距离当前指令-128~127字节的地方。(2)指令的功能是:(IP) = (IP)+8位位

2016-01-16 18:36:56 2402

原创 进入保护模式(一)——《x86汇编语言:从实模式到保护模式》读书笔记12

之前已经做了一些理论上的铺垫,这次我们就可以看代码了。 一、代码清单 ;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-16 19:54 ;设置堆栈段和栈指针 mov ax,cs mov

2016-01-13 22:39:55 5406 5

原创 数据段描述符和代码段描述符(二)——《x86汇编语言:从实模式到保护模式》读书笔记11

这篇博文,我们编写一个C语言的小程序,来解析数据段或者代码段描述符的各个字段。这样我们阅读原书的代码就会方便一点,只要运行这个小程序,就可以明白程序中定义的数据段或者代码段的描述符了。 这段代码,我用了“位字段”的知识,这还是第一次使用C语言的这个特性呢,如果有不对的地方,欢迎博友斧正。   #include //定义描述符中的低32位struct seg_des_low_

2016-01-12 22:23:17 2611

原创 数据段描述符和代码段描述符(一)——《x86汇编语言:从实模式到保护模式》读书笔记10

一、段描述符的分类 在上一篇博文中已经说过,为了使用段,我们必须要创建段描述符。80X86中有各种各样的段描述符,下图展示了它们的分类。 看了上图,你也许会说:天啊,怎么这么多段描述符啊!我可怎么记住呢? 别担心,我会在以后的博文中,跟随原书的作者,为您逐步介绍。我们的学习是循序渐进的,所以不要求一下子掌握所有东西。我们的原则是:用到什么学什么。我们今天的重点是“存储段描述符”。 二、段

2016-01-09 22:01:28 5118 3

原创 全局描述符表(GDT)——《x86汇编语言:从实模式到保护模式》读书笔记09

在进入保护模式之前,我们先要学习一些基础知识。今天我们看一下全局描述符表(Global Descriptor Table, 简称GDT)。 同实模式一样,在保护模式下,对内存的访问仍然使用段地址加偏移地址。但是,在保护模式下,在每个段能够访问之前,必须先登记。这就好比像C语言中,“对变量的使用必须先定义”一样。 每个段在能够使用之前,都要为这个段建立一个描述符。每个描述符占8个字节,这些描述符

2016-01-09 12:11:12 5249 1

原创 32位x86处理器编程导入——《x86汇编语言:从实模式到保护模式》读书笔记08

在说正题之前,我们先看2个概念。 1.指令集架构(ISA) ISA 的全称是 instruction set architecture,中文就是指令集架构,是指对程序员实际“可见”的指令集,包含了程序员编写一个能正确运行的二进制机器语言程序的所有信息,涉及到指令、 I/O 设备等。例如 Intel 的 IA-32、Intel 64、ARM 的 ARMv7、ARMv8 等等。 2.微架构 微

2016-01-09 00:35:36 2571

原创 8086键盘输入实验——《x86汇编语言:从实模式到保护模式》读书笔记07

1.BIOS中断 我们可以为所有中断类型自定义中断处理过程,包括内部中断、硬件中断和软中断。 BIOS中断,又称BIOS功能调用,主要是为了方便地使用最基本的硬件访问功能。通常,为了区分针对同一硬件的不同功能,使用寄存器AH来指定具体的功能编号。 比如说,以下的指令用于从键盘读取一个按键: mov ah,0x00 ;0功能号对应从键盘读字符 int 0x16

2016-01-03 23:32:05 3057

原创 《X86汇编语言:从实模式到保护模式》读书笔记之引言

有幸结识了《X86汇编语言:从实模式到保护模式》一书。我觉得这本书非常好,语言活泼,通俗易懂,源码丰富,受益匪浅。读罢一遍,意犹未尽。于是打算再读一遍,并把自己的读书所学总结成笔记,一来给自己留个纪念,二来供各位访客参考。初出茅庐,牛刀小试,如有错误,实属必然。还请广大博友批评指正,不吝赐教。   在此也向本书的作者——李忠、王晓波(我联想到了作家王小波,其实他曾经也是程序员)、余洁表示敬意。

2016-01-03 22:13:01 2681 4

原创 8086实时时钟实验(二)——《x86汇编语言:从实模式到保护模式》读书笔记06

上次我们说了代码,这次我们说说怎样看到实验结果。 首先编译源文件(我的源文件就在当前路径下,a盘和c盘在上一级目录下): nasm -f bin c08_mbr.asm -o c08_mbr.bin nasm -f bin c09_1.asm -o c0901.bin 然后将bin文件写入a盘和c盘 dd if=c08_mbr.bin of=../a.img dd if=c0901

2016-01-03 19:49:42 2024 5

原创 8086实时时钟实验(一)——《x86汇编语言:从实模式到保护模式》05

1.代码清单 ;代码清单9-1 ;文件名:c09_1.asm ;文件说明:用户程序 ;创建日期:2011-4-16 22:03 ;==============================================================================

2016-01-01 23:21:32 4261 3

原创 8086中断系统——《x86汇编语言:从实模式到保护模式》读书笔记04

80X86中断系统 能够处理256个中断 用中断向量号0~255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1、中断的分类 中断可以分为内部中断和外部中断。 (1)内部中断 除法错中断 指令中断 溢出中断 单步中断 断点中断 (2)外部中断 非屏蔽中断 可屏蔽中断

2016-01-01 22:45:04 3706

themes.zip

typora主题包,解压后覆盖目标文件夹即可。 # How to install a theme Download theme from this website or other place. Open typora. Click "Open Theme Folder" button from `Preference Panel` → `Appearance` section. Put downloaded content into the opened folder, make sure your css files are directly under that directory.

2020-04-12

《从实模式到保护模式》第15章习题二的答案

《从实模式到保护模式》第15章习题二的答案,经测试,符合题目要求。

2016-07-17

《从实模式到保护模式》第15章习题一的答案

《从实模式到保护模式》第15章习题一的答案,经测试,符合题目要求。

2016-07-17

《从实模式到保护模式》第15章代码修改

《从实模式到保护模式》第15章代码修改

2016-07-11

《从实模式到保护模式》第14章的代码(修改版)

《x86汇编语言:从实模式到保护模式》第14章的代码(修改版),内容包括: 课后习题1和2; 修复了一些BUG; 增加颜色支持; 用栈传递参数;

2016-06-04

《x86汇编语言:从实模式到保护模式》第13章代码补丁

我发现配书代码中有一个小小的BUG,制作了自己的补丁包,另外还添加了其他功能。比如字符串输出支持不同的颜色等。

2016-04-10

《从实模式到保护模式》配书源码和工具

《x86汇编语言:从实模式到保护模式》主要讲述INTEL x86处理器的16位实模式、32位保护模式,至于虚拟8086模式,则是为了兼容传统的8086程序,现在看来已经完全过时,不再进行讲述。《x86汇编语言:从实模式到保护模式》的特色之一是提供了大量典型的源代码。 本资源就是配书工具和源代码

2016-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除