as86汇编语法
来源:互联网 发布:up to date数据库官网 编辑:程序博客网 时间:2024/06/15 16:29
as86汇编语言程序
.global begtext,begdata,begbss,endtext,enddata,endbss
是全局标识符,供ld86链接用的.text
是正文段.data
是数据段,.bss
是未初始化数据段entry start
告诉链接程序,程序是从start标号处开始执行jmpi go,BOOTSEG
段间跳转.org 510
表示以后语句从地址510开始存放- 在as86汇编程序中,凡是以感叹号!或分号;开始的语句其后面均为注释文字,
- 汇编指示符以一个字符
.
开始,并且不会在编译时产生任何代码,汇编指示符有一个伪操作码,后跟0或多个操作数组成, - 标号是后面带冒号的标识符
.global
伪操作符用于定义随后的标号标识符是外部的还是全局的,并且即使不使用也强制引入。.data
.text
.bss
分别对应汇编程序编译产生目标文件中的3个段,即正文段、数据段和未初始化段。.text
用于标识正文段的开始位置,并把当前切换到text段,.data
用于标识数据段的开始位置,并把当前段切换到data段,而`.bss’用于标识一个未初始化数据段的开始,并把当前段改成bss段,entry
是保留关键字,用于迫使链接器ld86在生成的可执行文件中包括其后指定的标号’start‘。- 在as86中,间接操作数需要使用
[]
方括号对。 - 定义字符串需要使用伪操作符
.ascii
,并且需要使用双引号盖住字符串 ,伪操作符.asciiz
还会自动在字符串后面添加一个NULL(0)字符。 - 定义字符需要使用伪操作符
.byte
,并且需要单引号把字符括住。 .org
定义了当前汇编的位置。- 伪操作符
.word
用于在当前位置定义一个双字节内存对象,其后可以是一个数或者表达式
as86汇编语言程序的编译和链接
as86 -0 -a -o boot.o boot.s
,ld86 -0 -s -o boot boot.o
其中-0
用于生成8086的16位目标程序,-a
用于指定生成与GNU as和ld部分兼容的代码,-s
选项用于告诉链接器要去除最后生成的可执行文件中的符号信息-o
指定生成的可执行文件名称。
as86和ld86使用方法和选项:
as的使用方法和选项:
as [-03agjuw] [-b[bin]] [-lm[list]] [-n name] [-o objfile] [-s sym] srcfile
默认设置:除了下列默认值,其他选项默认关闭或无
-3 使用80386的32位输出
list 在标准输出上显示
name 源文件的基本名词(即不包括.后的扩展名)
- b
ld连接器的使用语法和选项:
对于生成Minix a.out格式的版本 ld [-03Mims[-]] [-T textaddr] [-llib_extension] [-o outfile] infile...
对于生成GNU-Minix的a.out格式的版本: ld [-03Mimrs[-]] [-T textaddr] [-llib_extension] [-o outfile] infile...
默认设置:
-03 32位输出
outfile a.out格式输出
此文章内容是笔者看《linux内核源码剖析》上进行的摘录笔记
阅读全文
0 0
- as86汇编语法
- as86
- as86汇编示例——boot.s
- Ubuntu上安装as86汇编器
- Ubuntu安装汇编器as86和链接器ld86
- Ubuntu安装汇编器as86和链接器ld86
- 汇编语法
- 自己动手写操作系统之汇编基础——as86汇编和GNU as汇编简介与对比
- Linux中使用dd命令修改as86汇编编译链接后的程序
- as86汇编语言
- ubuntu as86
- 如何用TSS进行任务切换?我切换不成功:((内有汇编代码/as86)‹‹12
- 汇编语法格式
- Linux 汇编语法格式
- Linux汇编语法开发
- arm gnu 汇编语法
- arm gnu 汇编语法
- linux汇编语法
- C++编译OpenCV生成动态库问题解决
- 一句话概括下spring框架及spring cloud框架主要组件
- Excel常用快捷键大全
- Arraylist的用法
- spring的scope理解与自定义scope
- as86汇编语法
- 虚拟机安装centos 6.5 basicserver 配置联网
- codeforces 622E Ants in Leaves 数 贪心
- axure原型设计之播放控制条
- 作用域
- UVA 11134 Fabled Rook 枚举 multiset加速
- 关于海康威视网络摄像机二次开发问题
- 2-7 laravel中的Eloquent入门
- Trailing Zeroes (III) (数论(二分查找值,规律))