Alone Cáfe
There is no limit to learning.
阿龙咖啡

汇编语言
文章归档

AT&T 汇编语言 (三) : 数据传送

数据定义 带有初值的区段 程序中 data 段和 rodata 段都是带有初始值(initialized)的区段,这些区段一般被直接汇编进目标文件中,写死在程序可执行文件内部。但是,在运行时刻它的副本会被拷贝到内存中,程序能够通过指令读写(rodata 段不可写)其中的数据元…

   2020-03-23   234   0 查看全文

AT&T 汇编语言 (二) : 程序组成

程序的组成 汇编语言程序由定义好的段构成,每个段都有不同的目的,三个最常用的段是 data 段(.data):声明带有初始值的数据元素,一般作为汇编语言的变量bss 段(.bss):声明使用 0 值初始化的数据元素,一般用于汇编语言程序的缓冲区text 段(.text):声明…

   2020-03-22   438   0 查看全文

AT&T 汇编语言 (一) : 软件包概述

GNU Binutils 软件包 GNU Binutils 软件包包含以下程序(软件包版本为 2.15) addr2line把地址转换为文件名和行号ar创建、修改和展开文件存档as把汇编语言代码汇编为目标代码c++filt还原 C++ 符号的过滤器gprof显示程序简档信息的程序ld把目标代码文件转换为可执…

   2020-03-22   174   0 查看全文

x86 保护模式浅析(三)

工具准备 NASM 汇编器,以及一个文本编辑器VirtualBox 虚拟机(或者 Bochs 也可以) 开始实战 进入保护模式的汇编代码 gdt_base equ 7e00h ; gdt_base 表示 GDT 头部的地址 ; 这一段代码主要是将 GDT 的头部地址,转换为 “段:偏移” 的形式,在实模式下的…

   2019-05-28   229   0 查看全文

x86 保护模式浅析(二)

走进保护模式 A20 地址线 在本文中,要完全解释 A20 地址线的作用以及原理是不太现实的。对于我们程序员而言,我们只需要了解一些大致的概念。简单来说,因为考虑到向下兼容性,A20 地址线在默认情况下是禁用的。于是,我们得启用它,这样我们就可以访问全部内存…

   2019-05-28   150   0 查看全文

x86 保护模式浅析(一)

实模式下的内存访问 实模式下,CPU通过段寄存器(16位)和偏移地址(16位)来访问物理地址,这个过程可以抽象地简述成以下步骤:1、将段寄存器中存放的地址,左移4位(乘以2的4次方,即乘以16)得到基址(为了方便理解暂且这么叫吧)2、将上一步得到的基址加上偏移…

   2019-05-28   187   0 查看全文