Intel汇编-NASM
文章平均质量分 78
Lirx_Tech
这个作者很懒,什么都没留下…
展开
-
[Intel汇编-NASM]主引导扇区程序介绍
1. 主引导扇区的作用以及开机之后的大致流程: 1) 为了学习实模式下的编程而不受操作系统的影响,因为在正常的开机后,经过主引导扇区的对操作系统的加载就会把计算机的控制权交给操作系统从而进入保护模式,因此就只有运行主引导扇区程序时系统处于实模式状态; 2) 内存逻辑地址空间: i. 实模式下CPU有20根地址线,能访问的地址空间有1MB,但是这1MB并不全部都原创 2015-01-03 15:15:20 · 3043 阅读 · 0 评论 -
[Intel汇编-NASM]任务控制以及特权级保护
1. 任务隔离以及LDT的概念: 1) 任务的概念:程序是记录在载体(也就是硬盘等外存)的指令和数据,而任务则是指其加载在内存中的副本,该副本不是等待执行就是正在执行,一个程序可以有多个任务副本; 2) 任务的隔离:把所有任务,不管是OS内核还是APP都放在GDT中管理显然是不合理的,容易造成APP对内核数据的破坏等问题,这就需要从两个层面上将它们隔离开来;原创 2015-02-09 14:57:34 · 1704 阅读 · 0 评论 -
[Intel汇编-NASM]软中断以及BIOS中断调用
1.原创 2015-01-17 13:08:17 · 1487 阅读 · 0 评论 -
[Intel汇编-NASM]基本指令
1. 过程调用: 1) 即call和ret指令的组合使用,这里我们先介绍call指令的使用方式; 2) 16位段内直接相对近调用: i. 格式:call near(可省) 标号/立即数; ii. near就表示近的意思,但是near可以省了,汇编器会默认为是16位段内直接相对近调用; iii. 直接是指:调用的过程的地址直接原创 2015-01-02 16:44:24 · 3522 阅读 · 0 评论 -
[Intel汇编-NASM]基本语法
1. NASM编译器介绍: 1) Netwide Assembler,是目前唯一开源且免费的汇编器; 2) 该汇编器只提供编译的功能,但不提供连接的功能,在Linux下编译器产生.o文件后还需要使用ld链接器和操作系统的库链接才能形成可执行文件,而在Windows下需要使用MASM的ml链接器连接形成.exe文件; 3) 这里我们先介绍实模式编程,由于Linux以及W原创 2015-01-02 12:40:19 · 23089 阅读 · 2 评论 -
[Intel汇编-NASM]程序的加载以及硬盘访问
1. 用户程序的结构: 1) 一般源程序都以段的形式进行组织,这样可以使逻辑更加清晰,在NASM中使用section关键字定义一个段,形式是:section 段名 2) 程序可以用段名来引用段,但是NASM编译器并不关心段的具体用途,或者说是根本不知道段的用途(代码段还是数据段等),同时NASM对段的数量也没有任何限制,如果代码中没有定一段则整个程序自成一段; 3)原创 2015-01-13 19:00:44 · 2885 阅读 · 0 评论 -
[Intel汇编-NASM]进入保护模式全过程
org 0x7C00 ; 该命令表示程序将被装在到偏移地址为0x7C00的地方 ; 该命令效果是全局的,但只能使用一次,之后不得再用 ; 从该位置开始到整个源代码结束之间的所有标号在被访问时都会隐式地自动加上0x7C00原创 2015-01-26 16:57:05 · 2685 阅读 · 2 评论 -
[Intel汇编-NASM]IA-32编程构架
1. 扩展寄存器: 1) IA-32即Intel Architecture, 32-bit,即Intel 32位处理器构架的简称; 2) 该构架下最明显的变化就是地址线采用32根,可访问4GB的线性主存空间; 3) 通用寄存器的扩展:16位构架下的8个通用寄存器ax, bx, cx, dx, si, di, bp, sp都扩展成32位的eax, ebx, ecx, e原创 2015-01-24 15:01:41 · 1485 阅读 · 1 评论 -
[Intel汇编-NASM]进入保护模式之前的准备
1. 保护模式下的描述符表的概念: 1) 保护模式相对于实模式最大的不同之处就是对软件的行为做出了很多约束,从而使系统的运行更加安全; 2) 在保护模式下段的使用非常严格,需要用各种信息维护段(比如段界限、可读写性、特权级、最下单位等),而这些信息就用一张描述符表来存放; 3) 描述表的概念: i. 表中的每一项都保存一个描述符(也称为段描述符),用原创 2015-01-23 11:23:46 · 1959 阅读 · 0 评论