博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
小宝--读书笔记
精修内功!
zieckey.cublog.cn
管理博客
发表文章
留言
收藏夹
· 相关BLOG
· 好友BLOG
· 常去的地方
博客圈
音乐
相册
· 同学相片
· 西藏之行
· 我的大学
文章
· OS Linux
}
· Command
· Install && Usage
· Soft Install && Usage
· Kernel
· Solaris
· Other
· C/C++
}
· Linux C/C++
· QT Embedded
· Standard C/C++
· Win32 C/C++
· E680
· Java
}
· J2ME
· J2SE
· J2EE
· Software Engineering
}
· Class Design Principle
· Arithmetic Data Structure
· Design Patterns
· Database
· Other
}
· Python
· Windows
· Networks
· Assemble
· Video && Image
· Hardware Design
· Other
· 人生如梦
}
· 修身养性
· 生活
· 音乐电影
· 职业生涯
· 搞笑
· 其它
首页
关于作者
思路决定出路,态度决定高度!
||
<<
>>
||
我的分类
文章列表 - Assemble
NASM-h汇编程序的基本框架
<DIV> </DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#999999 cellSpacing=0 cellPadding=0 width="95%" bgColor=#f1f1f1 border=1> <TBODY> <TR> <TD> <P style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN style="COLOR: #000000"><SPAN style="COLOR: #0000cc">;</SPAN><BR><SPAN style="COLOR: #0000cc">;</SPAN> file<SPAN style="COLOR: #0000cc">:</SPAN> skel<SPAN style="COLOR: #0000cc">.</SPAN>asm<BR><SPAN style="COLOR: #0000cc">;</SPAN> <SPAN style="COLOR: #0000ff">This</SPAN> file is……
查看全文
发表于:2007-10-09 ┆
阅读(802)
┆
评论(0)
Linux下AT&T汇编语法格式简介(6)--GCC 内联汇编
<p align="left"><a>六、</a>GCC 内联汇编 <br> </p><p> </p><p align="left">用汇编编写的程序虽然运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,或许更好的 办法是将汇编指令嵌入到 C 语言程序中,从而充分利用高级语言和汇编语言各自的特点。但一般来讲,在 C 代码中嵌入汇编语句要比"纯粹"的汇编语言代码复杂得多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。 </p><p> </p><p> </p><p align="left">GCC 提供了很好的内联汇编支持,最基本的格式是: </p><p> </p><p……
查看全文
发表于:2007-10-05 ┆
阅读(870)
┆
评论(0)
Linux下AT&T汇编语法格式简介(5)--处理命令行参数
<p align="left"><a>五、命令行参数</a> </p><p> </p><p> </p><p align="left">在 Linux 操作系统中,当一个可执行程序通过命令行启动时,其所需的参数将被保存到栈中:首先是 argc,然后是指向各个命令行参数的指针数组 argv,最后是指向环境变量的指针数据 envp。在编写汇编语言程序时,很多时候需要对这些参数进行处理,下面的代码示范了如何在汇编代码中进行命令行参数的处理: </p><p> </p><p> </p><p align="left">例3. 处理命令行参数 </p><p> </p> <p align="left"># args.s </p><p> </p><p> </p><p align=……
查看全文
发表于:2007-10-05 ┆
阅读(645)
┆
评论(0)
Linux下AT&T汇编语法格式简介(4)--系统调用
<p align="left"><a>四、系统调用</a> </p><p> </p><p> </p><p align="left">即便是最简单的汇编程序,也难免要用到诸如输入、输出以及退出等操作,而要进行这些操作则需要调用操作系统所提 供的服务,也就是系统调用。除非你的程序只完成加减乘除等数学运算,否则将很难避免使用系统调用,事实上除了系统调用不同之外,各种操作系统的汇编编程往 往都是很类似的。 </p><p> </p><p> </p><p align="left">在 Linux 平台下有两种方式来使用系统调用:利用封装后的 C 库(libc)或者通过汇编直接调用。其中通过汇编语言来直接调用……
查看全文
发表于:2007-10-05 ┆
阅读(591)
┆
评论(0)
Linux下AT&T汇编语法格式简介(3)--编译链接
<p align="left"><a>三、</a>Linux 汇编工具 <br> </p><p> </p><p align="left">Linux 平台下的汇编工具虽然种类很多,但同 DOS/Windows 一样,最基本的仍然是汇编器、连接器和调试器。 </p><p> </p><p> </p><p align="left"><b>1.</b><b>汇编器</b> </p><p> </p><p> </p><p align="left">汇编器(assembler)的作用是将用汇编语言编写的源程序转换成二进制形式的目标代码。Linux 平台的标准汇编器是 GAS,它是 GCC 所依赖的后台汇编工具,通常包含在 binutils 软件包中。GAS 使用标准的 AT&T 汇编语法,可以用来汇编用……
查看全文
发表于:2007-10-05 ┆
阅读(772)
┆
评论(0)
Linux下AT&T汇编语法格式简介(2)--Hello World!
<p align="left"><a>二、</a>Hello World!</p> <p align="left">既然所有程序设计语言的第一个例子都是在屏幕上打印一个字符串 "Hello World!",那我们也以这种方式来开始介绍 Linux 下的汇编语言程序设计。</p> <p align="left">在 Linux 操作系统中,你有很多办法可以实现在屏幕上显示一个字符串,但最简洁的方式是使用 Linux 内核提供的系统调用。使用这种方法最大的好处是可以直接和操作系统的内核进行通讯,不需要链接诸如 libc 这样的函数库,也不需要使用 ELF 解释器,因而代码尺寸小且执行速度快。</p> <p align="left">Linu……
查看全文
发表于:2007-10-05 ┆
阅读(662)
┆
评论(0)
Linux下AT&T汇编语法格式简介(1)
<p><a>一、</a>AT&T 格式Linux 汇编语法格式</p> <ol type="1"><li class="MsoNormal" style="margin: 7.5pt 0cm; text-align: left;">在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如:</li></ol> <div align="center"> <table border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td width="200"> <p align="center"><b>AT&T </b><b>格式</b></p></td> <td width="200"> <p align="center"><b>Intel </b><b>格式</b></p></td></tr> <tr> <td> <p……
查看全文
发表于:2007-10-05 ┆
阅读(1014)
┆
评论(0)
AT&T语法 vs. Intel语法
为了保持和gcc的输出的兼容性,as支持AT&T System V/386汇编语法,它和Intel语法有相当大的差别。强调这个是因为几乎所有的80386文档只使用Intel语法。两者之间的显著区别是:<p>● AT& T的立即数有前缀'$',Intel的立即数没有前缀(Intel 'push 4'为AT&T 'push Ŭ')。AT&T的寄存器 有前缀'%',Intel的寄存器没有前缀。AT&T的绝对跳转(和相对PC的跳转相反)jump/call操作数有前缀'*',Intel没有 前缀。</p><p>● AT&T和Intel语法的源和目的操作数的顺序相反。I……
查看全文
发表于:2007-10-05 ┆
阅读(815)
┆
评论(0)
Linux下的AT&T语法(即GNU as 汇编语法)入门
汇编语言作为一种高效的,而且紧密结合硬件平台的编程语言,在操作系统,嵌入式开发等领域都有着十分重要的作用。正因为汇编依赖于硬件结构(CPU指令码),因此不同体系结构上的汇编语言也大相径庭。本文简单介绍了Linux下的AT&T语法(即GNU as 汇编语法),以及在Linux下汇编的基本方法。<br><br>AT&T语法起源于AT&T贝尔实验室,是在当时用于实现Unix系统的处理器操作码语法之上而形成的,AT&T语法和Intel语法主要区别如下:<br>AT&T使用$表示立即数,Intel不用,因此表示十进制2时,AT&T为$2,而Intel就是2<b……
查看全文
发表于:2007-10-05 ┆
阅读(1061)
┆
评论(0)