随笔分类 -  x86汇编

x86汇编学习总结
80386学习(五) 80386分页机制与虚拟内存
摘要:一. 页式内存管理介绍 80386能够将内存分为不同属性的段,并通过段描述符、段表以及段选择子等机制,通过段基址和段内偏移量计算出线性地址进行访问,这一内存管理方式被称为段式内存管理。 这里要介绍的是另一种内存管理的方式:80386在开启了分页机制后,便能够将物理内存划分为一个个大小相同且连续的物理 阅读全文
posted @ 2020-06-18 23:54 小熊餐馆 阅读(2645) 评论(0) 推荐(1) 编辑
80386学习(四) 80386中断
摘要:一.80386中断介绍 中断最早是为了协调并同步高速的CPU与相对低速的外部设备而提出的概念。所谓中断,是指当前程序/任务的执行过程中由于某种随时可能发生的外部请求,使得CPU中断正在执行的程序/任务,并跳转执行另一个例程(中断处理程序)或者中断服务任务中去(发生任务切换)。在服务处理完成后返回到之 阅读全文
posted @ 2020-06-08 00:10 小熊餐馆 阅读(1621) 评论(0) 推荐(0) 编辑
80386学习(三) 80386任务切换机制
摘要:一、80386任务切换介绍 前面提到过,80386是一款对多任务操作系统提供良好支持的CPU。多道程序功能使得在某一耗时任务执行时(例如大数据的I/O),允许其它短耗时任务并发的执行(例如接受输入的控制台命令) ,极大的提高了用户的体验。 80386作为早期的32位CPU,是单核处理器。因此8038 阅读全文
posted @ 2020-05-31 22:41 小熊餐馆 阅读(1020) 评论(0) 推荐(0) 编辑
80386学习(二) 80386特权级保护
摘要:一、80386特权级保护介绍 80386CPU为了给操作系统提供硬件级的可靠保护,提供了特权级保护功能。80386处于保护模式时,会改变CPU的行为方式,其中便包括开启特权级保护。实现良好的特权级保护是需要软硬件相协调的,CPU提供硬件机制的同时也需要与操作系统相配合,共同实现完善的特权级保护功能。 阅读全文
posted @ 2020-05-17 22:23 小熊餐馆 阅读(1546) 评论(1) 推荐(3) 编辑
80386学习(一) 80386CPU介绍
摘要:一.80386CPU介绍 Inter80386CPU是Inter公司于1985年推出的第一款32位80x86系列的微处理器。80386的数据总线是32位的,其地址总线也是32位,因而最大可寻址4GB的存储空间。 80386作为x86系列CPU的一员,保持着对更早生产的x86CPU的向前兼容。8038 阅读全文
posted @ 2020-05-11 00:12 小熊餐馆 阅读(2719) 评论(0) 推荐(0) 编辑
8086汇编语言学习(十) 8086中断
摘要:8086中断介绍 任何一种CPU,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到来自CPU内部或外部产生的特殊通知信息,并立即对所接收到的信息做出相应的处理。这类特殊的信息,被称作中断信息。 顾名思义,中断指的是CPU不去正常执行接下来的指令,而是被中断,转而处理中断信息。 中断信息的种 阅读全文
posted @ 2020-04-06 21:56 小熊餐馆 阅读(3982) 评论(4) 推荐(0) 编辑
8086汇编语言学习(九) 8086标志寄存器
摘要:8086标志寄存器介绍 前面已经介绍了8086大多数的寄存器,现在介绍一种8086内部一个特殊的寄存器,标志寄存器(flag register)。 8086标志寄存器大致有以下作用: 1.存储一些相关指令的执行结果 2.为CPU执行相关指令提供依据 3.控制CPU的部分工作方式 8086的寄存器是1 阅读全文
posted @ 2020-03-31 22:03 小熊餐馆 阅读(2770) 评论(1) 推荐(2) 编辑
8086汇编语言学习(八) 8086子程序
摘要:1.8086过程跳转指令 作为一门通用的编程语言,需要具有对代码逻辑进行抽象封装的能力。这一抽象元素,在有的语言中被称为函数、方法或者过程,而在8086汇编中被称为子程序。子程序和子程序组合能够构造出更复杂的子程序,如此往复以至无穷。子程序的存在,使得开发人员可以使用不同层次的抽象,构建出越来越复杂 阅读全文
posted @ 2020-03-23 19:24 小熊餐馆 阅读(2567) 评论(1) 推荐(0) 编辑
8086汇编语言学习(七) 8086跳转指令
摘要:8086跳转指令 目前为止,我们的程序的指令执行都是线性的,从上到下,由CPU自动的增加IP的值,顺序的执行指令。但对于复杂的需求,只有线性的指令执行方式是远远不够的。 对于高级语言,有着如if/else的逻辑跳转分支,如for/while的循环结构,还有函数子程序的调用与返回等等。正是有了这些能够 阅读全文
posted @ 2020-03-16 23:37 小熊餐馆 阅读(3082) 评论(0) 推荐(0) 编辑
8086汇编语言学习(六) 8086处理结构化数据(模拟高级语言结构体、数组)
摘要:一、8086汇编定义数据 要处理结构化数据,必须先定义数据。8086汇编作为一门编程语言,定义数据的方式比起复杂的高级语言要简单不少。 汇编语言贴近机器底层,所处理的数据逻辑上都可以视为二进制数据,按照对不同大小内存单元的处理,分为三种:db、dw、dd。 1.db db 即define byte, 阅读全文
posted @ 2020-03-09 18:52 小熊餐馆 阅读(1738) 评论(0) 推荐(2) 编辑
8086汇编语言学习(五) 8086寻址方式
摘要:8086汇编内存寻址方式 前面的博客都多少提到了8086汇编的内存寻址,例如mov ax [2345H]。而8086汇编还提供了更多、更灵活的寻址方式,以满足多种需求。 需要强调的是,无论何种寻址方式,内存寻址的地址总是由基础地址+偏移地址(段基址+偏移量)组合而成,不同之处在于基础地址与偏移地址应 阅读全文
posted @ 2020-03-02 21:56 小熊餐馆 阅读(1667) 评论(0) 推荐(0) 编辑
8086汇编语言学习(四) 8086汇编程序的编译与链接
摘要:1、8086汇编源程序从编写到执行的过程 前面介绍过通过debug模式来进行汇编程序的编写和调试。但是随着深入学习,所编写的汇编程序会越来越复杂,而通过debug的A命令去逐条编写汇编指令是非常低效的。 因此,这里将要介绍8086汇编源程序这一概念,使得我们可以通过文本的方式编写汇编程序,并通过一系 阅读全文
posted @ 2020-02-23 22:46 小熊餐馆 阅读(2038) 评论(0) 推荐(0) 编辑
8086汇编语言学习(三) 8086中的段和栈
摘要:1. 8086汇编中的段 段地址 8086对内存寻址的方式是通过段地址*16+偏移地址的方式实现的,而在16位的8086CPU下,段地址和偏移地址也都是16位的。这意味着,对于任意一个段,段的起始地址必定为16的倍数(段地址*16)。 对于同一个内存地址,存在多种不同的内存寻址方式: 例如:段地址1 阅读全文
posted @ 2020-02-17 20:02 小熊餐馆 阅读(2700) 评论(0) 推荐(0) 编辑
8086汇编语言学习(二) 8086汇编开发环境搭建和Debug模式介绍
摘要:1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言。工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境。 汇编语言设计之初是用于在没有操作系统的裸机上直接操作硬件的,但对于大部分人来说,在8086裸机上直接进行编程将会面临各种困 阅读全文
posted @ 2020-01-16 21:35 小熊餐馆 阅读(5558) 评论(2) 推荐(3) 编辑
8086汇编语言学习(一) 8086汇编介绍
摘要:1. 学习汇编的心路历程 进行8086汇编的介绍之前,想先分享一下我学习汇编的心路历程 。 rocketmq的学习 其实我并没有想到这么快的就需要进一步学习汇编语言,因为汇编对于我的当前的工作内容来说太过底层。 但在几个月前,当时我正尝试着阅读rocketmq的源码。和许多流行的java中间件、框架 阅读全文
posted @ 2020-01-09 22:28 小熊餐馆 阅读(4193) 评论(4) 推荐(1) 编辑