汇编
国境之南Fantasy
Coder
展开
-
AT & T汇编简介
1.寄存器引用 引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。80386有如下寄存器: 8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp; 8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,bp,% sp;8个8-bit寄存器:%ah,%转载 2011-12-27 12:47:45 · 597 阅读 · 0 评论 -
ARM汇编指令集
ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。一、跳转指令跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令;Ⅱ.直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前转载 2016-01-01 00:58:59 · 509 阅读 · 0 评论 -
ARM指令集详解
1 指令格式 (1)基本格式 {}{S} ,{,} 其中, opcode 指令助记符,如LDR,STR 等 cond 执行条件,如EQ,NE 等 S 是否影响CPSR 寄存器的值,书写时影响CPSR,否则不影响 Rd 目标寄存器 Rn 第一个操转载 2016-01-01 00:46:14 · 1539 阅读 · 0 评论 -
内存屏障
处理器的乱序和并发执行目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令。处理器从L1I-Cache预取了一批指令后,就会分析找出那些互相没有关联可以并发执行的指令,然后送到几个独立的执行单元进行并发执行。比如下面这样的代码(假定编译器不做优化):z =转载 2011-12-27 18:21:47 · 615 阅读 · 0 评论 -
汇编语言--int指令
from: http://www.cppblog.com/luqingfei/archive/2010/08/04/122174.htmlint指令中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。上一章讲解了0号中断和单步中断,这一章将讲解另一种重要的内中断,由int指令引发的中断。转载 2012-09-21 10:15:21 · 18996 阅读 · 0 评论 -
ARM 汇编词汇缩写
CPSR current program status registerSPSR Saved Process Status RegistersSP Stack PointerLR Link registerPC Program CounterALU Arithmetic and Logic UnitSWI Software Int转载 2012-03-17 22:52:59 · 633 阅读 · 0 评论 -
汇编指令缩写
1.通用数据传送指令. MOV----> move MOVSX---->extended move with sign data MOVZX---->extended move with zero data PUSH---->push POP---->pop PUSHA---->push all POPA---->pop all PUSHAD---->push al转载 2012-03-17 22:47:00 · 2002 阅读 · 0 评论 -
arm汇编b,bl指令浅析
B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链 接寄存器)。由于BL指令保存了下条指令的地址,因此使用指令“MOV PC ,LR”即可实现子程序的返回。而B指令则无法实现子程序的返回,只能实现单纯的跳转。用户在编程的时候,可根据具体应用选用合适的子程序调用语句。 AREA Init,COD转载 2012-03-17 22:44:24 · 1297 阅读 · 1 评论 -
汇编语言---移位指令
移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令:算数移位指令分为:算数左移SAL(Shift Algebraic Left)和算数右移S转载 2011-12-27 16:57:12 · 20072 阅读 · 4 评论 -
关于C语言中函数调用和参数传递机制的探讨(二 .传递一个参数)
2.函数原型: int function(int i) 现在有了参数了,也有了返回值了,相对来说更比较复杂了。这里就得引入%esp寄存器值的变化了,不然就难以把问题分析清楚了,如果想形象一点地描述那就画图,自己画个图根据我的数据变化一起分析吧。看看一段简单的C代码: // C Code int function(int i) {转载 2011-12-27 16:45:18 · 776 阅读 · 0 评论 -
关于C语言中函数调用和参数传递机制的探讨(三 .传递多个参数等)
3. 函数原型:int function(int i, int j); 现在参数是两个,不是一个了,两个到底该怎么处理呢?同样看C程序和相应的汇编代码: // C code int function(int i, int j) { return (i + j); } int main(void)转载 2011-12-27 16:47:17 · 886 阅读 · 0 评论 -
关于C语言中函数调用和参数传递机制的探讨(一 .无参数传递)
原帖及讨论:http://bbs.bccn.net/thread-106533-1-1.html关于C语言中函数调用和参数传递机制的探讨 函数,相信许多人也知道其重要性;一个文件往往由一个或者多个函数构成的。然而可能许多人还不知道函数调用的一些深层问题,所以我写的这篇文章一来是应了一个好朋友的要求而写,二来希望一些朋友能够从我这篇文章了解函数调用的机制。但是并不是每个人都可以转载 2011-12-27 15:54:12 · 1680 阅读 · 0 评论 -
内联汇编
这篇介绍一下c内联汇编的使用,准确的说,内联汇编不算是汇编的语法,而是c/c++的语法,虽然c/c++是有标准参考的,但是不同编译器使用的 汇编不同,导致内联汇编是编译器相关的。这里介绍vc和gcc下c的内联汇编使用,vc使用masm语法,gcc自然是AT&T语法。一般来讲,MASM的语法规则较多,也比较复杂,不过内联汇编却相当的方便,相反,AT&T的内联汇编语法规非常复杂,这里先介绍简单转载 2016-01-12 11:12:29 · 1373 阅读 · 0 评论